chrome.debugger

ब्यौरा

chrome.debugger API, Chrome के रिमोट डीबगिंग प्रोटोकॉल के लिए एक वैकल्पिक ट्रांसपोर्ट के रूप में काम करता है. इंस्ट्रुमेंट नेटवर्क इंटरैक्शन के लिए एक या उससे ज़्यादा टैब अटैच करने, JavaScript को डीबग करने, डीओएम और सीएसएस में बदलाव करने वगैरह के लिए chrome.debugger का इस्तेमाल करें. sendCommand के साथ टैब और रूट इवेंट को onEvent कॉलबैक से tabId के ज़रिए टारगेट करने के लिए, Debuggee tabId का इस्तेमाल करें.

अनुमतियां

debugger

इस एपीआई का इस्तेमाल करने के लिए, आपको अपने एक्सटेंशन के मेनिफ़ेस्ट में "debugger"` की अनुमति का एलान करना होगा.

{
  "name": "My extension",
  ...
  "permissions": [
    "debugger",
  ],
  ...
}

ध्यान दें

सुरक्षा की वजहों से, chrome.debugger API सभी Chrome DevTools प्रोटोकॉल डोमेन का ऐक्सेस नहीं देता है. ये डोमेन उपलब्ध हैं: Accessibility, ऑडिट, Access4, निगरानी, अन्यCacheStorageDOMDebuggerDOMSnapshotWebAudioWebAuthn

उदाहरण

इस एपीआई को इस्तेमाल करने के लिए, 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

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

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