chrome.webRequest

ब्यौरा

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

अनुमतियां

webRequest

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

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

webRequestBlocking

ब्लॉक करने वाले इवेंट हैंडलर रजिस्टर करने के लिए ज़रूरी है. मेनिफ़ेस्ट V3 के हिसाब से, यह सिर्फ़ नीति इंस्टॉल किए गए एक्सटेंशन के लिए उपलब्ध है.

webRequestAuthProvider

onAuthRequired तरीके का इस्तेमाल करने के लिए ज़रूरी है. यहां जाएं: पुष्टि करने की प्रोसेस को मैनेज करना.

सिद्धांत और उनका इस्तेमाल

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

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

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

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

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

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

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

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

  • अनुमति देना
  • कैश-कंट्रोल
  • कनेक्शन
  • कॉन्टेंट की अवधि
  • होस्ट
  • अगर-बदलाव की तारीख से
  • अगर-कोई मेल नहीं खाता
  • इफ़-रेंज
  • कुछ हिस्सा
  • प्राग्मा
  • प्रॉक्सी-अनुमति
  • प्रॉक्सी-कनेक्शन
  • Transfer-Encoding

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

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

Chrome 79 से, नीचे दिया गया अनुरोध हेडर नहीं दिया गया है और इसे बदला नहीं जा सकता या opt_extraInfoSpec में 'extraHeaders' तय किए बिना हटाया गया:

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

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

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

  • स्वीकार की जाने वाली भाषा
  • 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 भी डेडलॉक रोकने के लिए इवेंट हैंडलर को ब्लॉक करने से छिपाया गया है. ध्यान दें कि कुछ इस्तेमाल की जा सकने वाली स्कीम, उपलब्ध इवेंट का सेट सीमित हो सकती हैं. इसकी वजह यह है कि संबंधित प्रोटोकॉल का. उदाहरण के लिए, फ़ाइल के लिए: स्कीम, सिर्फ़ onBeforeRequest, onResponseStarted, onCompleted, और onErrorOccurred भेजे जा सकते हैं.

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

  • पहले से मौजूद WebSocket कनेक्शन पर भेजे गए अलग-अलग मैसेज.
  • WebSocket कनेक्शन बंद कर रहा है.

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

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

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

  • सेशन शुरू होने के बाद, एक्सटेंशन webRequest एपीआई.
  • 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 (a एक दस्तावेज़ होता है, जिसे एम्बेड किए गए फ़्रेम के लिए लोड किया जाता है) और image (किसी वेबसाइट पर मौजूद इमेज). यहां जाएं: webRequest.RequestFilter.
टैब आईडी
एक टैब के लिए आइडेंटिफ़ायर.
विंडो आईडी
विंडो के लिए आइडेंटिफ़ायर.

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

पुष्टि करने की प्रक्रिया को मैनेज करना

एचटीटीपी की पुष्टि करने के अनुरोधों को मैनेज करने के लिए, "webRequestAuthProvider" जोड़ें की अनुमति दें:

{
  "permissions": [
    "webRequest",
    "webRequestAuthProvider"
  ]
}

ध्यान दें कि नीति के साथ इंस्टॉल किए गए एक्सटेंशन के लिए इस अनुमति की ज़रूरत नहीं है "webRequestBlocking" की अनुमति.

साथ में क्रेडेंशियल देने के लिए:

chrome.webRequest.onAuthRequired.addListener((details) => {
    return {
      authCredentials: {
        username: 'guest',
        password: 'guest'
      }
    };
  },
  { urls: ['https://httpbin.org/basic-auth/guest/guest'] },
  ['blocking']
);

एसिंक्रोनस तरीके से क्रेडेंशियल देने के लिए:

chrome.webRequest.onAuthRequired.addListener((details, callback) => {
    callback({
      authCredentials: {
        username: 'guest',
        password: 'guest'
      }
    });
  },
  { urls: ['https://httpbin.org/basic-auth/guest/guest'] },
  ['asyncBlocking']
);

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

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

web_accessible_resources

