chrome.debugger

ब्यौरा

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

Chrome 125 और इसके बाद के वर्शन

डीबगर सेशन आइडेंटिफ़ायर. TabId, extensionsId या targetId में से कोई एक बताना ज़रूरी है. इसके अलावा, एक वैकल्पिक sessionId दिया जा सकता है. अगर onEvent से भेजे गए आर्ग्युमेंट के लिए, sessionId दिया गया है, तो इसका मतलब है कि इवेंट, रूट डीबगी सेशन में चाइल्ड प्रोटोकॉल सेशन से आ रहा है. अगर sendCommand को पास करने पर sessionId दिया जाता है, तो यह रूट डीबगी सेशन में चाइल्ड प्रोटोकॉल सेशन को टारगेट करता है.

प्रॉपर्टी

  • extensionId

    स्ट्रिंग ज़रूरी नहीं

    उस एक्सटेंशन का आईडी जिसे डीबग करना है. किसी एक्सटेंशन के बैकग्राउंड पेज में अटैच करने की सुविधा सिर्फ़ तब काम करती है, जब --silent-debugger-extension-api कमांड लाइन स्विच का इस्तेमाल किया गया हो.

  • sessionId

    स्ट्रिंग ज़रूरी नहीं

    Chrome DevTools प्रोटोकॉल सेशन की ओपेक आईडी. यह TabId, एक्सटेंशनId या targetId से पहचाने गए रूट सेशन में चाइल्ड सेशन की पहचान करता है.

  • tabId

    नंबर ज़रूरी नहीं

    उस टैब का आईडी जिसे डीबग करना है.

  • targetId

    स्ट्रिंग ज़रूरी नहीं

    डीबग टारगेट का ओपेक आईडी.

DetachReason

Chrome 44 और इसके बाद के वर्शन

कनेक्शन बंद करने की वजह.

Enum

"target_closed"

"canceled_by_user"

TargetInfo

डीबग टारगेट की जानकारी

प्रॉपर्टी

  • अटैच किया गया

    boolean

    अगर डीबगर पहले से अटैच है, तो सही.

  • extensionId

    स्ट्रिंग ज़रूरी नहीं

    एक्सटेंशन आईडी, अगर टाइप = 'background_page' है, तो इससे पता चलता है.

  • faviconUrl

    स्ट्रिंग ज़रूरी नहीं

    फ़ेविकॉन का यूआरएल टारगेट करें.

  • id

    स्ट्रिंग

    लक्ष्य आईडी.

  • tabId

    नंबर ज़रूरी नहीं

    टैब आईडी, अगर टाइप == 'page' है, तो इसे परिभाषित किया जाता है.

  • title

    स्ट्रिंग

    टारगेट पेज का टाइटल.

  • टाइप

    टारगेट टाइप.

  • यूआरएल

    स्ट्रिंग

    टारगेट यूआरएल.

TargetInfoType

Chrome 44 और इसके बाद के वर्शन

टारगेट टाइप.

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 को शुरू किया गया हो.

पैरामीटर

onEvent

chrome.debugger.onEvent.addListener(
  callback: function,
)

टारगेट से जुड़ी समस्याओं के इंस्ट्रुमेंटेशन इवेंट को डीबग करने पर ट्रिगर होता है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    (source: DebuggerSession,method: string,params?: object)=>void

    • method

      स्ट्रिंग

    • params

      ऑब्जेक्ट ज़रूरी नहीं