ब्यौरा
chrome.debugger
API, Chrome के रिमोट डीबगिंग प्रोटोकॉल के लिए एक वैकल्पिक ट्रांसपोर्ट के रूप में काम करता है. इंस्ट्रुमेंट नेटवर्क इंटरैक्शन के लिए एक या उससे ज़्यादा टैब अटैच करने, JavaScript को डीबग करने, डीओएम और सीएसएस में बदलाव करने वगैरह के लिए chrome.debugger
का इस्तेमाल करें. sendCommand के साथ टैब और रूट इवेंट को onEvent कॉलबैक से tabId
के ज़रिए टारगेट करने के लिए, Debuggee tabId
का इस्तेमाल करें.
अनुमतियां
debugger
सुरक्षा नोट
सुरक्षा की वजहों से, chrome.debugger
API सभी Chrome DevTools प्रोटोकॉल डोमेन का ऐक्सेस नहीं देता है. ये डोमेन उपलब्ध हैं: Accessibility,
ऑडिट,
Access4,
निगरानी, अन्यCacheStorageDOMDebuggerDOMSnapshotWebAudioWebAuthn
मेनिफ़ेस्ट
इस एपीआई का इस्तेमाल करने के लिए, आपको अपने एक्सटेंशन के मेनिफ़ेस्ट में "debugger"
` की अनुमति का एलान करना होगा.
{
"name": "My extension",
...
"permissions": [
"debugger",
],
...
}
उदाहरण
इस एपीआई को इस्तेमाल करने के लिए, chrome-extension-sample डेटा स्टोर करने की जगह से डीबगर एपीआई का उदाहरण इंस्टॉल करें.
टाइप
Debuggee
Debuggee आइडेंटिफ़ायर. tabId, एक्सटेंशनId या targetId दर्ज करना ज़रूरी है
प्रॉपर्टी
-
extensionId
स्ट्रिंग ज़रूरी नहीं
उस एक्सटेंशन का आईडी जिसे डीबग करना है. किसी एक्सटेंशन के बैकग्राउंड पेज में अटैच करने की सुविधा सिर्फ़ तब काम करती है, जब
--silent-debugger-extension-api
कमांड लाइन स्विच का इस्तेमाल किया गया हो. -
tabId
नंबर ज़रूरी नहीं
उस टैब का आईडी जिसे डीबग करना है.
-
targetId
स्ट्रिंग ज़रूरी नहीं
डीबग टारगेट का ओपेक आईडी.
DebuggerSession
डीबगर सेशन आइडेंटिफ़ायर. TabId, extensionsId या targetId में से कोई एक बताना ज़रूरी है. इसके अलावा, एक वैकल्पिक sessionId दिया जा सकता है. अगर onEvent
से भेजे गए आर्ग्युमेंट के लिए, sessionId दिया गया है, तो इसका मतलब है कि इवेंट, रूट डीबगी सेशन में चाइल्ड प्रोटोकॉल सेशन से आ रहा है. अगर sendCommand
को पास करने पर sessionId दिया जाता है, तो यह रूट डीबगी सेशन में चाइल्ड प्रोटोकॉल सेशन को टारगेट करता है.
प्रॉपर्टी
-
extensionId
स्ट्रिंग ज़रूरी नहीं
उस एक्सटेंशन का आईडी जिसे डीबग करना है. किसी एक्सटेंशन के बैकग्राउंड पेज में अटैच करने की सुविधा सिर्फ़ तब काम करती है, जब
--silent-debugger-extension-api
कमांड लाइन स्विच का इस्तेमाल किया गया हो. -
sessionId
स्ट्रिंग ज़रूरी नहीं
Chrome DevTools प्रोटोकॉल सेशन की ओपेक आईडी. यह TabId, एक्सटेंशनId या targetId से पहचाने गए रूट सेशन में चाइल्ड सेशन की पहचान करता है.
-
tabId
नंबर ज़रूरी नहीं
उस टैब का आईडी जिसे डीबग करना है.
-
targetId
स्ट्रिंग ज़रूरी नहीं
डीबग टारगेट का ओपेक आईडी.
DetachReason
कनेक्शन बंद करने की वजह.
Enum
"target_closed"
"canceled_by_user"
TargetInfo
डीबग टारगेट की जानकारी
प्रॉपर्टी
-
अटैच किया गया
boolean
अगर डीबगर पहले से अटैच है, तो सही.
-
extensionId
स्ट्रिंग ज़रूरी नहीं
एक्सटेंशन आईडी, अगर टाइप = 'background_page' है, तो इससे पता चलता है.
-
faviconUrl
स्ट्रिंग ज़रूरी नहीं
फ़ेविकॉन का यूआरएल टारगेट करें.
-
id
स्ट्रिंग
लक्ष्य आईडी.
-
tabId
नंबर ज़रूरी नहीं
टैब आईडी, अगर टाइप == 'page' है, तो इसे परिभाषित किया जाता है.
-
title
स्ट्रिंग
टारगेट पेज का टाइटल.
-
टाइप
टारगेट टाइप.
-
यूआरएल
स्ट्रिंग
टारगेट यूआरएल.
TargetInfoType
टारगेट टाइप.
Enum
"background_page"
तरीके
attach()
chrome.debugger.attach(
target: Debuggee,
requiredVersion: string,
callback?: function,
)
दिए गए टारगेट में डीबगर को अटैच करता है.
पैरामीटर
-
टारगेट
वह टारगेट डीबग किया जा रहा है जिसमें आपको अटैच करना है.
-
requiredVersion
स्ट्रिंग
डीबग करने के प्रोटोकॉल का ज़रूरी वर्शन ("0.1"). सिर्फ़ मिलते-जुलते मेजर वर्शन और बड़े या बराबर माइनर वर्शन वाले डीबगी को अटैच किया जा सकता है. प्रोटोकॉल वर्शन की सूची यहां देखी जा सकती है.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:()=>void
लौटाए गए प्रॉडक्ट
-
Promise<void>
Chrome 96 के बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन पर काम करता है. अन्य प्लैटफ़ॉर्म के लिए कॉलबैक का इस्तेमाल करना ज़रूरी है.
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
)
डीबगर को दिए गए टारगेट से अलग करता है.
पैरामीटर
-
टारगेट
वह टारगेट डीबग किया जा रहा है जिससे आपको अलग करना है.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:()=>void
लौटाए गए प्रॉडक्ट
-
Promise<void>
Chrome 96 के बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन पर काम करता है. अन्य प्लैटफ़ॉर्म के लिए कॉलबैक का इस्तेमाल करना ज़रूरी है.
getTargets()
chrome.debugger.getTargets(
callback?: function,
)
उपलब्ध डीबग टारगेट की सूची दिखाता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:(result: TargetInfo[])=>void
-
नतीजा
उपलब्ध डीबग टारगेट से जुड़े TargetInfo ऑब्जेक्ट की कलेक्शन.
-
लौटाए गए प्रॉडक्ट
-
Promise<TargetInfo[]>
Chrome 96 के बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन पर काम करता है. अन्य प्लैटफ़ॉर्म के लिए कॉलबैक का इस्तेमाल करना ज़रूरी है.
sendCommand()
chrome.debugger.sendCommand(
target: DebuggerSession,
method: string,
commandParams?: object,
callback?: function,
)
डीबगिंग टारगेट को दिया गया निर्देश भेजता है.
पैरामीटर
-
टारगेट
वह टारगेट डीबग किया जा रहा है जिस पर आपको निर्देश भेजना है.
-
method
स्ट्रिंग
तरीके का नाम. यह रिमोट डीबगिंग प्रोटोकॉल के बताए गए तरीकों में से एक होना चाहिए.
-
commandParams
ऑब्जेक्ट ज़रूरी नहीं
अनुरोध पैरामीटर के साथ JSON ऑब्जेक्ट. यह ऑब्जेक्ट, दिए गए तरीके के लिए रिमोट डीबगिंग पैरामीटर स्कीम के मुताबिक होना चाहिए.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:(result?: object)=>void
-
नतीजा
ऑब्जेक्ट ज़रूरी नहीं
रिस्पॉन्स के साथ JSON ऑब्जेक्ट. रिस्पॉन्स का स्ट्रक्चर, तरीके के नाम के हिसाब से अलग-अलग होता है. इसे रिमोट डीबगिंग प्रोटोकॉल में मौजूद कमांड की जानकारी के 'returns' एट्रिब्यूट से तय किया जाता है.
-
लौटाए गए प्रॉडक्ट
-
Promise<object|undefined>
Chrome 96 के बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन पर काम करता है. अन्य प्लैटफ़ॉर्म के लिए कॉलबैक का इस्तेमाल करना ज़रूरी है.
इवेंट
onDetach
chrome.debugger.onDetach.addListener(
callback: function,
)
तब सक्रिय होता है, जब ब्राउज़र, टैब के लिए डीबगिंग सेशन को खत्म करता है. ऐसा तब होता है, जब टैब को बंद किया जा रहा हो या अटैच किए गए टैब के लिए Chrome DevTools को शुरू किया गया हो.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callback
पैरामीटर ऐसा दिखता है:(source: Debuggee,reason: DetachReason)=>void
-
source
-
वजह
-
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
टारगेट से जुड़ी समस्याओं के इंस्ट्रुमेंटेशन इवेंट को डीबग करने पर ट्रिगर होता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callback
पैरामीटर ऐसा दिखता है:(source: DebuggerSession,method: string,params?: object)=>void
-
source
-
method
स्ट्रिंग
-
params
ऑब्जेक्ट ज़रूरी नहीं
-