जब कोई एक्सटेंशन, सार्वजनिक संसाधन के अनुरोध को किसी ऐसे संसाधन पर रीडायरेक्ट करने के लिए webRequest एपीआई का इस्तेमाल करता है जो वेब पर ऐक्सेस नहीं किया जा सकता, तो उसे ब्लॉक कर दिया जाता है. इसकी वजह से गड़बड़ी हो सकती है. ऊपर दिए गए नियम तब भी लागू होते हैं, जब किसी ऐसे संसाधन का मालिकाना हक रीडायरेक्ट करने वाले एक्सटेंशन के पास हो जिसे वेब से ऐक्सेस नहीं किया जा सकता. declarativeWebRequest API के साथ इस्तेमाल करने के संसाधनों का एलान करने के लिए, "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 API को आज़माने के लिए, chrome-extension-samples से webRequest सैंपल इंस्टॉल करें डेटा स्टोर करने की जगह.

टाइप

BlockingResponse

यह फ़ंक्शन ऐसे इवेंट हैंडलर के लिए वैल्यू दिखाता है जिनमें 'ब्लॉक करने की सुविधा' है ExtraInfospec लागू किया गया. इवेंट हैंडलर को नेटवर्क अनुरोधों में बदलाव करने की अनुमति देता है.

प्रॉपर्टी

  • authCredentials

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

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

    • पासवर्ड

      स्ट्रिंग

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

      स्ट्रिंग

  • अभी नहीं

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

    सही होने पर, अनुरोध रद्द कर दिया जाता है. इस वजह से, अनुरोध नहीं भेजा जा सकता. इसका इस्तेमाल onbeforeRequest, onbeforeSendHeaders, onHeadersReceived और onAuthError इवेंट के रिस्पॉन्स के तौर पर किया जा सकता है.

  • redirectUrl

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

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

  • requestHeaders

    HttpHeaders वैकल्पिक

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

  • responseHeaders

    HttpHeaders वैकल्पिक

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

FormDataItem

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

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

Enum

अरेबफ़र

स्ट्रिंग

HttpHeaders

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

टाइप

object[]

प्रॉपर्टी

  • binaryValue

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

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

  • नाम

    स्ट्रिंग

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

  • value

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

    एचटीटीपी हेडर का मान, अगर उसे UTF-8 से दिखाया जा सकता है.

IgnoredActionType

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

Enum

"रीडायरेक्ट"

"request_headers"

&quot;response_headers&quot;

&quot;auth_credentials&quot;

OnAuthRequiredOptions

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

Enum

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

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

&quot;asyncBlocking&quot;
बताता है कि कॉलबैक फ़ंक्शन को एसिंक्रोनस तरीके से हैंडल किया जाता है.

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

OnBeforeRedirectOptions

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

Enum

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

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

OnBeforeRequestOptions

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

Enum

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

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

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

OnBeforeSendHeadersOptions

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

Enum

&quot;requestHeaders&quot;
यह बताता है कि अनुरोध के हेडर को इवेंट में शामिल किया जाना चाहिए.

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

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

OnCompletedOptions

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

Enum

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

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

OnErrorOccurredOptions

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

मान

"extraHeaders"

OnHeadersReceivedOptions

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

Enum

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

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

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

OnResponseStartedOptions

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

Enum

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

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

OnSendHeadersOptions

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

Enum

&quot;requestHeaders&quot;
यह बताता है कि अनुरोध के हेडर को इवेंट में शामिल किया जाना चाहिए.

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

RequestFilter

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

प्रॉपर्टी

  • tabId

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

  • प्रकार

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

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

  • यूआरएल

    स्ट्रिंग[]

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

  • windowId

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

ResourceType

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

Enum

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

"sub_frame"
संसाधन को सब फ़्रेम के तौर पर बताता है.

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

&quot;script&quot;
संसाधन को स्क्रिप्ट के तौर पर बताता है.

"image"
संसाधन को इमेज के तौर पर बताता है.

"font"
संसाधन को फ़ॉन्ट के तौर पर बताता है.

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

&quot;xmlhttprequest&quot;
संसाधन को XMLHttpRequest के तौर पर बताता है.

"ping"
संसाधन को पिंग के तौर पर बताता है.

&quot;csp_report&quot;
संसाधन को कॉन्टेंट की सुरक्षा नीति (सीएसपी) की रिपोर्ट के तौर पर बताता है.

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

"websocket"
संसाधन को WebSocket के तौर पर बताता है.

