chrome.webRequest

refresh date: 2026-09-25 robots: noindex

ब्यौरा

ट्रैफ़िक को देखने और उसका विश्लेषण करने के लिए, chrome.webRequest एपीआई का इस्तेमाल करें. साथ ही, इन-फ़्लाइट अनुरोधों को इंटरसेप्ट करने, ब्लॉक करने या उनमें बदलाव करने के लिए भी इसका इस्तेमाल करें.

अनुमतियां

webRequest

मेनिफ़ेस्ट

वेब अनुरोध एपीआई का इस्तेमाल करने के लिए, आपको एक्सटेंशन मेनिफ़ेस्ट में "webRequest" अनुमति का एलान करना होगा. साथ ही, आपको होस्ट की ज़रूरी अनुमतियां भी देनी होंगी. सब-रिसॉर्स के अनुरोध को इंटरसेप्ट करने के लिए, एक्सटेंशन के पास अनुरोध किए गए यूआरएल और उसे शुरू करने वाले यूआरएल, दोनों का ऐक्सेस होना चाहिए. उदाहरण के लिए:

{
  "name": "My extension",
  ...
  "permissions": [
    "webRequest"
  ],
  "host_permissions": [
    "*://*.google.com/*"
  ],
  ...
}

Chrome 108 से, onAuthRequired इवेंट के लिए एसिंक्रोनस तरीके से क्रेडेंशियल दिए जा सकते हैं. इसके लिए, आपको "webRequest" और "webRequestAuthProvider" अनुमतियों का इस्तेमाल करना होगा.

अनुरोधों की लाइफ़ साइकल

वेब अनुरोध एपीआई, वेब अनुरोध के लाइफ़ साइकल के हिसाब से इवेंट का एक सेट तय करता है. इन इवेंट का इस्तेमाल, ट्रैफ़िक पर नज़र रखने और उसका विश्लेषण करने के लिए किया जा सकता है. कुछ सिंक्रोनस इवेंट की मदद से, किसी अनुरोध को इंटरसेप्ट, ब्लॉक या उसमें बदलाव किया जा सकता है.

सफल अनुरोधों के लिए, इवेंट की लाइफ़ साइकल के बारे में यहां बताया गया है. इसके बाद, इवेंट की परिभाषाएं दी गई हैं:

webrequest API के हिसाब से, वेब अनुरोध का लाइफ़ साइकल

onBeforeRequest (ज़रूरत के हिसाब से सिंक्रोनस)
यह तब ट्रिगर होता है, जब कोई अनुरोध होने वाला होता है. यह इवेंट, टीसीपी कनेक्शन बनने से पहले भेजा जाता है. इसका इस्तेमाल, अनुरोधों को रद्द करने या रीडायरेक्ट करने के लिए किया जा सकता है.
onBeforeSendHeaders (ज़रूरत के हिसाब से सिंक्रोनस)
यह तब ट्रिगर होता है, जब कोई अनुरोध होने वाला हो और शुरुआती हेडर तैयार हो गए हों. इस इवेंट का मकसद, एक्सटेंशन को अनुरोध के हेडर (*) जोड़ने, उनमें बदलाव करने, और उन्हें मिटाने की अनुमति देना है. onBeforeSendHeaders इवेंट को सभी सदस्यों को पास किया जाता है. इसलिए, अलग-अलग सदस्य अनुरोध में बदलाव करने की कोशिश कर सकते हैं. इसे कैसे मैनेज किया जाता है, यह जानने के लिए लागू करने की जानकारी सेक्शन देखें. इस इवेंट का इस्तेमाल, अनुरोध को रद्द करने के लिए किया जा सकता है.
onSendHeaders
यह सभी एक्सटेंशन को अनुरोध के हेडर में बदलाव करने का मौका देने के बाद ट्रिगर होता है. साथ ही, फ़ाइनल (*) वर्शन दिखाता है. यह इवेंट, नेटवर्क पर हेडर भेजे जाने से पहले ट्रिगर होता है. यह इवेंट जानकारी देने के लिए है और इसे एसिंक्रोनस तरीके से मैनेज किया जाता है. इससे अनुरोध में बदलाव नहीं किया जा सकता या उसे रद्द नहीं किया जा सकता.
onHeadersReceived (ज़रूरत के हिसाब से सिंक्रोनस)
यह हर बार एचटीटीपी(एस) रिस्पॉन्स हेडर मिलने पर ट्रिगर होता है. रीडायरेक्ट और पुष्टि के अनुरोधों की वजह से, हर अनुरोध के लिए ऐसा कई बार हो सकता है. इस इवेंट का मकसद, एक्सटेंशन को रिस्पॉन्स हेडर जोड़ने, उनमें बदलाव करने, और उन्हें मिटाने की अनुमति देना है. जैसे, आने वाले कॉन्टेंट-टाइप हेडर. कैश मेमोरी से जुड़े डायरेक्टिव, इस इवेंट के ट्रिगर होने से पहले प्रोसेस किए जाते हैं. इसलिए, Cache-Control जैसे हेडर में बदलाव करने से, ब्राउज़र की कैश मेमोरी पर कोई असर नहीं पड़ता. इससे आपको अनुरोध को रद्द करने या रीडायरेक्ट करने की सुविधा भी मिलती है.
onAuthRequired (ज़रूरत के हिसाब से सिंक्रोनस)
यह तब ट्रिगर होता है, जब किसी अनुरोध के लिए उपयोगकर्ता की पुष्टि करना ज़रूरी हो. इस इवेंट को सिंक्रोनस तरीके से हैंडल किया जा सकता है, ताकि पुष्टि करने वाले क्रेडेंशियल उपलब्ध कराए जा सकें. ध्यान दें कि एक्सटेंशन, अमान्य क्रेडेंशियल दे सकते हैं. ध्यान रखें कि बार-बार गलत क्रेडेंशियल डालकर, इनफ़ाइनाइट लूप में न फंसें. इसका इस्तेमाल, अनुरोध को रद्द करने के लिए भी किया जा सकता है.
onBeforeRedirect
रीडायरेक्ट होने से पहले ट्रिगर होता है. रीडायरेक्शन को एचटीटीपी रिस्पॉन्स कोड या किसी एक्सटेंशन से ट्रिगर किया जा सकता है. यह इवेंट जानकारी देने के लिए है और इसे एसिंक्रोनस तरीके से मैनेज किया जाता है.
इसकी मदद से, अनुरोध में बदलाव नहीं किया जा सकता या उसे रद्द नहीं किया जा सकता.
onResponseStarted
यह तब ट्रिगर होता है, जब रिस्पॉन्स बॉडी का पहला बाइट मिलता है. एचटीटीपी अनुरोधों के लिए, इसका मतलब है कि स्टेटस लाइन और रिस्पॉन्स हेडर उपलब्ध हैं. यह इवेंट जानकारी देने के लिए है और इसे एसिंक्रोनस तरीके से मैनेज किया जाता है. अनुरोध में बदलाव करने या उसे रद्द करने की अनुमति नहीं है.
onCompleted
अनुरोध प्रोसेस होने पर ट्रिगर होता है.
onErrorOccurred
यह तब ट्रिगर होता है, जब किसी अनुरोध को प्रोसेस नहीं किया जा सकता.

वेब अनुरोध एपीआई यह गारंटी देता है कि हर अनुरोध के लिए, आखिरी इवेंट के तौर पर onCompleted या onErrorOccurred को ट्रिगर किया जाता है. हालांकि, इसमें एक अपवाद है: अगर किसी अनुरोध को data:// यूआरएल पर रीडायरेक्ट किया जाता है, तो onBeforeRedirect आखिरी इवेंट होता है.

* ध्यान दें कि वेब रिक्वेस्ट एपीआई, एक्सटेंशन को नेटवर्क स्टैक का ऐब्स्ट्रैक्शन दिखाता है. एक यूआरएल अनुरोध को कई एचटीटीपी अनुरोधों में बांटा जा सकता है. उदाहरण के लिए, किसी बड़ी फ़ाइल से अलग-अलग बाइट रेंज फ़ेच करने के लिए. इसके अलावा, नेटवर्क से संपर्क किए बिना, नेटवर्क स्टैक से भी इसे मैनेज किया जा सकता है. इस वजह से, एपीआई उन फ़ाइनल एचटीटीपी हेडर को उपलब्ध नहीं कराता है जो नेटवर्क को भेजे जाते हैं. उदाहरण के लिए, कैश मेमोरी से जुड़े सभी हेडर, एक्सटेंशन को नहीं दिखते.

फ़िलहाल, onBeforeSendHeaders इवेंट के लिए ये हेडर उपलब्ध नहीं हैं. इस बात की कोई गारंटी नहीं है कि यह सूची पूरी है या इसमें बदलाव नहीं होगा.

  • अनुमति देना
  • Cache-Control
  • कनेक्शन
  • कॉन्टेंट की लंबाई
  • होस्ट
  • If-Modified-Since
  • If-None-Match
  • If-Range
  • Partial-Data
  • Pragma
  • Proxy-Authorization
  • Proxy-Connection
  • Transfer-Encoding

