বর্ণনা
chrome.debugger API, Chrome-এর রিমোট ডিবাগিং প্রোটোকলের একটি বিকল্প মাধ্যম হিসেবে কাজ করে। নেটওয়ার্ক ইন্টারঅ্যাকশন পর্যবেক্ষণ করতে, জাভাস্ক্রিপ্ট ডিবাগ করতে, DOM ও CSS পরিবর্তন করতে এবং আরও অনেক কিছুর জন্য এক বা একাধিক ট্যাবের সাথে সংযুক্ত হতে chrome.debugger ব্যবহার করুন। sendCommand মাধ্যমে ট্যাবগুলোকে নির্দিষ্ট করতে এবং onEvent কলব্যাক থেকে tabId অনুযায়ী ইভেন্ট রাউট করতে Debuggee প্রপার্টি tabId ব্যবহার করুন।
অনুমতি
debuggerনিরাপত্তা নোট
নিরাপত্তাজনিত কারণে, chrome.debugger API সমস্ত Chrome DevTools প্রোটোকল ডোমেইনে অ্যাক্সেস প্রদান করে না। উপলব্ধ ডোমেইনগুলো হলো: Accessibility , Audits , CacheStorage , Console , CSS , Database , Debugger , DOM , DOMDebugger , DOMSnapshot , Emulation , Fetch , IO , Input , Inspector , Log , Network , Overlay , Page , Performance , Profiler , Runtime , Storage , Target , Tracing , WebAudio , এবং WebAuthn ।
প্রকাশ
এই এপিআইটি ব্যবহার করার জন্য আপনাকে আপনার এক্সটেনশনের ম্যানিফেস্টে "debugger" পারমিশনটি অবশ্যই ঘোষণা করতে হবে।
{
"name": "My extension",
...
"permissions": [
"debugger",
],
...
}
উদাহরণ
এই API-টি ব্যবহার করে দেখতে, chrome-extension-samples রিপোজিটরি থেকে ডিবাগার API উদাহরণটি ইনস্টল করুন।
প্রকারভেদ
Debuggee
ডিবাগি শনাক্তকারী। tabId, extensionId বা targetId-এর মধ্যে যেকোনো একটি অবশ্যই উল্লেখ করতে হবে।
বৈশিষ্ট্য
- এক্সটেনশন আইডি
স্ট্রিং ঐচ্ছিক
যে এক্সটেনশনটি আপনি ডিবাগ করতে চান তার আইডি। কোনো এক্সটেনশনের ব্যাকগ্রাউন্ড পেজে সংযুক্ত হওয়া কেবল তখনই সম্ভব যখন
--silent-debugger-extension-apiকমান্ড-লাইন সুইচটি ব্যবহার করা হয়। - ট্যাবআইডি
সংখ্যা ঐচ্ছিক
যে ট্যাবটি আপনি ডিবাগ করতে চান, তার আইডি।
- টার্গেটআইডি
স্ট্রিং ঐচ্ছিক
ডিবাগ টার্গেটের অস্বচ্ছ আইডি।
DebuggerSession
ডিবাগার সেশন আইডেন্টিফায়ার। tabId, extensionId বা targetId-এর মধ্যে যেকোনো একটি অবশ্যই উল্লেখ করতে হবে। এছাড়াও, একটি ঐচ্ছিক sessionId প্রদান করা যেতে পারে। যদি onEvent থেকে পাঠানো আর্গুমেন্টের জন্য sessionId উল্লেখ করা হয়, তার মানে হলো ইভেন্টটি রুট ডিবাগি সেশনের ভেতরের কোনো চাইল্ড প্রোটোকল সেশন থেকে আসছে। যদি sendCommand এ পাঠানোর সময় sessionId উল্লেখ করা হয়, তবে এটি রুট ডিবাগি সেশনের ভেতরের কোনো চাইল্ড প্রোটোকল সেশনকে টার্গেট করে।
বৈশিষ্ট্য
- এক্সটেনশন আইডি
স্ট্রিং ঐচ্ছিক
যে এক্সটেনশনটি আপনি ডিবাগ করতে চান তার আইডি। কোনো এক্সটেনশনের ব্যাকগ্রাউন্ড পেজে সংযুক্ত হওয়া কেবল তখনই সম্ভব যখন
--silent-debugger-extension-apiকমান্ড-লাইন সুইচটি ব্যবহার করা হয়। - সেশনআইডি
স্ট্রিং ঐচ্ছিক
ক্রোম ডেভটুলস প্রোটোকল সেশনের অস্বচ্ছ আইডি। এটি tabId, extensionId বা targetId দ্বারা চিহ্নিত রুট সেশনের মধ্যেকার একটি চাইল্ড সেশনকে শনাক্ত করে।
- ট্যাবআইডি
সংখ্যা ঐচ্ছিক
যে ট্যাবটি আপনি ডিবাগ করতে চান, তার আইডি।
- টার্গেটআইডি
স্ট্রিং ঐচ্ছিক
ডিবাগ টার্গেটের অস্বচ্ছ আইডি।
DetachReason
সংযোগ বিচ্ছিন্ন হওয়ার কারণ।
এনাম
"টার্গেট_ক্লোজড" "ব্যবহারকারী দ্বারা বাতিল করা হয়েছে"
TargetInfo
ডিবাগ টার্গেট তথ্য
বৈশিষ্ট্য
- সংযুক্ত
বুলিয়ান
ডিবাগার আগে থেকেই সংযুক্ত থাকলে সত্য হবে।
- এক্সটেনশন আইডি
স্ট্রিং ঐচ্ছিক
এক্সটেনশন আইডি, যা type = 'background_page' হলে সংজ্ঞায়িত হয়।
- faviconUrl
স্ট্রিং ঐচ্ছিক
লক্ষ্য ফেভিকন ইউআরএল।
- আইডি
স্ট্রিং
টার্গেট আইডি।
- ট্যাবআইডি
সংখ্যা ঐচ্ছিক
ট্যাব আইডি, যা type == 'page' হলে সংজ্ঞায়িত হয়।
- শিরোনাম
স্ট্রিং
লক্ষ্য পৃষ্ঠার শিরোনাম।
- প্রকার
লক্ষ্যের ধরণ।
- ইউআরএল
স্ট্রিং
লক্ষ্য ইউআরএল।
TargetInfoType
লক্ষ্যের ধরণ।
এনাম
'পৃষ্ঠা' "পটভূমি_পৃষ্ঠা" "শ্রমিক" "অন্যান্য"
পদ্ধতি
attach()
chrome.debugger.attach(
target: Debuggee,
requiredVersion: string,
callback?: function,
): Promise<void>
প্রদত্ত টার্গেটে ডিবাগার সংযুক্ত করে।
প্যারামিটার
- লক্ষ্য
ডিবাগিং টার্গেট, যার সাথে আপনি সংযুক্ত হতে চান।
- প্রয়োজনীয় সংস্করণ
স্ট্রিং
প্রয়োজনীয় ডিবাগিং প্রোটোকল সংস্করণ ("0.1")। শুধুমাত্র একই মেজর সংস্করণ এবং বৃহত্তর বা সমান মাইনর সংস্করণযুক্ত ডিবাগি-এর সাথেই অ্যাটাচ করা যাবে। প্রোটোকল সংস্করণগুলির তালিকা এখান থেকে পাওয়া যাবে।
- কলব্যাক
ফাংশন ঐচ্ছিক
callbackপ্যারামিটারটি দেখতে এইরকম:() => void
ফেরত
প্রতিশ্রুতি<শূন্য>
ক্রোম ৯৬+অ্যাটাচ অপারেশন সফল বা ব্যর্থ হলে এটি রিজলভ হয়। প্রমিসটি কোনো ভ্যালু ছাড়াই রিজলভ হয়। যদি অ্যাটাচ ব্যর্থ হয়, তাহলে প্রমিসটি রিজেক্ট হয়ে যাবে।
প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
): Promise<void>
প্রদত্ত টার্গেট থেকে ডিবাগার বিচ্ছিন্ন করে।
প্যারামিটার
- লক্ষ্য
ডিবাগিং টার্গেট, যেখান থেকে আপনি ডিটাচ করতে চান।
- কলব্যাক
ফাংশন ঐচ্ছিক
callbackপ্যারামিটারটি দেখতে এইরকম:() => void
ফেরত
প্রতিশ্রুতি<শূন্য>
ক্রোম ৯৬+ডিটাচ অপারেশন সফল বা ব্যর্থ হলে এটি রিজলভ হয়। প্রমিসটি কোনো ভ্যালু ছাড়াই রিজলভ হয়। যদি ডিটাচ ব্যর্থ হয়, তাহলে প্রমিসটি রিজেক্ট হয়ে যাবে।
প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।
getTargets()
chrome.debugger.getTargets(
callback?: function,
): Promise<TargetInfo[]>
উপলব্ধ ডিবাগ টার্গেটগুলোর তালিকা ফেরত দেয়।
প্যারামিটার
- কলব্যাক
ফাংশন ঐচ্ছিক
callbackপ্যারামিটারটি দেখতে এইরকম:(result: TargetInfo[]) => void
- ফলাফল
টার্গেটইনফো []
উপলব্ধ ডিবাগ টার্গেটগুলোর সাথে সঙ্গতিপূর্ণ TargetInfo অবজেক্টগুলোর অ্যারে।
ফেরত
প্রতিশ্রুতি< লক্ষ্যতথ্য []>
ক্রোম ৯৬+প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।
sendCommand()
chrome.debugger.sendCommand(
target: DebuggerSession,
method: string,
commandParams?: object,
callback?: function,
): Promise<object | undefined>
প্রদত্ত কমান্ডটি ডিবাগিং টার্গেটে পাঠায়।
প্যারামিটার
- লক্ষ্য
ডিবাগিং টার্গেট, যেখানে আপনি কমান্ডটি পাঠাতে চান।
- পদ্ধতি
স্ট্রিং
মেথডের নাম। এটি রিমোট ডিবাগিং প্রোটোকল দ্বারা সংজ্ঞায়িত মেথডগুলোর মধ্যে একটি হওয়া উচিত।
- কমান্ডপ্যারামস
বস্তু ঐচ্ছিক
অনুরোধ প্যারামিটারসহ JSON অবজেক্ট। এই অবজেক্টটিকে অবশ্যই প্রদত্ত মেথডের জন্য রিমোট ডিবাগিং প্যারামিটার স্কিম মেনে চলতে হবে।
- কলব্যাক
ফাংশন ঐচ্ছিক
callbackপ্যারামিটারটি দেখতে এইরকম:(result?: object) => void
- ফলাফল
বস্তু ঐচ্ছিক
প্রতিক্রিয়া সহ JSON অবজেক্ট। প্রতিক্রিয়ার গঠন মেথডের নামের উপর নির্ভর করে পরিবর্তিত হয় এবং রিমোট ডিবাগিং প্রোটোকলের কমান্ড বিবরণের 'returns' অ্যাট্রিবিউট দ্বারা এটি সংজ্ঞায়িত করা হয়।
ফেরত
প্রতিশ্রুতি<object | undefined>
ক্রোম ৯৬+প্রতিক্রিয়া অংশ। বার্তা পোস্ট করার সময় কোনো ত্রুটি ঘটলে, প্রমিসটি প্রত্যাখ্যাত হবে।
প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।
ইভেন্টগুলি
onDetach
chrome.debugger.onDetach.addListener(
callback: function,
)
যখন ব্রাউজার ট্যাবটির জন্য ডিবাগিং সেশন বন্ধ করে দেয়, তখন এটি ট্রিগার হয়। এটি ঘটে যখন ট্যাবটি বন্ধ করা হয় অথবা সংযুক্ত ট্যাবটির জন্য Chrome DevTools চালু করা হয়।
প্যারামিটার
- কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:(source: Debuggee, reason: DetachReason) => void
- উৎস
- কারণ
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
যখনই ডিবাগিং টার্গেট ইন্সট্রুমেন্টেশন ইভেন্ট জারি করে, তখনই এটি সক্রিয় হয়।
প্যারামিটার
- কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:(source: DebuggerSession, method: string, params?: object) => void
- উৎস
- পদ্ধতি
স্ট্রিং
- প্যারামিটার
বস্তু ঐচ্ছিক