"webbundle"
संसाधन को WebBundle के तौर पर बताता है.

"other"
संसाधन को एक ऐसे टाइप के तौर पर बताता है जो सूची में दिए गए टाइप में शामिल नहीं है.

UploadData

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

प्रॉपर्टी

  • बाइट

    कोई भी वैकल्पिक

    डेटा की कॉपी के साथ एक ArrayBuffer.

  • फ़ाइल

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

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

प्रॉपर्टी

MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES

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

मान

20

तरीके

handlerBehaviorChanged()

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

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

पैरामीटर

  • कॉलबैक

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

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

    () => void

रिटर्न

  • प्रॉमिस<void>

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

    मेनिफ़ेस्ट 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

        स्ट्रिंग

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

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

      • Chrome 106 और उसके बाद वाले वर्शन

        वह लाइफ़साइकल जिसमें दस्तावेज़ मौजूद है.

      • frameId

        संख्या

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

      • Chrome 106 और उसके बाद वाले वर्शन

        उस फ़्रेम का टाइप जिसमें अनुरोध किया गया है.

      • शुरुआत करने वाला

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

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

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

      • isProxy

        बूलियन

        प्रॉक्सी-पुष्टि के लिए सही, WWW-पुष्टि करने के लिए गलत.

      • तरीका

        स्ट्रिंग

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

      • parentDocumentId

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

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

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

      • parentFrameId

        संख्या

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

      • रेल्म

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

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

      • requestId

        स्ट्रिंग

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

      • responseHeaders

        HttpHeaders वैकल्पिक

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

      • स्कीम

        स्ट्रिंग

        पुष्टि करने की स्कीम, उदाहरण के लिए, बुनियादी या डाइजेस्ट.

      • statusCode

        संख्या

        Chrome 43+

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

      • statusLine

        स्ट्रिंग

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

      • tabId

        संख्या

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

      • timeStamp

        संख्या

        Epoch के बाद से, मिलीसेकंड में वह समय जब यह सिग्नल ट्रिगर होता है.

      • टाइप

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

      • url

        स्ट्रिंग

    • asyncCallback

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

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

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

      (response: BlockingResponse) => void

    • returns

      BlockingResponse | तय नहीं है

      अगर "ब्लॉक किया जा रहा है" "extraInfoSpecification" में मौजूद है पैरामीटर के लिए, इवेंट लिसनर को इस टाइप का एक ऑब्जेक्ट लौटाना चाहिए.

  • फ़िल्टर करें
  • extraInfoSpec

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

onBeforeRedirect

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

सर्वर से शुरू किए गए रीडायरेक्ट के होने पर सक्रिय होता है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (details: object) => void

    • विवरण

      ऑब्जेक्ट

      • documentId

        स्ट्रिंग

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

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

      • Chrome 106 और उसके बाद वाले वर्शन

        वह लाइफ़साइकल जिसमें दस्तावेज़ मौजूद है.

      • frameId

        संख्या

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

      • Chrome 106 और उसके बाद वाले वर्शन

        उस फ़्रेम का टाइप जिसमें अनुरोध किया गया है.

      • fromCache

        बूलियन

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

      • शुरुआत करने वाला

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

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

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

      • ip

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

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

      • तरीका

        स्ट्रिंग

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

      • parentDocumentId

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

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

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

      • parentFrameId

        संख्या

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

      • redirectUrl

        स्ट्रिंग

        नया यूआरएल.

      • requestId

        स्ट्रिंग

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

      • responseHeaders

        HttpHeaders वैकल्पिक

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

      • statusCode

        संख्या

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

      • statusLine

        स्ट्रिंग

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

      • tabId

        संख्या

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

      • timeStamp

        संख्या

        Epoch के बाद से, मिलीसेकंड में वह समय जब यह सिग्नल ट्रिगर होता है.

      • टाइप

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

      • url

        स्ट्रिंग

  • फ़िल्टर करें
  • extraInfoSpec

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

onBeforeRequest

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