Chrome 79 और इसके बाद के वर्शन में, अनुरोध के हेडर में किए गए बदलावों का असर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) की जांच पर पड़ता है. अगर क्रॉस-ऑरिजिन अनुरोधों के लिए बदले गए हेडर, शर्तों को पूरा नहीं करते हैं, तो सीओआरएस प्रीफ़्लाइट भेजा जाएगा. इससे सर्वर से पूछा जाएगा कि क्या ऐसे हेडर स्वीकार किए जा सकते हैं. अगर आपको सीओआरएस प्रोटोकॉल का उल्लंघन करने के लिए, हेडर में बदलाव करना है, तो आपको opt_extraInfoSpec में 'extraHeaders' को तय करना होगा. दूसरी ओर, रिस्पॉन्स हेडर में किए गए बदलाव, सीओआरएस की जांच को धोखा देने के लिए काम नहीं करते. अगर आपको सीओआरएस प्रोटोकॉल को धोखा देना है, तो आपको रिस्पॉन्स में किए गए बदलावों के लिए 'extraHeaders' भी तय करना होगा.

Chrome 79 और इसके बाद के वर्शन में, webRequest API डिफ़ॉल्ट रूप से सीओआरएस प्रीफ़्लाइट अनुरोधों और जवाबों को इंटरसेप्ट नहीं करता. किसी अनुरोध यूआरएल के लिए सीओआरएस प्रीफ़्लाइट, किसी एक्सटेंशन को तब दिखता है, जब अनुरोध यूआरएल के लिए opt_extraInfoSpec में 'extraHeaders' के साथ कोई लिसनर मौजूद हो. onBeforeRequest, Chrome 79 से 'extraHeaders' भी ले सकता है.

Chrome 79 से, अनुरोध का यह हेडर उपलब्ध नहीं है. साथ ही, opt_extraInfoSpec में 'extraHeaders' को बताए बिना, इसमें बदलाव नहीं किया जा सकता या इसे हटाया नहीं जा सकता:

  • शुरुआत की जगह

Chrome 72 से, अगर आपको क्रॉस ऑरिजिन रीड ब्लॉकिंग (सीओआरबी) के जवाब को ब्लॉक करने से पहले, जवाबों में बदलाव करना है, तो आपको opt_extraInfoSpec में 'extraHeaders' की जानकारी देनी होगी.

Chrome 72 से, अनुरोध के ये हेडर उपलब्ध नहीं कराए जाते. साथ ही, opt_extraInfoSpec में 'extraHeaders' को बताए बिना, इनमें बदलाव नहीं किया जा सकता या इन्हें हटाया नहीं जा सकता:

  • Accept-Language
  • Accept-Encoding
  • रेफ़रर
  • कुकी

Chrome 72 से, Set-Cookie रिस्पॉन्स हेडर उपलब्ध नहीं है. साथ ही, opt_extraInfoSpec में 'extraHeaders' की जानकारी दिए बिना, इसमें बदलाव नहीं किया जा सकता या इसे हटाया नहीं जा सकता.

Chrome 89 से, X-Frame-Options रिस्पॉन्स हेडर को तब तक असरदार तरीके से बदला या हटाया नहीं जा सकता, जब तक opt_extraInfoSpec में 'extraHeaders' की जानकारी न दी गई हो.

webRequest API सिर्फ़ उन अनुरोधों को दिखाता है जिन्हें देखने की अनुमति एक्सटेंशन के पास है. इसके लिए, एक्सटेंशन के पास होस्ट की अनुमतियां होनी चाहिए. इसके अलावा, सिर्फ़ इन स्कीम को ऐक्सेस किया जा सकता है: http://, https://, ftp://, file://, ws:// (Chrome 58 से), wss:// (Chrome 58 से), urn: (Chrome 91 से) या chrome-extension://. इसके अलावा, ऊपर दी गई किसी स्कीम का इस्तेमाल करने वाले यूआरएल के साथ किए गए कुछ अनुरोध भी छिपाए जाते हैं. इनमें chrome-extension://other_extension_id शामिल है, जहां other_extension_id अनुरोध को हैंडल करने वाले एक्सटेंशन का आईडी नहीं है, https://www.google.com/chrome, और ब्राउज़र की मुख्य सुविधाओं से जुड़े अन्य संवेदनशील अनुरोध. साथ ही, आपके एक्सटेंशन से सिंक्रोनस XMLHttpRequests को ब्लॉक करने वाले इवेंट हैंडलर से छिपाया जाता है, ताकि डेडलॉक को रोका जा सके. ध्यान दें कि काम करने वाली कुछ स्कीम के लिए, उपलब्ध इवेंट का सेट सीमित हो सकता है. ऐसा संबंधित प्रोटोकॉल की वजह से हो सकता है. उदाहरण के लिए, file: स्कीम के लिए, सिर्फ़ onBeforeRequest, onResponseStarted, onCompleted, और onErrorOccurred को भेजा जा सकता है.

Chrome 58 से, webRequest API, WebSocket हैंडशेक अनुरोध को इंटरसेप्ट करने की सुविधा देता है. हैंडशेक, एचटीटीपी अपग्रेड अनुरोध के ज़रिए किया जाता है. इसलिए, इसका फ़्लो एचटीटीपी-ओरिएंटेड webRequest मॉडल में फ़िट होता है. ध्यान दें कि एपीआई, इन्हें इंटरसेप्ट नहीं करता:

  • ये ऐसे मैसेज होते हैं जो किसी WebSocket कनेक्शन की मदद से भेजे जाते हैं.
  • WebSocket कनेक्शन बंद किया जा रहा है.

WebSocket वाले अनुरोधों के लिए, रीडायरेक्ट करने वाले यूआरएल काम नहीं करते.

Chrome 72 से, कोई एक्सटेंशन किसी अनुरोध को सिर्फ़ तब रोक पाएगा, जब उसके पास अनुरोध किए गए यूआरएल और अनुरोध करने वाले, दोनों के लिए होस्ट की अनुमतियां हों.

Chrome 96 से, webRequest API, एचटीटीपी/3 हैंडशेक अनुरोध पर WebTransport को इंटरसेप्ट करने की सुविधा देता है. हैंडशेक, एचटीटीपी CONNECT अनुरोध के ज़रिए किया जाता है. इसलिए, इसका फ़्लो एचटीटीपी-ओरिएंटेड webRequest मॉडल में फ़िट होता है. इन बातों का ध्यान रखें:

  • सेशन शुरू होने के बाद, एक्सटेंशन webRequest API का इस्तेमाल करके सेशन को मॉनिटर या उसमें दखल नहीं दे सकते.
  • onBeforeSendHeaders में एचटीटीपी अनुरोध के हेडर में किए गए बदलावों को अनदेखा किया जाता है.
  • एचटीटीपी/3 पर WebTransport में, रीडायरेक्ट और पुष्टि करने की सुविधा काम नहीं करती.

कॉन्सेप्ट

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

अनुरोध के आईडी

हर अनुरोध की पहचान, अनुरोध आईडी से की जाती है. यह आईडी, ब्राउज़र सेशन और एक्सटेंशन के कॉन्टेक्स्ट में यूनीक होता है. यह किसी अनुरोध के लाइफ़ साइकल के दौरान एक जैसा रहता है. साथ ही, इसका इस्तेमाल एक ही अनुरोध के लिए इवेंट मैच करने के लिए किया जा सकता है. ध्यान दें कि एचटीटीपी रीडायरेक्शन या एचटीटीपी ऑथेंटिकेशन के मामले में, कई एचटीटीपी अनुरोधों को एक वेब अनुरोध से मैप किया जाता है.

इवेंट लिसनर रजिस्टर करना

वेब के अनुरोध के लिए इवेंट लिसनर को रजिस्टर करने के लिए, सामान्य addListener() फ़ंक्शन के वैरिएशन का इस्तेमाल किया जाता है. कॉलबैक फ़ंक्शन तय करने के अलावा, आपको फ़िल्टर आर्ग्युमेंट भी तय करना होगा. साथ ही, आपके पास अतिरिक्त जानकारी वाला आर्ग्युमेंट तय करने का विकल्प भी होता है.

वेब अनुरोध एपीआई के addListener() के तीन आर्ग्युमेंट की परिभाषाएं यहां दी गई हैं:

var callback = function(details) {...};
var filter = {...};
var opt_extraInfoSpec = [...];

यहां onBeforeRequest इवेंट को सुनने का एक उदाहरण दिया गया है:

chrome.webRequest.onBeforeRequest.addListener(
    callback, filter, opt_extraInfoSpec);

हर addListener() कॉल के लिए, पहले पैरामीटर के तौर पर कॉलबैक फ़ंक्शन देना ज़रूरी है. इस कॉलबैक फ़ंक्शन को एक डिक्शनरी पास की जाती है. इसमें मौजूदा यूआरएल के अनुरोध की जानकारी होती है. इस डिक्शनरी में मौजूद जानकारी, इवेंट के टाइप और opt_extraInfoSpec के कॉन्टेंट पर निर्भर करती है.

अगर वैकल्पिक opt_extraInfoSpec कलेक्शन में स्ट्रिंग 'blocking' (सिर्फ़ कुछ खास इवेंट के लिए अनुमति है) शामिल है, तो कॉलबैक फ़ंक्शन को सिंक्रोनस तरीके से मैनेज किया जाता है. इसका मतलब है कि कॉलबैक फ़ंक्शन के रिटर्न होने तक, अनुरोध को ब्लॉक कर दिया जाता है. इस मामले में, कॉलबैक एक webRequest.BlockingResponse दिखा सकता है. इससे अनुरोध की लाइफ़ साइकल तय होती है. कॉन्टेक्स्ट के आधार पर, इस रिस्पॉन्स से किसी अनुरोध को रद्द या रीडायरेक्ट (onBeforeRequest) किया जा सकता है. साथ ही, किसी अनुरोध को रद्द या हेडर में बदलाव (onBeforeSendHeaders, onHeadersReceived) किया जा सकता है. इसके अलावा, किसी अनुरोध को रद्द या पुष्टि करने वाले क्रेडेंशियल (onAuthRequired) दिए जा सकते हैं.

