ब्यौरा
chrome.debugger एपीआई, Chrome के रिमोट डीबगिंग प्रोटोकॉल के लिए एक वैकल्पिक ट्रांसपोर्ट के तौर पर काम करता है. नेटवर्क इंटरैक्शन को इंस्ट्रुमेंट करने, JavaScript को डीबग करने, डीओएम और सीएसएस में बदलाव करने वगैरह के लिए, एक या उससे ज़्यादा टैब से अटैच करने के लिए chrome.debugger का इस्तेमाल करें. sendCommand वाले टैब को टारगेट करने के लिए, Debuggee प्रॉपर्टी tabId का इस्तेमाल करें. साथ ही, onEvent कॉलबैक से tabId के हिसाब से इवेंट रूट करें.
अनुमतियां
debuggerसुरक्षा से जुड़ी सूचना
सुरक्षा की वजहों से, chrome.debugger एपीआई, 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",
  ],
  ...
}
उदाहरण
इस एपीआई को आज़माने के लिए, chrome-extension-samples रिपॉज़िटरी से debugger API का उदाहरण इंस्टॉल करें.
टाइप
Debuggee
डीबगी आइडेंटिफ़ायर. tabId, extensionId या targetId में से किसी एक की जानकारी देना ज़रूरी है
प्रॉपर्टी
- 
    extensionIdstring ज़रूरी नहीं है उस एक्सटेंशन का आईडी जिसे आपको डीबग करना है. एक्सटेंशन के बैकग्राउंड पेज से अटैच करने के लिए, सिर्फ़ --silent-debugger-extension-apiकमांड-लाइन स्विच का इस्तेमाल किया जा सकता है.
- 
    tabIdnumber ज़रूरी नहीं उस टैब का आईडी जिसे आपको डीबग करना है. 
- 
    targetIdstring ज़रूरी नहीं है डीबग टारगेट का ओपेक आईडी. 
DebuggerSession
डीबगर सेशन आइडेंटिफ़ायर. tabId, extensionId या targetId में से किसी एक को तय करना ज़रूरी है. इसके अलावा, वैकल्पिक sessionId भी दिया जा सकता है. अगर onEvent से भेजे गए आर्ग्युमेंट के लिए sessionId तय किया गया है, तो इसका मतलब है कि इवेंट, रूट डीबगी सेशन के अंदर मौजूद चाइल्ड प्रोटोकॉल सेशन से आ रहा है. अगर sendCommand को पास करते समय sessionId तय किया जाता है, तो यह रूट डीबगी सेशन में मौजूद चाइल्ड प्रोटोकॉल सेशन को टारगेट करता है.
प्रॉपर्टी
- 
    extensionIdstring ज़रूरी नहीं है उस एक्सटेंशन का आईडी जिसे आपको डीबग करना है. एक्सटेंशन के बैकग्राउंड पेज से अटैच करने के लिए, सिर्फ़ --silent-debugger-extension-apiकमांड-लाइन स्विच का इस्तेमाल किया जा सकता है.
- 
    sessionIdstring ज़रूरी नहीं है Chrome DevTools प्रोटोकॉल सेशन का ओपेक आईडी. यह कुकी, tabId, extensionId या targetId से पहचाने गए रूट सेशन में मौजूद चाइल्ड सेशन की पहचान करती है. 
- 
    tabIdnumber ज़रूरी नहीं उस टैब का आईडी जिसे आपको डीबग करना है. 
- 
    targetIdstring ज़रूरी नहीं है डीबग टारगेट का ओपेक आईडी. 
DetachReason
कनेक्शन बंद होने की वजह.
Enum
"target_closed" 
 
"canceled_by_user" 
 
TargetInfo
टारगेट को डीबग करने की जानकारी
प्रॉपर्टी
- 
    अटैच किया गयाबूलियन अगर डीबगर पहले से अटैच है, तो यह वैल्यू 'सही' होती है. 
- 
    extensionIdstring ज़रूरी नहीं है एक्सटेंशन आईडी, अगर टाइप = 'background_page' के तौर पर तय किया गया है. 