अनुरोध होने पर सक्रिय होता है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (details: object) => BlockingResponse | undefined

    • विवरण

      ऑब्जेक्ट

      • documentId

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

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

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

      • documentLifecycle
        Chrome 106 और उसके बाद वाले वर्शन

        वह लाइफ़साइकल जिसमें दस्तावेज़ मौजूद है.

      • frameId

        संख्या

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

      • frameType
        Chrome 106 और उसके बाद वाले वर्शन

        उस फ़्रेम का टाइप जिसमें अनुरोध किया गया है.

      • शुरुआत करने वाला

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

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

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

      • तरीका

        स्ट्रिंग

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

      • parentDocumentId

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

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

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

      • parentFrameId

        संख्या

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

      • requestBody

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

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

        • गड़बड़ी

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

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

        • formData

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

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

        • रॉ

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

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

      • requestId

        स्ट्रिंग

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

      • tabId

        संख्या

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

      • timeStamp

        संख्या

        Epoch के बाद से, मिलीसेकंड में वह समय जब यह सिग्नल ट्रिगर होता है.

      • टाइप

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

      • url

        स्ट्रिंग

    • returns

      BlockingResponse | तय नहीं है

      अगर "ब्लॉक किया जा रहा है" "extraInfoSpecification" में मौजूद है पैरामीटर के लिए, इवेंट लिसनर को इस टाइप का एक ऑब्जेक्ट लौटाना चाहिए.

  • फ़िल्टर करें
  • extraInfoSpec

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

onBeforeSendHeaders

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (details: object) => BlockingResponse | undefined

    • विवरण

      ऑब्जेक्ट

      • documentId

        स्ट्रिंग

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

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

      • Chrome 106 और उसके बाद वाले वर्शन

        वह लाइफ़साइकल जिसमें दस्तावेज़ मौजूद है.

      • frameId

        संख्या

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

      • Chrome 106 और उसके बाद वाले वर्शन

        उस फ़्रेम का टाइप जिसमें अनुरोध किया गया है.

      • शुरुआत करने वाला

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

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

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

      • तरीका

        स्ट्रिंग

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

      • parentDocumentId

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

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

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

      • parentFrameId

        संख्या

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

      • requestHeaders

        HttpHeaders वैकल्पिक

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

      • requestId

        स्ट्रिंग

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

      • tabId

        संख्या

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

      • timeStamp

        संख्या

        Epoch के बाद से, मिलीसेकंड में वह समय जब यह सिग्नल ट्रिगर होता है.

      • टाइप

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

      • url

        स्ट्रिंग

    • returns

      BlockingResponse | तय नहीं है

      अगर "ब्लॉक किया जा रहा है" "extraInfoSpecification" में मौजूद है पैरामीटर के लिए, इवेंट लिसनर को इस टाइप का एक ऑब्जेक्ट लौटाना चाहिए.

  • फ़िल्टर करें
  • extraInfoSpec

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

onCompleted

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (details: object) => void

    • विवरण

      ऑब्जेक्ट

      • documentId

        स्ट्रिंग

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

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

      • Chrome 106 और उसके बाद वाले वर्शन

        वह लाइफ़साइकल जिसमें दस्तावेज़ मौजूद है.

      • frameId

        संख्या

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

      • Chrome 106 और उसके बाद वाले वर्शन

        उस फ़्रेम का टाइप जिसमें अनुरोध किया गया है.

      • fromCache

        बूलियन

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

      • शुरुआत करने वाला

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

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

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

      • ip

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

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

      • तरीका

        स्ट्रिंग

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

      • parentDocumentId

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

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

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

      • parentFrameId

        संख्या

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

      • requestId

        स्ट्रिंग

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

      • responseHeaders

        HttpHeaders वैकल्पिक

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

      • statusCode

        संख्या

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

      • statusLine

        स्ट्रिंग

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

      • tabId

        संख्या

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

      • timeStamp

        संख्या

        Epoch के बाद से, मिलीसेकंड में वह समय जब यह सिग्नल ट्रिगर होता है.

      • टाइप

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

      • url

        स्ट्रिंग

  • फ़िल्टर करें
  • extraInfoSpec

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