अगर वैकल्पिक opt_extraInfoSpec कलेक्शन में स्ट्रिंग 'asyncBlocking' शामिल है (सिर्फ़ onAuthRequired के लिए अनुमति है), तो एक्सटेंशन, webRequest.BlockingResponse को एसिंक्रोनस तरीके से जनरेट कर सकता है.

webRequest.RequestFilter filter की मदद से, उन अनुरोधों को सीमित किया जा सकता है जिनके लिए अलग-अलग डाइमेंशन में इवेंट ट्रिगर होते हैं:

यूआरएल
यूआरएल पैटर्न, जैसे कि *://www.google.com/foo*bar.
टाइप
अनुरोध के टाइप, जैसे कि main_frame (टॉप-लेवल फ़्रेम के लिए लोड किया गया दस्तावेज़), sub_frame (एम्बेड किए गए फ़्रेम के लिए लोड किया गया दस्तावेज़), और image (वेबसाइट पर मौजूद इमेज). webRequest.RequestFilter देखें.
टैब का आईडी
एक टैब के लिए आइडेंटिफ़ायर.
विंडो आईडी
किसी विंडो के लिए आइडेंटिफ़ायर.

इवेंट टाइप के आधार पर, opt_extraInfoSpec में स्ट्रिंग तय की जा सकती हैं, ताकि अनुरोध के बारे में ज़्यादा जानकारी मांगी जा सके. इसका इस्तेमाल, अनुरोध के डेटा के बारे में ज़्यादा जानकारी देने के लिए किया जाता है. हालांकि, ऐसा सिर्फ़ तब किया जाता है, जब साफ़ तौर पर अनुरोध किया गया हो.

क्रियान्वयन विवरण

वेब अनुरोध एपीआई का इस्तेमाल करने वाला एक्सटेंशन डेवलप करते समय, इसे लागू करने से जुड़ी कई अहम बातें समझना ज़रूरी है:

web_accessible_resources

जब कोई एक्सटेंशन, किसी सार्वजनिक संसाधन के अनुरोध को ऐसे संसाधन पर रीडायरेक्ट करने के लिए webRequest एपीआई का इस्तेमाल करता है जिसे वेब पर ऐक्सेस नहीं किया जा सकता, तो उसे ब्लॉक कर दिया जाता है. साथ ही, गड़बड़ी का मैसेज दिखता है. यह बात तब भी लागू होती है, जब वेब पर ऐक्सेस न किए जा सकने वाले संसाधन का मालिकाना हक, रीडायरेक्ट करने वाले एक्सटेंशन के पास हो. declarativeWebRequest एपीआई के साथ इस्तेमाल करने के लिए, संसाधनों का एलान करना ज़रूरी है. इसके लिए, मेनिफ़ेस्ट में "web_accessible_resources" कलेक्शन का एलान करना और उसे भरना ज़रूरी है. इसके बारे में यहां बताया गया है.

विवाद का हल

वेब अनुरोध एपीआई के मौजूदा वर्शन में, अनुरोध को तब रद्द माना जाता है, जब कम से कम एक एक्सटेंशन, अनुरोध को रद्द करने का निर्देश देता है. अगर कोई एक्सटेंशन किसी अनुरोध को रद्द करता है, तो सभी एक्सटेंशन को onErrorOccurred इवेंट से सूचना दी जाती है. एक समय में सिर्फ़ एक एक्सटेंशन, अनुरोध को रीडायरेक्ट कर सकता है या हेडर में बदलाव कर सकता है. अगर एक से ज़्यादा एक्सटेंशन, अनुरोध में बदलाव करने की कोशिश करते हैं, तो सबसे हाल ही में इंस्टॉल किया गया एक्सटेंशन लागू होता है. साथ ही, अन्य सभी एक्सटेंशन को अनदेखा कर दिया जाता है. अगर किसी एक्सटेंशन के बदलाव करने या रीडायरेक्ट करने के निर्देश को अनदेखा किया जाता है, तो उसे इसकी सूचना नहीं दी जाती.

कैश मेमोरी में सेव करना

Chrome दो कैश मेमोरी का इस्तेमाल करता है—एक डिस्क की कैश मेमोरी और एक बहुत तेज़ इन-मेमोरी कैश मेमोरी. इन-मेमोरी कैश मेमोरी की लाइफ़टाइम, रेंडर प्रोसेस की लाइफ़टाइम से जुड़ी होती है. यह रेंडर प्रोसेस, मोटे तौर पर किसी टैब से जुड़ी होती है. इन-मेमोरी कैश से जवाब दिए गए अनुरोध, वेब अनुरोध एपीआई को नहीं दिखते. अगर कोई रिक्वेस्ट हैंडलर अपना व्यवहार बदलता है (उदाहरण के लिए, अनुरोधों को ब्लॉक करने का व्यवहार), तो हो सकता है कि पेज को रीफ़्रेश करने पर, यह बदला हुआ व्यवहार लागू न हो. यह पक्का करने के लिए कि व्यवहार में बदलाव लागू हो, इन-मेमोरी कैश को खाली करने के लिए handlerBehaviorChanged() को कॉल करें. हालांकि, ऐसा बार-बार न करें. कैश मेमोरी को खाली करने में बहुत ज़्यादा समय लगता है. इवेंट लिसनर को रजिस्टर करने या उसका रजिस्ट्रेशन रद्द करने के बाद, आपको handlerBehaviorChanged() को कॉल करने की ज़रूरत नहीं है.

टाइमस्टैंप

वेब अनुरोध वाले इवेंट की timestamp प्रॉपर्टी, सिर्फ़ इंटरनल तौर पर एक जैसी होने की गारंटी होती है. एक इवेंट की तुलना दूसरे इवेंट से करने पर, आपको उनके बीच का सही ऑफ़सेट मिलेगा. हालांकि, एक्सटेंशन में मौजूद मौजूदा समय से उनकी तुलना करने पर (उदाहरण के लिए, (new Date()).getTime() के ज़रिए), आपको अनचाहे नतीजे मिल सकते हैं.

गड़बड़ी ठीक करना

अगर आपने अमान्य आर्ग्युमेंट वाले किसी इवेंट को रजिस्टर करने की कोशिश की, तो JavaScript गड़बड़ी का मैसेज दिखेगा. साथ ही, इवेंट हैंडलर को रजिस्टर नहीं किया जाएगा. अगर किसी इवेंट को हैंडल करते समय कोई गड़बड़ी होती है या कोई इवेंट हैंडलर, अमान्य ब्लॉकिंग रिस्पॉन्स दिखाता है, तो आपके एक्सटेंशन के कंसोल में गड़बड़ी का मैसेज लॉग किया जाता है. साथ ही, उस अनुरोध के लिए हैंडलर को अनदेखा कर दिया जाता है.

उदाहरण

यहां दिए गए उदाहरण में, www.evil.com के सभी अनुरोधों को ब्लॉक करने का तरीका बताया गया है:

chrome.webRequest.onBeforeRequest.addListener(
  function(details) {
    return {cancel: details.url.indexOf("://www.evil.com/") != -1};
  },
  {urls: ["<all_urls>"]},
  ["blocking"]
);

यह फ़ंक्शन, ब्लॉक करने वाले इवेंट हैंडलर का इस्तेमाल करता है. इसलिए, मेनिफ़ेस्ट फ़ाइल में "webRequest" और "webRequestBlocking" की अनुमति देना ज़रूरी है.

यहां दिए गए उदाहरण से, उसी लक्ष्य को ज़्यादा बेहतर तरीके से हासिल किया जा सकता है. ऐसा इसलिए, क्योंकि www.evil.com को टारगेट न करने वाले अनुरोधों को एक्सटेंशन को पास करने की ज़रूरत नहीं होती:

chrome.webRequest.onBeforeRequest.addListener(
  function(details) { return {cancel: true}; },
  {urls: ["*://www.evil.com/*"]},
  ["blocking"]
);

यहां दिए गए उदाहरण में, सभी अनुरोधों से उपयोगकर्ता-एजेंट हेडर को मिटाने का तरीका बताया गया है:

chrome.webRequest.onBeforeSendHeaders.addListener(
  function(details) {
    for (var i = 0; i < details.requestHeaders.length; ++i) {
      if (details.requestHeaders[i].name === 'User-Agent') {
        details.requestHeaders.splice(i, 1);
        break;
      }
    }
    return {requestHeaders: details.requestHeaders};
  },
  {urls: ["<all_urls>"]},
  ["blocking", "requestHeaders"]
);

chrome.webRequest एपीआई को आज़माने के लिए, chrome-extension-samples रिपॉज़िटरी से webRequest सैंपल इंस्टॉल करें.

टाइप

BlockingResponse

यह उन इवेंट हैंडलर के लिए वैल्यू दिखाता है जिन पर 'blocking' extraInfoSpec लागू किया गया है. इवेंट हैंडलर को नेटवर्क के अनुरोधों में बदलाव करने की अनुमति देता है.

