refresh date: 2026-09-25 robots: noindex
ब्यौरा
chrome.debugger एपीआई, Chrome के रिमोट डीबगिंग प्रोटोकॉल के लिए एक वैकल्पिक ट्रांसपोर्ट के तौर पर काम करता है. chrome.debugger का इस्तेमाल करके, एक या उससे ज़्यादा टैब से अटैच करें. इससे नेटवर्क इंटरैक्शन को इंस्ट्रुमेंट किया जा सकता है, JavaScript को डीबग किया जा सकता है, डीओएम और सीएसएस में बदलाव किया जा सकता है, और भी बहुत कुछ किया जा सकता है. sendCommand टैब को टारगेट करने के लिए, Debuggee प्रॉपर्टी tabId का इस्तेमाल करें. साथ ही, onEvent कॉलबैक से tabId के हिसाब से इवेंट रूट करें.
अनुमतियां
debuggerसुरक्षा से जुड़ी जानकारी
सुरक्षा की वजहों से, chrome.debugger एपीआई, Chrome DevTools Protocol के सभी डोमेन को ऐक्सेस करने की अनुमति नहीं देता. उपलब्ध डोमेन ये हैं: 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 में से किसी एक के बारे में जानकारी देना ज़रूरी है
प्रॉपर्टी
-
extensionId
string ज़रूरी नहीं है
उस एक्सटेंशन का आईडी जिसे आपको डीबग करना है. एक्सटेंशन के बैकग्राउंड पेज से अटैच करने के लिए, सिर्फ़
--silent-debugger-extension-apiकमांड-लाइन स्विच का इस्तेमाल किया जा सकता है. -
tabId
number optional
उस टैब का आईडी जिसे आपको डीबग करना है.
-
targetId
string ज़रूरी नहीं है
डीबग टारगेट का ओपेक आईडी.
DebuggerSession
यह कुकी, डीबगर सेशन आइडेंटिफ़ायर होती है. tabId, extensionId या targetId में से किसी एक की वैल्यू देना ज़रूरी है. इसके अलावा, वैकल्पिक sessionId भी दिया जा सकता है. अगर onEvent से भेजे गए आर्ग्युमेंट के लिए sessionId तय किया गया है, तो इसका मतलब है कि इवेंट, रूट डीबगी सेशन के चाइल्ड प्रोटोकॉल सेशन से आ रहा है. अगर sendCommand को पास करते समय sessionId तय किया जाता है, तो यह रूट डीबगी सेशन में मौजूद चाइल्ड प्रोटोकॉल सेशन को टारगेट करता है.
प्रॉपर्टी
-
extensionId
string ज़रूरी नहीं है
उस एक्सटेंशन का आईडी जिसे आपको डीबग करना है. एक्सटेंशन के बैकग्राउंड पेज से अटैच करने के लिए, सिर्फ़
--silent-debugger-extension-apiकमांड-लाइन स्विच का इस्तेमाल किया जा सकता है. -
sessionId
string ज़रूरी नहीं है
Chrome DevTools Protocol सेशन का ओपेक आईडी. यह कुकी, tabId, extensionId या targetId से पहचाने गए रूट सेशन में मौजूद चाइल्ड सेशन की पहचान करती है.
-
tabId
number optional
उस टैब का आईडी जिसे आपको डीबग करना है.
-
targetId
string ज़रूरी नहीं है
डीबग टारगेट का ओपेक आईडी.
DetachReason
कनेक्शन बंद होने की वजह.
Enum
"target_closed"
"canceled_by_user"
TargetInfo
टारगेट की जानकारी डीबग करना
प्रॉपर्टी
-
अटैच किया गया
बूलियन
अगर डीबगर पहले से अटैच है, तो वैल्यू true होगी.
-
extensionId
string ज़रूरी नहीं है
एक्सटेंशन आईडी. इसे तब तय किया जाता है, जब टाइप = 'background_page' हो.
-
faviconUrl
string ज़रूरी नहीं है
टारगेट किए गए फ़ेविकॉन का यूआरएल.
-
आईडी
स्ट्रिंग
टारगेट आईडी.
-
tabId
number optional
टैब आईडी, अगर टाइप == '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 और इसके बाद के वर्शनयह तब तक काम करता है, जब तक अटैच करने की कार्रवाई पूरी नहीं हो जाती या पूरी नहीं हो पाती. प्रॉमिस बिना किसी वैल्यू के रिज़ॉल्व होता है. अगर अटैच नहीं हो पाता है, तो प्रॉमिस अस्वीकार कर दिया जाएगा.
प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
): Promise<void>
यह कमांड, डिबगर को दिए गए टारगेट से अलग करती है.
पैरामीटर
-
टारगेट
वह डीबगिंग टारगेट जिससे आपको अलग होना है.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं है
callbackपैरामीटर ऐसा दिखता है:() => void
रिटर्न
-
Promise<void>
Chrome 96 और इसके बाद के वर्शनयह तब तक काम करता है, जब तक अलग करने की कार्रवाई पूरी नहीं हो जाती या उसमें गड़बड़ी नहीं होती. प्रॉमिस बिना किसी वैल्यू के रिज़ॉल्व होता है. अगर अलग करने की प्रोसेस पूरी नहीं होती है, तो प्रॉमिस अस्वीकार कर दिया जाएगा.
प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
getTargets()
chrome.debugger.getTargets(
callback?: function,
): Promise<TargetInfo[]>
इससे डीबग करने के लिए उपलब्ध टारगेट की सूची मिलती है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं है
callbackपैरामीटर ऐसा दिखता है:(result: TargetInfo[]) => void
-
नतीजा
यह उपलब्ध डीबग टारगेट से जुड़े TargetInfo ऑब्जेक्ट का ऐरे होता है.
-
रिटर्न
-
Promise<TargetInfo[]>
Chrome 96 और इसके बाद के वर्शनप्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
sendCommand()
chrome.debugger.sendCommand(
target: DebuggerSession,
method: string,
commandParams?: object,
callback?: function,
): Promise<object | undefined>
यह विकल्प, दिए गए निर्देश को डीबग करने के टारगेट पर भेजता है.
पैरामीटर
-
टारगेट
वह डीबगिंग टारगेट जिस पर आपको कमांड भेजनी है.
-
तरीका
स्ट्रिंग
तरीके का नाम. यह रिमोट डीबगिंग प्रोटोकॉल के ज़रिए तय किए गए तरीकों में से एक होना चाहिए.
-
commandParams
ऑब्जेक्ट ज़रूरी नहीं
अनुरोध के पैरामीटर वाला JSON ऑब्जेक्ट. यह ऑब्जेक्ट, दिए गए तरीके के लिए रिमोट डीबगिंग पैरामीटर स्कीम के मुताबिक होना चाहिए.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं है
callbackपैरामीटर ऐसा दिखता है:(result?: object) => void
-
नतीजा
ऑब्जेक्ट ज़रूरी नहीं
रिस्पॉन्स वाला JSON ऑब्जेक्ट. जवाब का स्ट्रक्चर, तरीके के नाम के हिसाब से अलग-अलग होता है. इसे रिमोट डीबगिंग प्रोटोकॉल में, कमांड के ब्यौरे के 'returns' एट्रिब्यूट से तय किया जाता है.
-
रिटर्न
-
Promise<object | undefined>
Chrome 96 और इसके बाद के वर्शनजवाब का मुख्य हिस्सा. अगर मैसेज पोस्ट करते समय कोई गड़बड़ी होती है, तो प्रॉमिस अस्वीकार कर दिया जाएगा.
प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
इवेंट
onDetach
chrome.debugger.onDetach.addListener(
callback: function,
)
यह इवेंट तब ट्रिगर होता है, जब ब्राउज़र टैब के लिए डीबग करने का सेशन खत्म कर देता है. ऐसा तब होता है, जब टैब बंद किया जा रहा हो या अटैच किए गए टैब के लिए Chrome DevTools को चालू किया जा रहा हो.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:(source: Debuggee, reason: DetachReason) => void
-
सोर्स
-
वजह
-
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
यह कुकी तब ट्रिगर होती है, जब इंस्ट्रूमेंटेशन इवेंट में डीबगिंग टारगेट से जुड़ी समस्याएं होती हैं.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:(source: DebuggerSession, method: string, params?: object) => void
-
सोर्स
-
तरीका
स्ट्रिंग
-
params
ऑब्जेक्ट ज़रूरी नहीं
-