chrome.debugger

ब्यौरा

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

अनुमतियां

debugger

सुरक्षा नोट

सुरक्षा की वजहों से, chrome.debugger एपीआई, Chrome के सभी DevTools का ऐक्सेस नहीं देता है प्रोटोकॉल डोमेन. फ़िलहाल, ये डोमेन उपलब्ध हैं: सुलभता, ऑडिट, CacheStorage, कंसोल, सीएसएस, डेटाबेस, डीबगर, DOM, DOMDebugger, DOMSnapshot, एम्युलेशन, फ़ेच करें, IO, इनपुट, इंस्पेक्टर, लॉग, नेटवर्क, ओवरले, पेज, परफ़ॉर्मेंस, प्रोफ़ाइलर, रनटाइम, डिवाइस का स्टोरेज, टारगेट, ट्रेसिंग, WebAudio और WebAuthn.

मेनिफ़ेस्ट

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

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

उदाहरण

इस एपीआई को आज़माने के लिए, chrome-extension-samples से debugger API का उदाहरण इंस्टॉल करें डेटा स्टोर करने की जगह.

टाइप

Debuggee

Debuggee आइडेंटिफ़ायर. tabId, extensionsId या 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, extensionsId या targetId से पहचाने गए रूट सेशन में किसी चाइल्ड सेशन की पहचान करता है.

  • tabId

    नंबर वैकल्पिक

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

  • targetId

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

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

DetachReason

Chrome 44 और उसके बाद वाले वर्शन के लिए

कनेक्शन बंद किए जाने की वजह.

Enum

"target_closed"

"canceled_by_user"

TargetInfo

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

प्रॉपर्टी

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

    बूलियन

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

  • extensionId

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

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

  • faviconUrl

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

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

  • आईडी

    स्ट्रिंग

    टारगेट आईडी.

  • tabId

    नंबर वैकल्पिक

    टैब आईडी, अगर टाइप == 'page' है.

  • title

    स्ट्रिंग

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

  • टाइप

    टारगेट टाइप.

  • url

    स्ट्रिंग

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

TargetInfoType

Chrome 44 और उसके बाद वाले वर्शन के लिए

टारगेट टाइप.

Enum

"पेज"

"background_page"

"कर्मी"

"अन्य"

तरीके

attach()

प्रॉमिस
chrome.debugger.attach(
  target: Debuggee,
  requiredVersion: string,
  callback?: function,
)

दिए गए टारगेट में डीबगर अटैच करता है.

पैरामीटर

  • टारगेट

    उस टारगेट को डीबग करना जिसे आपको अटैच करना है.

  • requiredVersion

    स्ट्रिंग

    डीबग करने वाले प्रोटोकॉल का ज़रूरी वर्शन ("0.1"). डीबग करने के लिए, सिर्फ़ उस मेजर वर्शन और उसके बाद के माइनर वर्शन के साथ दस्तावेज़ अटैच किया जा सकता है. प्रोटोकॉल वर्शन की सूची यहां दी गई है.

  • कॉलबैक

    फ़ंक्शन वैकल्पिक

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

    () => void

रिटर्न

  • प्रॉमिस<void>

    Chrome 96 और उसके बाद के वर्शन

    प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन पर काम करता है. दूसरे प्लैटफ़ॉर्म को कॉलबैक इस्तेमाल करने होते हैं.

detach()

प्रॉमिस
chrome.debugger.detach(
  target: Debuggee,
  callback?: function,
)

दिए गए टारगेट से डीबगर को अलग करता है.

पैरामीटर

  • टारगेट

    वह टारगेट डीबग करना जिससे आपको अलग करना है.

  • कॉलबैक

    फ़ंक्शन वैकल्पिक

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

    () => void

रिटर्न

  • प्रॉमिस<void>

    Chrome 96 और उसके बाद के वर्शन

    प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन पर काम करता है. दूसरे प्लैटफ़ॉर्म को कॉलबैक इस्तेमाल करने होते हैं.

getTargets()

प्रॉमिस
chrome.debugger.getTargets(
  callback?: function,
)

उपलब्ध डीबग टारगेट की सूची दिखाता है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन वैकल्पिक

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

    (result: TargetInfo[]) => void

    • नतीजा

      उपलब्ध डीबग टारगेट से जुड़े TargetInfo ऑब्जेक्ट की कलेक्शन.

रिटर्न

  • Promise&lt;TargetInfo[]&gt;

    Chrome 96 और उसके बाद के वर्शन

    प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन पर काम करता है. दूसरे प्लैटफ़ॉर्म को कॉलबैक इस्तेमाल करने होते हैं.

sendCommand()

प्रॉमिस
chrome.debugger.sendCommand(
  target: DebuggerSession,
  method: string,
  commandParams?: object,
  callback?: function,
)

यह निर्देश, डीबग करने वाले टारगेट को भेजता है.

पैरामीटर

  • टारगेट

    उस टारगेट को डीबग करना जिसे आपको निर्देश भेजना है.

  • तरीका

    स्ट्रिंग

    तरीके का नाम. यह रिमोट डीबगिंग प्रोटोकॉल के बताए गए तरीकों में से एक होना चाहिए.

  • commandParams

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

    अनुरोध पैरामीटर के साथ JSON ऑब्जेक्ट. यह ऑब्जेक्ट दिए गए तरीके के लिए, रिमोट डीबगिंग पैरामीटर स्कीम के मुताबिक होना चाहिए.

  • कॉलबैक

    फ़ंक्शन वैकल्पिक

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

    (result?: object) => void

    • नतीजा

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

      रिस्पॉन्स के साथ JSON ऑब्जेक्ट. तरीके के नाम के आधार पर रिस्पॉन्स का स्ट्रक्चर अलग-अलग होता है. यह स्ट्रक्चर 'रिटर्न' से तय होता है रिमोट डीबगिंग प्रोटोकॉल में निर्देश की जानकारी का एट्रिब्यूट.

रिटर्न

  • Promise&lt;object | तय नहीं है>

    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

    • तरीका

      स्ट्रिंग

    • पैरामीटर

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