प्रॉपर्टी

  • authCredentials

    object ज़रूरी नहीं

    इसका इस्तेमाल सिर्फ़ onAuthRequired इवेंट के जवाब के तौर पर किया जाता है. अगर यह सेट है, तो अनुरोध करने के लिए दिए गए क्रेडेंशियल का इस्तेमाल किया जाता है.

    • पासवर्ड

      स्ट्रिंग

    • उपयोगकर्ता नाम

      स्ट्रिंग

  • अभी नहीं

    बूलियन ज़रूरी नहीं

    अगर यह सही है, तो अनुरोध रद्द कर दिया जाता है. इससे अनुरोध नहीं भेजा जाता. इसका इस्तेमाल onBeforeRequest, onBeforeSendHeaders, onHeadersReceived, और onAuthRequired इवेंट के जवाब के तौर पर किया जा सकता है.

  • redirectUrl

    string ज़रूरी नहीं

    इसका इस्तेमाल सिर्फ़ onBeforeRequest और onHeadersReceived इवेंट के जवाब के तौर पर किया जाता है. अगर इसे सेट किया जाता है, तो ओरिजनल अनुरोध को भेजने/पूरा होने से रोका जाता है. इसके बजाय, उसे दिए गए यूआरएल पर रीडायरेक्ट किया जाता है. data: जैसी नॉन-एचटीटीपी स्कीम पर रीडायरेक्ट करने की अनुमति है. रीडायरेक्ट करने की कार्रवाई से शुरू किए गए रीडायरेक्ट, रीडायरेक्ट के लिए अनुरोध के ओरिजनल तरीके का इस्तेमाल करते हैं. हालांकि, इसका एक अपवाद है: अगर रीडायरेक्ट, onHeadersReceived स्टेज पर शुरू किया जाता है, तो रीडायरेक्ट को GET तरीके का इस्तेमाल करके जारी किया जाएगा. ws:// और wss:// स्कीम वाले यूआरएल से रीडायरेक्ट होने वाले यूआरएल को अनदेखा कर दिया जाता है.

  • requestHeaders

    HttpHeaders ज़रूरी नहीं है

    इसका इस्तेमाल सिर्फ़ onBeforeSendHeaders इवेंट के जवाब के तौर पर किया जाता है. अगर यह नीति सेट है, तो अनुरोध इन हेडर के साथ किया जाता है.

  • responseHeaders

    HttpHeaders ज़रूरी नहीं है

    इसका इस्तेमाल सिर्फ़ onHeadersReceived इवेंट के जवाब के तौर पर किया जाता है. अगर इसे सेट किया जाता है, तो माना जाता है कि सर्वर ने इन रिस्पॉन्स हेडर के साथ जवाब दिया है. अगर आपको वाकई हेडर में बदलाव करना है, तो सिर्फ़ responseHeaders को रिटर्न करें. इससे, गड़बड़ियों की संख्या को सीमित किया जा सकता है. हर अनुरोध के लिए, सिर्फ़ एक एक्सटेंशन responseHeaders में बदलाव कर सकता है.

FormDataItem

Chrome 66+

इसमें फ़ॉर्म डेटा में पास किया गया डेटा शामिल होता है. यूआरएल कोड में बदले गए फ़ॉर्म के लिए, अगर डेटा utf-8 स्ट्रिंग है, तो इसे स्ट्रिंग के तौर पर सेव किया जाता है. ऐसा न होने पर, इसे ArrayBuffer के तौर पर सेव किया जाता है. फ़ॉर्म-डेटा के लिए, यह ArrayBuffer है. अगर फ़ॉर्म-डेटा, अपलोड की जा रही फ़ाइल को दिखाता है, तो यह फ़ाइल नाम वाली स्ट्रिंग होती है. हालांकि, ऐसा तब होता है, जब फ़ाइल नाम दिया गया हो.

Enum

ArrayBuffer

स्ट्रिंग

HttpHeaders

एचटीटीपी हेडर का कलेक्शन. हर हेडर को एक डिक्शनरी के तौर पर दिखाया जाता है. इसमें name और value या binaryValue कुंजियां होती हैं.

टाइप

object[]

प्रॉपर्टी

  • binaryValue

    number[] ज़रूरी नहीं

    अगर एचटीटीपी हेडर की वैल्यू को UTF-8 से नहीं दिखाया जा सकता, तो उसे अलग-अलग बाइट वैल्यू (0..255) के तौर पर सेव किया जाता है.

  • नाम

    स्ट्रिंग

    एचटीटीपी हेडर का नाम.

  • मान

    string ज़रूरी नहीं

    अगर एचटीटीपी हेडर को UTF-8 से दिखाया जा सकता है, तो उसकी वैल्यू.

IgnoredActionType

Chrome 70+

Enum

"redirect"

"request_headers"

"response_headers"

"auth_credentials"

OnAuthRequiredOptions

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

Enum

"responseHeaders"
इससे पता चलता है कि इवेंट में रिस्पॉन्स हेडर शामिल किए जाने चाहिए.

"blocking"
इससे पता चलता है कि कॉलबैक फ़ंक्शन के नतीजे मिलने तक, अनुरोध को ब्लॉक किया गया है.

"asyncBlocking"
इससे पता चलता है कि कॉलबैक फ़ंक्शन को एसिंक्रोनस तरीके से मैनेज किया जाता है.

"extraHeaders"
इससे पता चलता है कि हेडर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का उल्लंघन कर सकते हैं.

OnBeforeRedirectOptions

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

Enum

"responseHeaders"
इससे पता चलता है कि इवेंट में रिस्पॉन्स हेडर शामिल किए जाने चाहिए.

"extraHeaders"
इससे पता चलता है कि हेडर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का उल्लंघन कर सकते हैं.

OnBeforeRequestOptions

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

Enum

"blocking"
इससे पता चलता है कि कॉलबैक फ़ंक्शन के नतीजे मिलने तक, अनुरोध को ब्लॉक किया गया है.

"requestBody"
इससे पता चलता है कि अनुरोध के मुख्य हिस्से को इवेंट में शामिल किया जाना चाहिए.

"extraHeaders"
इससे पता चलता है कि हेडर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का उल्लंघन कर सकते हैं.

OnBeforeSendHeadersOptions

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

Enum

"requestHeaders"
इससे पता चलता है कि अनुरोध के हेडर को इवेंट में शामिल किया जाना चाहिए.

"blocking"
इससे पता चलता है कि कॉलबैक फ़ंक्शन के नतीजे मिलने तक, अनुरोध को ब्लॉक किया गया है.

"extraHeaders"
इससे पता चलता है कि हेडर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का उल्लंघन कर सकते हैं.

OnCompletedOptions

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

Enum

"responseHeaders"
इससे पता चलता है कि इवेंट में रिस्पॉन्स हेडर शामिल किए जाने चाहिए.

"extraHeaders"
इससे पता चलता है कि हेडर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का उल्लंघन कर सकते हैं.

OnErrorOccurredOptions

Chrome 79+

वैल्यू

"extraHeaders"

OnHeadersReceivedOptions

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

Enum

"blocking"
इससे पता चलता है कि कॉलबैक फ़ंक्शन के नतीजे मिलने तक, अनुरोध को ब्लॉक किया गया है.

"responseHeaders"
इससे पता चलता है कि इवेंट में रिस्पॉन्स हेडर शामिल किए जाने चाहिए.

"extraHeaders"
इससे पता चलता है कि हेडर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का उल्लंघन कर सकते हैं.

"securityInfo"
इससे पता चलता है कि SecurityInfo को इवेंट में शामिल किया जाना चाहिए.

"securityInfoRawDer"
इससे पता चलता है कि इवेंट में, सर्टिफ़िकेट के रॉ बाइट के साथ SecurityInfo को शामिल किया जाना चाहिए.

OnResponseStartedOptions

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

Enum

"responseHeaders"
इससे पता चलता है कि इवेंट में रिस्पॉन्स हेडर शामिल किए जाने चाहिए.

"extraHeaders"
इससे पता चलता है कि हेडर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का उल्लंघन कर सकते हैं.

OnSendHeadersOptions

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

Enum

"requestHeaders"
इससे पता चलता है कि अनुरोध के हेडर को इवेंट में शामिल किया जाना चाहिए.

"extraHeaders"
इससे पता चलता है कि हेडर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का उल्लंघन कर सकते हैं.

RequestFilter

webRequest इवेंट पर लागू होने वाले फ़िल्टर के बारे में बताने वाला ऑब्जेक्ट.

प्रॉपर्टी

  • tabId

    number ज़रूरी नहीं

  • प्रकार

    ResourceType[] ज़रूरी नहीं है

    अनुरोध के टाइप की सूची. ऐसे अनुरोध जो किसी भी टाइप से मेल नहीं खाते, उन्हें फ़िल्टर कर दिया जाएगा.

  • यूआरएल

    string[]

    यूआरएल या यूआरएल पैटर्न की सूची. किसी भी यूआरएल से मैच न होने वाले अनुरोधों को फ़िल्टर कर दिया जाएगा.

  • windowId

    number ज़रूरी नहीं

ResourceType

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

Enum

"main_frame"
इससे संसाधन को मुख्य फ़्रेम के तौर पर तय किया जाता है.

"sub_frame"
इससे पता चलता है कि संसाधन एक सब-फ़्रेम है.

"stylesheet"
इससे संसाधन को स्टाइलशीट के तौर पर तय किया जाता है.

"script"
इससे पता चलता है कि रिसोर्स एक स्क्रिप्ट है.

"image"
इससे पता चलता है कि संसाधन एक इमेज है.

"font"
इससे पता चलता है कि संसाधन एक फ़ॉन्ट है.