onErrorOccurred

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (details: object) => void

    • विवरण

      ऑब्जेक्ट

      • documentId

        स्ट्रिंग

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

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

      • Chrome 106 और उसके बाद वाले वर्शन

        वह लाइफ़साइकल जिसमें दस्तावेज़ मौजूद है.

      • गड़बड़ी

        स्ट्रिंग

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

      • frameId

        संख्या

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

      • Chrome 106 और उसके बाद वाले वर्शन

        उस फ़्रेम का टाइप जिसमें अनुरोध किया गया है.

      • fromCache

        बूलियन

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

      • शुरुआत करने वाला

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

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

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

      • ip

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

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

      • तरीका

        स्ट्रिंग

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

      • parentDocumentId

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

        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

        स्ट्रिंग

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

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

      • Chrome 106 और उसके बाद वाले वर्शन

        वह लाइफ़साइकल जिसमें दस्तावेज़ मौजूद है.

      • frameId

        संख्या

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

      • Chrome 106 और उसके बाद वाले वर्शन

        उस फ़्रेम का टाइप जिसमें अनुरोध किया गया है.

      • शुरुआत करने वाला

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

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

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

      • तरीका

        स्ट्रिंग

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

      • parentDocumentId

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

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

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

      • parentFrameId

        संख्या

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

      • requestId

        स्ट्रिंग

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

      • responseHeaders

        HttpHeaders वैकल्पिक

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

      • statusCode

        संख्या

        Chrome 43+

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

      • statusLine

        स्ट्रिंग

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

      • tabId

        संख्या

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

      • timeStamp

        संख्या

        Epoch के बाद से, मिलीसेकंड में वह समय जब यह सिग्नल ट्रिगर होता है.

      • टाइप

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

      • url

        स्ट्रिंग

    • returns

      BlockingResponse | तय नहीं है

      अगर "ब्लॉक किया जा रहा है" "extraInfoSpecification" में मौजूद है पैरामीटर के लिए, इवेंट लिसनर को इस टाइप का एक ऑब्जेक्ट लौटाना चाहिए.

  • फ़िल्टर करें
  • extraInfoSpec

    OnHeadersReceivedOptions[] वैकल्पिक

onResponseStarted

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (details: object) => void

    • विवरण

      ऑब्जेक्ट

      • documentId

        स्ट्रिंग

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

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

      • Chrome 106 और उसके बाद वाले वर्शन

        वह लाइफ़साइकल जिसमें दस्तावेज़ मौजूद है.

      • frameId

        संख्या

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

      • Chrome 106 और उसके बाद वाले वर्शन

        उस फ़्रेम का टाइप जिसमें अनुरोध किया गया है.

      • fromCache

        बूलियन

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

      • शुरुआत करने वाला

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

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

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

      • ip

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

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

      • तरीका

        स्ट्रिंग

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

      • parentDocumentId

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

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

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

      • parentFrameId

        संख्या

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

      • requestId

        स्ट्रिंग

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

      • responseHeaders

        HttpHeaders वैकल्पिक

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

      • statusCode

        संख्या

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

      • statusLine

        स्ट्रिंग

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

      • tabId

        संख्या

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

      • timeStamp

        संख्या

        Epoch के बाद से, मिलीसेकंड में वह समय जब यह सिग्नल ट्रिगर होता है.

      • टाइप

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

      • url

        स्ट्रिंग

  • फ़िल्टर करें
  • extraInfoSpec

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

onSendHeaders

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (details: object) => void

    • विवरण

      ऑब्जेक्ट

      • documentId

        स्ट्रिंग

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

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

      • Chrome 106 और उसके बाद वाले वर्शन

        वह लाइफ़साइकल जिसमें दस्तावेज़ मौजूद है.

      • frameId

        संख्या

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

      • Chrome 106 और उसके बाद वाले वर्शन

        उस फ़्रेम का टाइप जिसमें अनुरोध किया गया है.

      • शुरुआत करने वाला

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

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

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

      • तरीका

        स्ट्रिंग

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

      • parentDocumentId

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

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

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

      • parentFrameId

        संख्या

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

      • requestHeaders

        HttpHeaders वैकल्पिक

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

      • requestId

        स्ट्रिंग

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

      • tabId

        संख्या

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

      • timeStamp

        संख्या

        Epoch के बाद से, मिलीसेकंड में वह समय जब यह सिग्नल ट्रिगर होता है.

      • टाइप

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

      • url

        स्ट्रिंग

  • फ़िल्टर करें
  • extraInfoSpec

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