- 
    faviconUrlstring ज़रूरी नहीं है टारगेट किए गए फ़ेविकॉन का यूआरएल. 
- 
    आईडीस्ट्रिंग टारगेट आईडी. 
- 
    tabIdnumber ज़रूरी नहीं टैब आईडी, अगर टाइप == 'page' के तौर पर तय किया गया है. 
- 
    titleस्ट्रिंग टारगेट पेज का टाइटल. 
- 
    टाइपटारगेट टाइप. 
- 
    urlस्ट्रिंग टारगेट यूआरएल. 
TargetInfoType
टारगेट टाइप.
Enum
"page" 
 
"background_page" 
 
"worker" 
 
"other" 
 
तरीके
attach()
chrome.debugger.attach(
target: Debuggee,
requiredVersion: string,
callback?: function,
): Promise<void>
यह कमांड, डिबगर को दिए गए टारगेट से अटैच करती है.
पैरामीटर
- 
    टारगेटवह डिबगिंग टारगेट जिससे आपको अटैच करना है. 
- 
    requiredVersionस्ट्रिंग डीबग करने के लिए ज़रूरी प्रोटोकॉल वर्शन ("0.1"). सिर्फ़ ऐसे डीबगर को डीबगी से अटैच किया जा सकता है जिसका मेजर वर्शन, डीबगी के मेजर वर्शन से मेल खाता हो और माइनर वर्शन, डीबगी के माइनर वर्शन से ज़्यादा या उसके बराबर हो. प्रोटोकॉल वर्शन की सूची यहां देखी जा सकती है. 
- 
    कॉलबैकफ़ंक्शन ज़रूरी नहीं callbackपैरामीटर ऐसा दिखता है:() => void 
रिटर्न
- 
            Promise<void> Chrome 96 और इसके बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा. 
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
): Promise<void>
यह कमांड, डीबगर को दिए गए टारगेट से अलग करती है.
पैरामीटर
- 
    टारगेटवह डीबगिंग टारगेट जिससे आपको अलग होना है. 
- 
    कॉलबैकफ़ंक्शन ज़रूरी नहीं callbackपैरामीटर ऐसा दिखता है:() => void 
रिटर्न
- 
            Promise<void> Chrome 96 और इसके बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा. 
getTargets()
chrome.debugger.getTargets(
callback?: function,
): Promise<TargetInfo[]>
इससे डीबग करने के लिए उपलब्ध टारगेट की सूची मिलती है.
पैरामीटर
- 
    कॉलबैकफ़ंक्शन ज़रूरी नहीं callbackपैरामीटर ऐसा दिखता है:(result: TargetInfo[]) => void - 
    नतीजाउपलब्ध डीबग टारगेट से जुड़े TargetInfo ऑब्जेक्ट की ऐरे. 
 
- 
    
रिटर्न
- 
            Promise<TargetInfo[]> Chrome 96 और इसके बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा. 
sendCommand()
chrome.debugger.sendCommand(
target: DebuggerSession,
method: string,
commandParams?: object,
callback?: function,
): Promise<object | undefined>
यह कमांड, डीबग करने के लिए चुने गए टारगेट को दी जाती है.
पैरामीटर
- 
    टारगेटवह डीबगिंग टारगेट जिस पर आपको कमांड भेजनी है. 
- 
    तरीकास्ट्रिंग तरीके का नाम. यह रिमोट डीबगिंग प्रोटोकॉल के ज़रिए तय किए गए तरीकों में से एक होना चाहिए. 
- 
    commandParamsobject ज़रूरी नहीं है अनुरोध के पैरामीटर वाला JSON ऑब्जेक्ट. यह ऑब्जेक्ट, दी गई विधि के लिए रिमोट डीबगिंग पैरामीटर स्कीम के मुताबिक होना चाहिए. 
- 
    कॉलबैकफ़ंक्शन ज़रूरी नहीं callbackपैरामीटर ऐसा दिखता है:(result?: object) => void - 
    नतीजाobject ज़रूरी नहीं है जवाब वाला 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
- 
    तरीकास्ट्रिंग 
- 
    पैरामीटरobject ज़रूरी नहीं है 
 
-