"object"
इससे संसाधन को ऑब्जेक्ट के तौर पर तय किया जाता है.

"xmlhttprequest"
इससे पता चलता है कि संसाधन, XMLHttpRequest है.

"ping"
इससे पता चलता है कि संसाधन एक पिंग है.

"csp_report"
इससे पता चलता है कि रिसॉर्स, कॉन्टेंट की सुरक्षा के लिए नीति (सीएसपी) की रिपोर्ट है.

"media"
इससे संसाधन को मीडिया ऑब्जेक्ट के तौर पर तय किया जाता है.

"websocket"
इससे संसाधन को WebSocket के तौर पर तय किया जाता है.

"webbundle"
इससे संसाधन को WebBundle के तौर पर तय किया जाता है.

"other"
इससे पता चलता है कि रिसोर्स का टाइप, सूची में शामिल टाइप से अलग है.

SecurityInfo

Chrome 144 या इसके बाद का वर्शन

प्रॉपर्टी

  • सर्टिफ़िकेट

    object[]

    सर्टिफ़िकेट की सूची

    • फ़िंगरप्रिंट

      ऑब्जेक्ट

      सर्टिफ़िकेट के फ़िंगरप्रिंट.

      • sha256

        स्ट्रिंग

        सर्टिफ़िकेट का sha256 फ़िंगरप्रिंट.

    • rawDER

      ArrayBuffer ज़रूरी नहीं

      डीईआर कोड में बदले गए सर्वर सर्टिफ़िकेट के रॉ बाइट

  • राज्य

    स्ट्रिंग

    कनेक्शन की स्थिति. इनमें से कोई एक: सुरक्षित, असुरक्षित, ब्रोकन.

UploadData

इसमें यूआरएल के अनुरोध में अपलोड किया गया डेटा शामिल होता है.

प्रॉपर्टी

  • बाइट

    ज़रूरी नहीं

    डेटा की कॉपी वाला ArrayBuffer.

  • फ़ाइल

    string ज़रूरी नहीं

    फ़ाइल के पाथ और नाम वाली स्ट्रिंग.

प्रॉपर्टी

MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES

handlerBehaviorChanged को 10 मिनट के इंटरवल में ज़्यादा से ज़्यादा कितनी बार कॉल किया जा सकता है. handlerBehaviorChanged एक ऐसा फ़ंक्शन कॉल है जिसमें ज़्यादा समय लगता है. इसलिए, इसे बार-बार कॉल नहीं किया जाना चाहिए.

वैल्यू

20

तरीके

handlerBehaviorChanged()

वादा
chrome.webRequest.handlerBehaviorChanged(
  callback?: function,
)
: Promise<void>

इसे तब कॉल करना ज़रूरी है, जब webRequest हैंडलर के व्यवहार में बदलाव हुआ हो. इससे, कैश मेमोरी में सेव होने की वजह से गलत तरीके से हैंडल करने से बचा जा सकता है. इस फ़ंक्शन कॉल के लिए ज़्यादा कंप्यूटेशनल रिसॉर्स की ज़रूरत होती है. इसे बार-बार कॉल न करें.

पैरामीटर

  • कॉलबैक

    function ज़रूरी नहीं

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

    () => void

रिटर्न

  • वादा<शून्य>

    Chrome 116 या इसके बाद का वर्शन

    प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.

इवेंट

onActionIgnored

Chrome 70+
chrome.webRequest.onActionIgnored.addListener(
  callback: function,
)

यह तब ट्रिगर होता है, जब नेटवर्क के अनुरोध में बदलाव करने के लिए, किसी एक्सटेंशन के सुझाव को अनदेखा कर दिया जाता है. ऐसा तब होता है, जब अन्य एक्सटेंशन के साथ कोई समस्या हो.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (details: object) => void

    • विवरण

      ऑब्जेक्ट

      • ऐक्शन गेम

        सुझाई गई वह कार्रवाई जिसे अनदेखा किया गया.

      • requestId

        स्ट्रिंग

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

onAuthRequired

chrome.webRequest.onAuthRequired.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnAuthRequiredOptions[],
)

यह इवेंट तब ट्रिगर होता है, जब पुष्टि करने में कोई गड़बड़ी होती है. लिसनर के पास तीन विकल्प होते हैं: यह पुष्टि करने वाले क्रेडेंशियल दे सकता है, अनुरोध को रद्द करके गड़बड़ी वाला पेज दिखा सकता है या चैलेंज पर कोई कार्रवाई नहीं कर सकता. अगर उपयोगकर्ता के क्रेडेंशियल गलत हैं, तो एक ही अनुरोध के लिए इसे कई बार कॉल किया जा सकता है. ध्यान दें, extraInfoSpec पैरामीटर में 'blocking' या 'asyncBlocking' मोड में से सिर्फ़ एक मोड की जानकारी दी जानी चाहिए.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (details: object, asyncCallback?: function) => BlockingResponse | undefined

    • विवरण

      ऑब्जेक्ट

      • चैलेंजर

        ऑब्जेक्ट

        सर्वर, पुष्टि करने का अनुरोध कर रहा है.

        • होस्ट

          स्ट्रिंग

        • पोर्ट

          संख्या

      • documentId

        string ज़रूरी नहीं

        Chrome 106+

        अनुरोध करने वाले दस्तावेज़ का यूयूआईडी.

      • Chrome 106+

        दस्तावेज़ की लाइफ़साइकल.

      • frameId

        संख्या

        वैल्यू 0 से पता चलता है कि अनुरोध मुख्य फ़्रेम में किया गया है. वहीं, पॉज़िटिव वैल्यू से उस सबफ़्रेम के आईडी का पता चलता है जिसमें अनुरोध किया गया है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड किया जाता है (type, main_frame या sub_frame है), तो frameId इस फ़्रेम का आईडी दिखाता है, न कि बाहरी फ़्रेम का आईडी. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं.

      • Chrome 106+

        अनुरोध किस तरह के फ़्रेम में किया गया था.

      • शुरू करने वाला

        string ज़रूरी नहीं

        Chrome 63 या इसके बाद का वर्शन

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

      • isProxy

        बूलियन

        प्रॉक्सी-ऑथेंटिकेट के लिए True, WWW-ऑथेंटिकेट के लिए False.

      • तरीका

        स्ट्रिंग

        एचटीटीपी का स्टैंडर्ड तरीका.

      • parentDocumentId

        string ज़रूरी नहीं

        Chrome 106+

        इस फ़्रेम के मालिकाना हक वाले पैरंट दस्तावेज़ का यूयूआईडी. अगर कोई पैरंट नहीं है, तो इसे सेट नहीं किया जाता.

      • parentFrameId

        संख्या

        अनुरोध भेजने वाले फ़्रेम को रैप करने वाले फ़्रेम का आईडी. अगर कोई पैरंट फ़्रेम मौजूद नहीं है, तो इसे -1 पर सेट करें.

      • रेल्म

        string ज़रूरी नहीं

        सर्वर से मिला पुष्टि करने का दायरा, अगर कोई है.

      • requestId

        स्ट्रिंग

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

      • responseHeaders

        HttpHeaders ज़रूरी नहीं है

        इस जवाब के साथ मिले एचटीटीपी रिस्पॉन्स हेडर.

      • स्कीम

        स्ट्रिंग

        पुष्टि करने का तरीका, जैसे कि Basic या Digest.

      • statusCode

        संख्या

        Chrome 43+

        सर्वर से मिला स्टैंडर्ड एचटीटीपी स्टेटस कोड.

      • statusLine

        स्ट्रिंग

        रिस्पॉन्स की एचटीटीपी स्टेटस लाइन या एचटीटीपी/0.9 रिस्पॉन्स के लिए 'एचटीटीपी/0.9 200 OK' स्ट्रिंग (यानी, ऐसे रिस्पॉन्स जिनमें स्टेटस लाइन नहीं होती) या कोई हेडर न होने पर खाली स्ट्रिंग.

      • tabId

        संख्या

        उस टैब का आईडी जिसमें अनुरोध किया गया है. अगर अनुरोध किसी टैब से जुड़ा नहीं है, तो इसे -1 पर सेट करें.

      • timeStamp

        संख्या

        इस सिग्नल के ट्रिगर होने का समय, epoch के बाद से मिलीसेकंड में.

      • टाइप

        अनुरोध किए गए संसाधन का इस्तेमाल कैसे किया जाएगा.

      • url

        स्ट्रिंग

    • asyncCallback

      function ज़रूरी नहीं

      Chrome 58+

      asyncCallback पैरामीटर कुछ ऐसा दिखता है:

      (response: BlockingResponse) => void

    • returns

      BlockingResponse | undefined

      अगर "extraInfoSpec" पैरामीटर में "blocking" की जानकारी दी गई है, तो इवेंट लिसनर को इस टाइप का ऑब्जेक्ट दिखाना चाहिए.

  • फ़िल्टर
  • extraInfoSpec

    OnAuthRequiredOptions[] ज़रूरी नहीं

onBeforeRedirect

chrome.webRequest.onBeforeRedirect.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnBeforeRedirectOptions[],
)

यह इवेंट तब ट्रिगर होता है, जब सर्वर से शुरू किया गया रीडायरेक्ट होने वाला हो.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (details: object) => void

    • विवरण

      ऑब्जेक्ट

      • documentId

        string ज़रूरी नहीं

        Chrome 106+

        अनुरोध करने वाले दस्तावेज़ का यूयूआईडी.

      • Chrome 106+

        दस्तावेज़ की लाइफ़साइकल.

      • frameId

        संख्या

        वैल्यू 0 से पता चलता है कि अनुरोध मुख्य फ़्रेम में किया गया है. वहीं, पॉज़िटिव वैल्यू से उस सबफ़्रेम के आईडी का पता चलता है जिसमें अनुरोध किया गया है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड किया जाता है (type, main_frame या sub_frame है), तो frameId इस फ़्रेम का आईडी दिखाता है, न कि बाहरी फ़्रेम का आईडी. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं.

      • Chrome 106+

        अनुरोध किस तरह के फ़्रेम में किया गया था.

      • fromCache

        बूलियन

        इससे पता चलता है कि यह रिस्पॉन्स, डिस्क की कैश मेमोरी से फ़ेच किया गया था या नहीं.

      • शुरू करने वाला

        string ज़रूरी नहीं

        Chrome 63 या इसके बाद का वर्शन

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

      • ip

        string ज़रूरी नहीं

        सर्वर का वह आईपी पता जिस पर अनुरोध भेजा गया था. ध्यान दें कि यह लिटरल IPv6 पता हो सकता है.

      • तरीका

        स्ट्रिंग

        एचटीटीपी का स्टैंडर्ड तरीका.

      • parentDocumentId

        string ज़रूरी नहीं

        Chrome 106+

        इस फ़्रेम के मालिकाना हक वाले पैरंट दस्तावेज़ का यूयूआईडी. अगर कोई पैरंट नहीं है, तो इसे सेट नहीं किया जाता.

      • parentFrameId

        संख्या

        अनुरोध भेजने वाले फ़्रेम को रैप करने वाले फ़्रेम का आईडी. अगर कोई पैरंट फ़्रेम मौजूद नहीं है, तो इसे -1 पर सेट करें.

      • redirectUrl

        स्ट्रिंग

        नया यूआरएल.

      • requestId

        स्ट्रिंग

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

      • responseHeaders

        HttpHeaders ज़रूरी नहीं है

        इस रीडायरेक्ट के साथ मिले एचटीटीपी रिस्पॉन्स हेडर.

      • statusCode

        संख्या

        सर्वर से मिला स्टैंडर्ड एचटीटीपी स्टेटस कोड.

      • statusLine

        स्ट्रिंग

        रिस्पॉन्स की एचटीटीपी स्टेटस लाइन या एचटीटीपी/0.9 रिस्पॉन्स के लिए 'एचटीटीपी/0.9 200 OK' स्ट्रिंग (यानी, ऐसे रिस्पॉन्स जिनमें स्टेटस लाइन नहीं होती) या कोई हेडर न होने पर खाली स्ट्रिंग.

      • tabId

        संख्या

        उस टैब का आईडी जिसमें अनुरोध किया गया है. अगर अनुरोध किसी टैब से जुड़ा नहीं है, तो इसे -1 पर सेट करें.

      • timeStamp

        संख्या

        इस सिग्नल के ट्रिगर होने का समय, epoch के बाद से मिलीसेकंड में.

      • टाइप

        अनुरोध किए गए संसाधन का इस्तेमाल कैसे किया जाएगा.

      • url

        स्ट्रिंग

  • फ़िल्टर
  • extraInfoSpec

onBeforeRequest

chrome.webRequest.onBeforeRequest.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnBeforeRequestOptions[],
)

यह इवेंट तब ट्रिगर होता है, जब कोई अनुरोध होने वाला होता है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (details: object) => BlockingResponse | undefined

    • विवरण

      ऑब्जेक्ट

      • documentId

        string ज़रूरी नहीं

        Chrome 106+

        अनुरोध करने वाले दस्तावेज़ का यूयूआईडी.

      • documentLifecycle

        extensionTypes.DocumentLifecycle ज़रूरी नहीं

        Chrome 106+

        दस्तावेज़ की लाइफ़साइकल.

      • frameId

        संख्या

        वैल्यू 0 से पता चलता है कि अनुरोध मुख्य फ़्रेम में किया गया है. वहीं, पॉज़िटिव वैल्यू से उस सबफ़्रेम के आईडी का पता चलता है जिसमें अनुरोध किया गया है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड किया जाता है (type, main_frame या sub_frame है), तो frameId इस फ़्रेम का आईडी दिखाता है, न कि बाहरी फ़्रेम का आईडी. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं.

      • frameType

        extensionTypes.FrameType ज़रूरी नहीं

        Chrome 106+

        अनुरोध किस तरह के फ़्रेम में किया गया था.

      • शुरू करने वाला

        string ज़रूरी नहीं

        Chrome 63 या इसके बाद का वर्शन

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

      • तरीका

        स्ट्रिंग

        एचटीटीपी का स्टैंडर्ड तरीका.

      • parentDocumentId

        string ज़रूरी नहीं

        Chrome 106+

        इस फ़्रेम के मालिकाना हक वाले पैरंट दस्तावेज़ का यूयूआईडी. अगर कोई पैरंट नहीं है, तो इसे सेट नहीं किया जाता.

      • parentFrameId

        संख्या

        अनुरोध भेजने वाले फ़्रेम को रैप करने वाले फ़्रेम का आईडी. अगर कोई पैरंट फ़्रेम मौजूद नहीं है, तो इसे -1 पर सेट करें.

      • requestBody

        object ज़रूरी नहीं

        इसमें एचटीटीपी अनुरोध के मुख्य हिस्से का डेटा शामिल होता है. यह सिर्फ़ तब उपलब्ध होता है, जब extraInfoSpec में 'requestBody' शामिल हो.

        • गड़बड़ी

          string ज़रूरी नहीं

          अनुरोध के मुख्य हिस्से का डेटा पाने में होने वाली गड़बड़ियां.

        • formData

          object ज़रूरी नहीं

          अगर अनुरोध का तरीका POST है और मुख्य हिस्से में UTF8 में एन्कोड किए गए की-वैल्यू पेयर का क्रम है, तो यह डिक्शनरी मौजूद होती है. साथ ही, हर कुंजी के लिए उस कुंजी की सभी वैल्यू की सूची होती है. इसे multipart/form-data या application/x-www-form-urlencoded के तौर पर एन्कोड किया जाता है. अगर डेटा किसी अन्य मीडिया टाइप का है या गलत तरीके से बनाया गया है, तो डिक्शनरी मौजूद नहीं होती. इस डिक्शनरी की वैल्यू का एक उदाहरण {'key': ['value1', 'value2']} है.

        • रॉ

          UploadData[] ज़रूरी नहीं

          अगर अनुरोध का तरीका PUT या POST है और बॉडी को formData में पहले से पार्स नहीं किया गया है, तो पार्स नहीं किए गए अनुरोध के बॉडी एलिमेंट इस कलेक्शन में शामिल होते हैं.

      • requestId

        स्ट्रिंग

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

      • tabId

        संख्या

        उस टैब का आईडी जिसमें अनुरोध किया गया है. अगर अनुरोध किसी टैब से जुड़ा नहीं है, तो इसे -1 पर सेट करें.

      • timeStamp

        संख्या

        इस सिग्नल के ट्रिगर होने का समय, epoch के बाद से मिलीसेकंड में.

      • टाइप

        अनुरोध किए गए संसाधन का इस्तेमाल कैसे किया जाएगा.

      • url

        स्ट्रिंग

    • returns

      BlockingResponse | undefined

      अगर "extraInfoSpec" पैरामीटर में "blocking" की जानकारी दी गई है, तो इवेंट लिसनर को इस टाइप का ऑब्जेक्ट दिखाना चाहिए.

  • फ़िल्टर
  • extraInfoSpec

    OnBeforeRequestOptions[] ज़रूरी नहीं

onBeforeSendHeaders

chrome.webRequest.onBeforeSendHeaders.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnBeforeSendHeadersOptions[],
)

अनुरोध के हेडर उपलब्ध होने पर, एचटीटीपी अनुरोध भेजने से पहले ट्रिगर होता है. ऐसा तब हो सकता है, जब सर्वर से टीसीपी कनेक्शन बन गया हो, लेकिन एचटीटीपी डेटा भेजने से पहले ही कनेक्शन टूट गया हो.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (details: object) => BlockingResponse | undefined

    • विवरण

      ऑब्जेक्ट

      • documentId

        string ज़रूरी नहीं

        Chrome 106+

        अनुरोध करने वाले दस्तावेज़ का यूयूआईडी.

      • Chrome 106+

        दस्तावेज़ की लाइफ़साइकल.

      • frameId

        संख्या

        वैल्यू 0 से पता चलता है कि अनुरोध मुख्य फ़्रेम में किया गया है. वहीं, पॉज़िटिव वैल्यू से उस सबफ़्रेम के आईडी का पता चलता है जिसमें अनुरोध किया गया है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड किया जाता है (type, main_frame या sub_frame है), तो frameId इस फ़्रेम का आईडी दिखाता है, न कि बाहरी फ़्रेम का आईडी. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं.

      • Chrome 106+

        अनुरोध किस तरह के फ़्रेम में किया गया था.

      • शुरू करने वाला

        string ज़रूरी नहीं

        Chrome 63 या इसके बाद का वर्शन

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

      • तरीका

        स्ट्रिंग

        एचटीटीपी का स्टैंडर्ड तरीका.

      • parentDocumentId

        string ज़रूरी नहीं

        Chrome 106+

        इस फ़्रेम के मालिकाना हक वाले पैरंट दस्तावेज़ का यूयूआईडी. अगर कोई पैरंट नहीं है, तो इसे सेट नहीं किया जाता.

      • parentFrameId

        संख्या

        अनुरोध भेजने वाले फ़्रेम को रैप करने वाले फ़्रेम का आईडी. अगर कोई पैरंट फ़्रेम मौजूद नहीं है, तो इसे -1 पर सेट करें.

      • requestHeaders

        HttpHeaders ज़रूरी नहीं है

        एचटीटीपी अनुरोध के हेडर, जो इस अनुरोध के साथ भेजे जाएंगे.

      • requestId

        स्ट्रिंग

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

      • tabId

        संख्या

        उस टैब का आईडी जिसमें अनुरोध किया गया है. अगर अनुरोध किसी टैब से जुड़ा नहीं है, तो इसे -1 पर सेट करें.

      • timeStamp

        संख्या

        इस सिग्नल के ट्रिगर होने का समय, epoch के बाद से मिलीसेकंड में.

      • टाइप

        अनुरोध किए गए संसाधन का इस्तेमाल कैसे किया जाएगा.

      • url

        स्ट्रिंग

    • returns

      BlockingResponse | undefined

      अगर "extraInfoSpec" पैरामीटर में "blocking" की जानकारी दी गई है, तो इवेंट लिसनर को इस टाइप का ऑब्जेक्ट दिखाना चाहिए.

  • फ़िल्टर
  • extraInfoSpec

    OnBeforeSendHeadersOptions[] ज़रूरी नहीं

onCompleted

chrome.webRequest.onCompleted.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnCompletedOptions[],
)

अनुरोध पूरा होने पर ट्रिगर होता है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (details: object) => void

    • विवरण

      ऑब्जेक्ट

      • documentId

        string ज़रूरी नहीं

        Chrome 106+

        अनुरोध करने वाले दस्तावेज़ का यूयूआईडी.

      • Chrome 106+

        दस्तावेज़ की लाइफ़साइकल.

      • frameId

        संख्या

        वैल्यू 0 से पता चलता है कि अनुरोध मुख्य फ़्रेम में किया गया है. वहीं, पॉज़िटिव वैल्यू से उस सबफ़्रेम के आईडी का पता चलता है जिसमें अनुरोध किया गया है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड किया जाता है (type, main_frame या sub_frame है), तो frameId इस फ़्रेम का आईडी दिखाता है, न कि बाहरी फ़्रेम का आईडी. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं.

      • Chrome 106+

        अनुरोध किस तरह के फ़्रेम में किया गया था.

      • fromCache

        बूलियन

        इससे पता चलता है कि यह रिस्पॉन्स, डिस्क की कैश मेमोरी से फ़ेच किया गया था या नहीं.

      • शुरू करने वाला

        string ज़रूरी नहीं

        Chrome 63 या इसके बाद का वर्शन

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

      • ip

        string ज़रूरी नहीं

        सर्वर का वह आईपी पता जिस पर अनुरोध भेजा गया था. ध्यान दें कि यह लिटरल IPv6 पता हो सकता है.

      • तरीका

        स्ट्रिंग

        एचटीटीपी का स्टैंडर्ड तरीका.

      • parentDocumentId

        string ज़रूरी नहीं

        Chrome 106+

        इस फ़्रेम के मालिकाना हक वाले पैरंट दस्तावेज़ का यूयूआईडी. अगर कोई पैरंट नहीं है, तो इसे सेट नहीं किया जाता.

      • parentFrameId

        संख्या

        अनुरोध भेजने वाले फ़्रेम को रैप करने वाले फ़्रेम का आईडी. अगर कोई पैरंट फ़्रेम मौजूद नहीं है, तो इसे -1 पर सेट करें.

      • requestId

        स्ट्रिंग

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

      • responseHeaders

        HttpHeaders ज़रूरी नहीं है

        इस जवाब के साथ मिले एचटीटीपी रिस्पॉन्स हेडर.

      • statusCode

        संख्या

        सर्वर से मिला स्टैंडर्ड एचटीटीपी स्टेटस कोड.

      • statusLine

        स्ट्रिंग

        रिस्पॉन्स की एचटीटीपी स्टेटस लाइन या एचटीटीपी/0.9 रिस्पॉन्स के लिए 'एचटीटीपी/0.9 200 OK' स्ट्रिंग (यानी, ऐसे रिस्पॉन्स जिनमें स्टेटस लाइन नहीं होती) या कोई हेडर न होने पर खाली स्ट्रिंग.

      • tabId

        संख्या

        उस टैब का आईडी जिसमें अनुरोध किया गया है. अगर अनुरोध किसी टैब से जुड़ा नहीं है, तो इसे -1 पर सेट करें.

      • timeStamp

        संख्या

        इस सिग्नल के ट्रिगर होने का समय, epoch के बाद से मिलीसेकंड में.

      • टाइप

        अनुरोध किए गए संसाधन का इस्तेमाल कैसे किया जाएगा.

      • url

        स्ट्रिंग

  • फ़िल्टर
  • extraInfoSpec

    OnCompletedOptions[] ज़रूरी नहीं है

onErrorOccurred

chrome.webRequest.onErrorOccurred.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnErrorOccurredOptions[],
)

कोई गड़बड़ी होने पर ट्रिगर होता है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (details: object) => void

    • विवरण

      ऑब्जेक्ट

      • documentId

        string ज़रूरी नहीं

        Chrome 106+

        अनुरोध करने वाले दस्तावेज़ का यूयूआईडी. अगर अनुरोध किसी फ़्रेम का नेविगेशन है, तो यह वैल्यू मौजूद नहीं होती.

      • Chrome 106+

        दस्तावेज़ की लाइफ़साइकल.

      • गड़बड़ी

        स्ट्रिंग

        गड़बड़ी की जानकारी. इस बात की कोई गारंटी नहीं है कि यह स्ट्रिंग, रिलीज़ के बीच पुराने सिस्टम के साथ काम करती रहेगी. आपको इसके कॉन्टेंट को पार्स नहीं करना चाहिए और न ही इसके आधार पर कोई कार्रवाई करनी चाहिए.

      • frameId

        संख्या

        वैल्यू 0 से पता चलता है कि अनुरोध मुख्य फ़्रेम में किया गया है. वहीं, पॉज़िटिव वैल्यू से उस सबफ़्रेम के आईडी का पता चलता है जिसमें अनुरोध किया गया है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड किया जाता है (type, main_frame या sub_frame है), तो frameId इस फ़्रेम का आईडी दिखाता है, न कि बाहरी फ़्रेम का आईडी. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं.

      • Chrome 106+

        अनुरोध किस तरह के फ़्रेम में किया गया था.

      • fromCache

        बूलियन

        इससे पता चलता है कि यह रिस्पॉन्स, डिस्क की कैश मेमोरी से फ़ेच किया गया था या नहीं.

      • शुरू करने वाला

        string ज़रूरी नहीं

        Chrome 63 या इसके बाद का वर्शन

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

      • ip

        string ज़रूरी नहीं

        सर्वर का वह आईपी पता जिस पर अनुरोध भेजा गया था. ध्यान दें कि यह लिटरल IPv6 पता हो सकता है.

      • तरीका

        स्ट्रिंग

        एचटीटीपी का स्टैंडर्ड तरीका.

      • parentDocumentId

        string ज़रूरी नहीं

        Chrome 106+

        इस फ़्रेम के मालिकाना हक वाले पैरंट दस्तावेज़ का यूयूआईडी. अगर कोई पैरंट नहीं है, तो इसे सेट नहीं किया जाता.

      • parentFrameId

        संख्या

        अनुरोध भेजने वाले फ़्रेम को रैप करने वाले फ़्रेम का आईडी. अगर कोई पैरंट फ़्रेम मौजूद नहीं है, तो इसे -1 पर सेट करें.

      • requestId

        स्ट्रिंग

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

      • tabId

        संख्या

        उस टैब का आईडी जिसमें अनुरोध किया गया है. अगर अनुरोध किसी टैब से जुड़ा नहीं है, तो इसे -1 पर सेट करें.

      • timeStamp

        संख्या

        इस सिग्नल के ट्रिगर होने का समय, epoch के बाद से मिलीसेकंड में.

      • टाइप

        अनुरोध किए गए संसाधन का इस्तेमाल कैसे किया जाएगा.

      • url

        स्ट्रिंग

  • फ़िल्टर
  • extraInfoSpec

    OnErrorOccurredOptions[] ज़रूरी नहीं

onHeadersReceived

chrome.webRequest.onHeadersReceived.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnHeadersReceivedOptions[],
)

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (details: object) => BlockingResponse | undefined

    • विवरण

      ऑब्जेक्ट

      • documentId

        string ज़रूरी नहीं

        Chrome 106+

        अनुरोध करने वाले दस्तावेज़ का यूयूआईडी.

      • Chrome 106+

        दस्तावेज़ की लाइफ़साइकल.

      • frameId

        संख्या

        वैल्यू 0 से पता चलता है कि अनुरोध मुख्य फ़्रेम में किया गया है. वहीं, पॉज़िटिव वैल्यू से उस सबफ़्रेम के आईडी का पता चलता है जिसमें अनुरोध किया गया है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड किया जाता है (type, main_frame या sub_frame है), तो frameId इस फ़्रेम का आईडी दिखाता है, न कि बाहरी फ़्रेम का आईडी. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं.

      • Chrome 106+

        अनुरोध किस तरह के फ़्रेम में किया गया था.

      • शुरू करने वाला

        string ज़रूरी नहीं

        Chrome 63 या इसके बाद का वर्शन

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

      • तरीका

        स्ट्रिंग

        एचटीटीपी का स्टैंडर्ड तरीका.

      • parentDocumentId

        string ज़रूरी नहीं

        Chrome 106+

        इस फ़्रेम के मालिकाना हक वाले पैरंट दस्तावेज़ का यूयूआईडी. अगर कोई पैरंट नहीं है, तो इसे सेट नहीं किया जाता.

      • parentFrameId

        संख्या

        अनुरोध भेजने वाले फ़्रेम को रैप करने वाले फ़्रेम का आईडी. अगर कोई पैरंट फ़्रेम मौजूद नहीं है, तो इसे -1 पर सेट करें.

      • requestId

        स्ट्रिंग

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

      • responseHeaders

        HttpHeaders ज़रूरी नहीं है

        इस रिस्पॉन्स के साथ मिले एचटीटीपी रिस्पॉन्स हेडर.

      • securityInfo

        SecurityInfo ज़रूरी नहीं है

        Chrome 144 या इसके बाद का वर्शन

        मौजूदा कनेक्शन के लिए इस्तेमाल किए गए टीएलएस/QUIC कनेक्शन के बारे में जानकारी. यह सिर्फ़ तब उपलब्ध होता है, जब extraInfoSpec पैरामीटर में securityInfo की वैल्यू दी गई हो.

      • statusCode

        संख्या

        Chrome 43+

        सर्वर से मिला स्टैंडर्ड एचटीटीपी स्टेटस कोड.

      • statusLine

        स्ट्रिंग

        रिस्पॉन्स की एचटीटीपी स्टेटस लाइन या एचटीटीपी/0.9 रिस्पॉन्स के लिए 'HTTP/0.9 200 OK' स्ट्रिंग (यानी, ऐसे रिस्पॉन्स जिनमें स्टेटस लाइन नहीं होती).

      • tabId

        संख्या

        उस टैब का आईडी जिसमें अनुरोध किया गया है. अगर अनुरोध किसी टैब से जुड़ा नहीं है, तो इसे -1 पर सेट करें.

      • timeStamp

        संख्या

        इस सिग्नल के ट्रिगर होने का समय, epoch के बाद से मिलीसेकंड में.

      • टाइप

        अनुरोध किए गए संसाधन का इस्तेमाल कैसे किया जाएगा.

      • url

        स्ट्रिंग

    • returns

      BlockingResponse | undefined

      अगर "extraInfoSpec" पैरामीटर में "blocking" की जानकारी दी गई है, तो इवेंट लिसनर को इस टाइप का ऑब्जेक्ट दिखाना चाहिए.

  • फ़िल्टर
  • extraInfoSpec

    OnHeadersReceivedOptions[] ज़रूरी नहीं

onResponseStarted

chrome.webRequest.onResponseStarted.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnResponseStartedOptions[],
)

यह तब ट्रिगर होता है, जब रिस्पॉन्स बॉडी का पहला बाइट मिलता है. एचटीटीपी अनुरोधों के लिए, इसका मतलब है कि स्टेटस लाइन और रिस्पॉन्स हेडर उपलब्ध हैं.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (details: object) => void

    • विवरण

      ऑब्जेक्ट

      • documentId

        string ज़रूरी नहीं

        Chrome 106+

        अनुरोध करने वाले दस्तावेज़ का यूयूआईडी.

      • Chrome 106+

        दस्तावेज़ की लाइफ़साइकल.

      • frameId

        संख्या

        वैल्यू 0 से पता चलता है कि अनुरोध मुख्य फ़्रेम में किया गया है. वहीं, पॉज़िटिव वैल्यू से उस सबफ़्रेम के आईडी का पता चलता है जिसमें अनुरोध किया गया है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड किया जाता है (type, main_frame या sub_frame है), तो frameId इस फ़्रेम का आईडी दिखाता है, न कि बाहरी फ़्रेम का आईडी. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं.

      • Chrome 106+

        अनुरोध किस तरह के फ़्रेम में किया गया था.

      • fromCache

        बूलियन

        इससे पता चलता है कि यह रिस्पॉन्स, डिस्क की कैश मेमोरी से फ़ेच किया गया था या नहीं.

      • शुरू करने वाला

        string ज़रूरी नहीं

        Chrome 63 या इसके बाद का वर्शन

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

      • ip

        string ज़रूरी नहीं

        सर्वर का वह आईपी पता जिस पर अनुरोध भेजा गया था. ध्यान दें कि यह लिटरल IPv6 पता हो सकता है.

      • तरीका

        स्ट्रिंग

        एचटीटीपी का स्टैंडर्ड तरीका.

      • parentDocumentId

        string ज़रूरी नहीं

        Chrome 106+

        इस फ़्रेम के मालिकाना हक वाले पैरंट दस्तावेज़ का यूयूआईडी. अगर कोई पैरंट नहीं है, तो इसे सेट नहीं किया जाता.

      • parentFrameId

        संख्या

        अनुरोध भेजने वाले फ़्रेम को रैप करने वाले फ़्रेम का आईडी. अगर कोई पैरंट फ़्रेम मौजूद नहीं है, तो इसे -1 पर सेट करें.

      • requestId

        स्ट्रिंग

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

      • responseHeaders

        HttpHeaders ज़रूरी नहीं है

        इस जवाब के साथ मिले एचटीटीपी रिस्पॉन्स हेडर.

      • statusCode

        संख्या

        सर्वर से मिला स्टैंडर्ड एचटीटीपी स्टेटस कोड.

      • statusLine

        स्ट्रिंग

        रिस्पॉन्स की एचटीटीपी स्टेटस लाइन या एचटीटीपी/0.9 रिस्पॉन्स के लिए 'एचटीटीपी/0.9 200 OK' स्ट्रिंग (यानी, ऐसे रिस्पॉन्स जिनमें स्टेटस लाइन नहीं होती) या कोई हेडर न होने पर खाली स्ट्रिंग.

      • tabId

        संख्या

        उस टैब का आईडी जिसमें अनुरोध किया गया है. अगर अनुरोध किसी टैब से जुड़ा नहीं है, तो इसे -1 पर सेट करें.

      • timeStamp

        संख्या

        इस सिग्नल के ट्रिगर होने का समय, epoch के बाद से मिलीसेकंड में.

      • टाइप

        अनुरोध किए गए संसाधन का इस्तेमाल कैसे किया जाएगा.

      • url

        स्ट्रिंग

  • फ़िल्टर
  • extraInfoSpec

    OnResponseStartedOptions[] ज़रूरी नहीं

onSendHeaders

chrome.webRequest.onSendHeaders.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnSendHeadersOptions[],
)

सर्वर को अनुरोध भेजे जाने से ठीक पहले ट्रिगर होता है. onSendHeaders के ट्रिगर होने तक, onBeforeSendHeaders के पिछले कॉलबैक में किए गए बदलाव दिखते हैं.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (details: object) => void

    • विवरण

      ऑब्जेक्ट

      • documentId

        string ज़रूरी नहीं

        Chrome 106+

        अनुरोध करने वाले दस्तावेज़ का यूयूआईडी.

      • Chrome 106+

        दस्तावेज़ की लाइफ़साइकल.

      • frameId

        संख्या

        वैल्यू 0 से पता चलता है कि अनुरोध मुख्य फ़्रेम में किया गया है. वहीं, पॉज़िटिव वैल्यू से उस सबफ़्रेम के आईडी का पता चलता है जिसमें अनुरोध किया गया है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड किया जाता है (type, main_frame या sub_frame है), तो frameId इस फ़्रेम का आईडी दिखाता है, न कि बाहरी फ़्रेम का आईडी. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं.

      • Chrome 106+

        अनुरोध किस तरह के फ़्रेम में किया गया था.

      • शुरू करने वाला

        string ज़रूरी नहीं

        Chrome 63 या इसके बाद का वर्शन

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

      • तरीका

        स्ट्रिंग

        एचटीटीपी का स्टैंडर्ड तरीका.

      • parentDocumentId

        string ज़रूरी नहीं

        Chrome 106+

        इस फ़्रेम के मालिकाना हक वाले पैरंट दस्तावेज़ का यूयूआईडी. अगर कोई पैरंट नहीं है, तो इसे सेट नहीं किया जाता.

      • parentFrameId

        संख्या

        अनुरोध भेजने वाले फ़्रेम को रैप करने वाले फ़्रेम का आईडी. अगर कोई पैरंट फ़्रेम मौजूद नहीं है, तो इसे -1 पर सेट करें.

      • requestHeaders

        HttpHeaders ज़रूरी नहीं है

        एचटीटीपी अनुरोध के हेडर, जिन्हें इस अनुरोध के साथ भेजा गया है.

      • requestId

        स्ट्रिंग

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

      • tabId

        संख्या

        उस टैब का आईडी जिसमें अनुरोध किया गया है. अगर अनुरोध किसी टैब से जुड़ा नहीं है, तो इसे -1 पर सेट करें.

      • timeStamp

        संख्या

        इस सिग्नल के ट्रिगर होने का समय, epoch के बाद से मिलीसेकंड में.

      • टाइप

        अनुरोध किए गए संसाधन का इस्तेमाल कैसे किया जाएगा.

      • url

        स्ट्रिंग

  • फ़िल्टर
  • extraInfoSpec

    OnSendHeadersOptions[] ज़रूरी नहीं