ब्यौरा
ट्रैफ़िक को मॉनिटर और उसका विश्लेषण करने के लिए, chrome.webRequest एपीआई का इस्तेमाल करें. साथ ही, अनुरोधों को बीच में ही रोकना, ब्लॉक करना या उनमें बदलाव करना.
अनुमतियां
webRequestवेब अनुरोध एपीआई का इस्तेमाल करने के लिए, आपको एक्सटेंशन मेनिफ़ेस्ट में "webRequest" अनुमति का एलान करना होगा. साथ ही, ज़रूरी होस्ट करने की अनुमतियां भी देनी होंगी. किसी सब-रिसोर्स के अनुरोध को इंटरसेप्ट करने के लिए, एक्सटेंशन के पास अनुरोध किए गए यूआरएल और उसे शुरू करने वाले व्यक्ति, दोनों का ऐक्सेस होना चाहिए. उदाहरण के लिए:
{
"name": "My extension",
...
"permissions": [
"webRequest"
],
"host_permissions": [
"*://*.google.com/*"
],
...
}
webRequestBlocking
ब्लॉक करने वाले इवेंट हैंडलर रजिस्टर करने के लिए ज़रूरी है. मेनिफ़ेस्ट V3 के मुताबिक, यह सुविधा सिर्फ़ नीति के तहत इंस्टॉल किए गए एक्सटेंशन के लिए उपलब्ध है.
webRequestAuthProvider
onAuthRequired तरीके का इस्तेमाल करने के लिए ज़रूरी है. प्रमाणीकरण को मैनेज करना लेख पढ़ें.
कॉन्सेप्ट और इस्तेमाल
अनुरोधों का लाइफ़ साइकल
वेब अनुरोध एपीआई, इवेंट का एक ऐसा सेट तय करता है जो वेब अनुरोध के लाइफ़साइकल को फ़ॉलो करता है. इन इवेंट का इस्तेमाल करके, ट्रैफ़िक को देखा और उसका विश्लेषण किया जा सकता है. कुछ सिंक्रोनस इवेंट की मदद से, अनुरोध को रोका जा सकता है, ब्लॉक किया जा सकता है या उसमें बदलाव किया जा सकता है.
यहां इवेंट के लाइफ़ साइकल के बारे में बताया गया है. इसके बाद, इवेंट की परिभाषाएं दी गई हैं:

onBeforeRequest(ज़रूरत पड़ने पर सिंक्रोनस)- यह इवेंट, अनुरोध किए जाने से ठीक पहले ट्रिगर होता है. यह इवेंट, टीसीपी कनेक्शन बनने से पहले भेजा जाता है. इसका इस्तेमाल अनुरोधों को रद्द करने या रीडायरेक्ट करने के लिए किया जा सकता है.
onBeforeSendHeaders(ज़रूरत पड़ने पर सिंक्रोनस)- यह इवेंट तब ट्रिगर होता है, जब अनुरोध होने वाला हो और शुरुआती हेडर तैयार हो गए हों. इस इवेंट का मकसद, एक्सटेंशन को अनुरोध के हेडर (*) जोड़ने, उनमें बदलाव करने, और उन्हें मिटाने की अनुमति देना है.
onBeforeSendHeadersइवेंट को सभी सदस्यों को भेजा जाता है, इसलिए अलग-अलग सदस्य अनुरोध में बदलाव करने की कोशिश कर सकते हैं. इसे कैसे हैंडल किया जाता है, इसके लिए लागू करने से जुड़ी जानकारी सेक्शन देखें. इस इवेंट का इस्तेमाल, अनुरोध को रद्द करने के लिए किया जा सकता है. onSendHeaders- यह इवेंट तब ट्रिगर होता है, जब सभी एक्सटेंशन को अनुरोध हेडर में बदलाव करने का मौका मिल जाता है. साथ ही, यह फ़ाइनल (*) वर्शन दिखाता है. यह इवेंट, हेडर को नेटवर्क पर भेजने से पहले ट्रिगर होता है. यह इवेंट सूचना देने वाला है और इसे एसिंक्रोनस तरीके से हैंडल किया जाता है. इससे अनुरोध में बदलाव या उसे रद्द नहीं किया जा सकता.
onHeadersReceived(ज़रूरत पड़ने पर सिंक्रोनस)- यह टैग, हर बार एचटीटीपी(एस) रिस्पॉन्स हेडर मिलने पर ट्रिगर होता है. रीडाइरेक्ट और पुष्टि करने के अनुरोधों की वजह से, ऐसा हर अनुरोध के लिए कई बार हो सकता है. इस इवेंट का मकसद, एक्सटेंशन को रिस्पॉन्स हेडर जोड़ने, उनमें बदलाव करने, और उन्हें मिटाने की अनुमति देना है. जैसे, आने वाले कॉन्टेंट-टाइप हेडर. इस इवेंट के ट्रिगर होने से पहले, कैश मेमोरी में सेव करने के निर्देशों को प्रोसेस किया जाता है. इसलिए, Cache-Control जैसे हेडर में बदलाव करने से ब्राउज़र की कैश मेमोरी पर कोई असर नहीं पड़ता. इससे अनुरोध को रद्द या रीडायरेक्ट भी किया जा सकता है.
onAuthRequired(ज़रूरत पड़ने पर सिंक्रोनस)- यह तब ट्रिगर होता है, जब किसी अनुरोध के लिए उपयोगकर्ता की पुष्टि करना ज़रूरी होता है. इस इवेंट को सिंक्रोनस तरीके से हैंडल किया जा सकता है, ताकि पुष्टि करने के क्रेडेंशियल दिए जा सकें. ध्यान दें कि एक्सटेंशन से अमान्य क्रेडेंशियल मिल सकते हैं. बार-बार अमान्य क्रेडेंशियल देने से, इनफ़िनिट लूप में न फंसें. इसका इस्तेमाल अनुरोध रद्द करने के लिए भी किया जा सकता है.
onBeforeRedirect- यह इवेंट तब ट्रिगर होता है, जब रीडायरेक्ट होने वाला हो. रीडायरेक्ट करने की प्रोसेस, एचटीटीपी रिस्पॉन्स कोड या एक्सटेंशन की वजह से ट्रिगर हो सकती है. यह इवेंट सूचना देने वाला इवेंट है और इसे एसिंक्रोनस तरीके से हैंडल किया जाता है. इससे आपको अनुरोध में बदलाव करने या उसे रद्द करने की अनुमति नहीं मिलती.
onResponseStarted- यह इवेंट तब ट्रिगर होता है, जब रिस्पॉन्स बॉडी का पहला बाइट मिलता है. एचटीटीपी अनुरोधों के लिए, इसका मतलब है कि स्टेटस लाइन और रिस्पॉन्स हेडर उपलब्ध हैं. यह इवेंट सूचना देने वाला इवेंट है और इसे एसिंक्रोनस तरीके से हैंडल किया जाता है. इससे अनुरोध में बदलाव या उसे रद्द नहीं किया जा सकता.
onCompleted- यह इवेंट तब ट्रिगर होता है, जब अनुरोध को प्रोसेस कर लिया जाता है.
onErrorOccurred- यह इवेंट तब ट्रिगर होता है, जब अनुरोध को प्रोसेस नहीं किया जा सकता.
वेब अनुरोध एपीआई यह पक्का करता है कि हर अनुरोध के लिए, onCompleted या onErrorOccurred को आखिरी इवेंट के तौर पर ट्रिगर किया जाए. हालांकि, इसका एक अपवाद है: अगर किसी अनुरोध को data:// यूआरएल पर रीडायरेक्ट किया जाता है, तो onBeforeRedirect को आखिरी इवेंट के तौर पर रिपोर्ट किया जाता है.
* ध्यान दें कि वेब अनुरोध एपीआई, एक्सटेंशन को नेटवर्क स्टैक का ऐब्स्ट्रैक्शन दिखाता है. आंतरिक तौर पर, एक यूआरएल अनुरोध को कई एचटीटीपी अनुरोधों में बांटा जा सकता है. उदाहरण के लिए, किसी बड़ी फ़ाइल से अलग-अलग बाइट रेंज फ़ेच करने के लिए. इसके अलावा, नेटवर्क से कम्यूनिकेट किए बिना नेटवर्क स्टैक से भी इसे हैंडल किया जा सकता है. इस वजह से, एपीआई ऐसे फ़ाइनल एचटीटीपी हेडर नहीं देता जिन्हें नेटवर्क पर भेजा जाता है. उदाहरण के लिए, कैश मेमोरी से जुड़े सभी हेडर, एक्सटेंशन को नहीं दिखते.
फ़िलहाल, onBeforeSendHeaders इवेंट के लिए ये हेडर नहीं दिए गए हैं. इस सूची के पूरी होने या स्थिर होने की गारंटी नहीं है.
- अनुमति देना
- Cache-Control
- कनेक्शन
- Content-Length
- होस्ट
- If-Modified-Since
- If-None-Match
- If-Range
- Partial-Data
- Pragma
- Proxy-Authorization
- Proxy-Connection
- Transfer-Encoding
Chrome 79 से, अनुरोध हेडर में किए गए बदलावों का असर क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) की जांचों पर पड़ता है. अगर क्रॉस-ऑरिजिन अनुरोधों के लिए बदले गए हेडर, शर्तों को पूरा नहीं करते हैं, तो इससे सीओआरएस प्रीफ़्लाइट भेजा जाएगा. इससे सर्वर से पूछा जाएगा कि क्या ऐसे हेडर स्वीकार किए जा सकते हैं. अगर आपको सीओआरएस प्रोटोकॉल का उल्लंघन करके हेडर में बदलाव करना है, तो आपको 'extraHeaders' में '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-Language
- Accept-Encoding
- रेफ़रर
- कुकी
Chrome 72 से, Set-Cookie रिस्पॉन्स हेडर नहीं दिया जाता. साथ ही, opt_extraInfoSpec में 'extraHeaders' की जानकारी दिए बिना, इसमें बदलाव नहीं किया जा सकता या इसे हटाया नहीं जा सकता.
Chrome 89 से, opt_extraInfoSpec में 'extraHeaders' तय किए बिना, X-Frame-Options रिस्पॉन्स हेडर को असरदार तरीके से बदला नहीं जा सकता
या हटाया नहीं जा सकता.
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 को इवेंट हैंडलर को ब्लॉक करने से छिपाया जाता है, ताकि डेडलॉक को रोका जा सके. ध्यान दें कि कुछ
सहायता वाली स्कीम के लिए, उपलब्ध इवेंट का सेट सीमित हो सकता है. ऐसा संबंधित प्रोटोकॉल के नेचर की वजह से होता है. उदाहरण के लिए, scheme फ़ाइल के लिए सिर्फ़ onBeforeRequest, onResponseStarted, onCompleted, और onErrorOccurred को भेजा जा सकता है.
Chrome 58 से, webRequest API, WebSocket हैंडशेक अनुरोध को इंटरसेप्ट करने की सुविधा देता है. हैंडशेक, एचटीटीपी अपग्रेड के अनुरोध के ज़रिए किया जाता है. इसलिए, इसका फ़्लो एचटीटीपी पर आधारित webRequest मॉडल के मुताबिक होता है. ध्यान दें कि एपीआई, इन मामलों में इंटरसेप्ट नहीं करता:
- सेट किए गए WebSocket कनेक्शन पर भेजे गए अलग-अलग मैसेज.
- WebSocket कनेक्शन बंद किया जा रहा है.
WebSocket अनुरोधों के लिए, रीडायरेक्ट काम नहीं करते.
Chrome 72 से, कोई एक्सटेंशन किसी अनुरोध को सिर्फ़ तब इंटरसेप्ट कर पाएगा, जब उसके पास अनुरोध किए गए यूआरएल और अनुरोध शुरू करने वाले, दोनों के लिए होस्ट करने की अनुमतियां हों.
Chrome 96 से, webRequest API, HTTP/3 पर WebTransport के हैंडशेक अनुरोध को इंटरसेप्ट करने की सुविधा देता है. हैंडशेक, एचटीटीपी कनेक्ट अनुरोध के ज़रिए किया जाता है. इसलिए, इसका फ़्लो एचटीटीपी पर आधारित 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 में स्ट्रिंग तय की जा सकती हैं. इस कुकी का इस्तेमाल, अनुरोध किए गए डेटा के बारे में ज़्यादा जानकारी देने के लिए किया जाता है. हालांकि, ऐसा सिर्फ़ तब किया जाता है, जब साफ़ तौर पर अनुरोध किया गया हो.
पुष्टि की प्रोसेस को मैनेज करना
एचटीटीपी पुष्टि के अनुरोधों को मैनेज करने के लिए, अपनी मेनिफ़ेस्ट फ़ाइल में "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']
);
क्रियान्वयन विवरण
वेब अनुरोध एपीआई का इस्तेमाल करने वाले एक्सटेंशन को डेवलप करते समय, लागू करने से जुड़ी कई बातों को समझना ज़रूरी हो सकता है:
web_accessible_resources
जब कोई एक्सटेंशन, webRequest API का इस्तेमाल करके किसी सार्वजनिक संसाधन के अनुरोध को ऐसे संसाधन पर रीडायरेक्ट करता है जिसे वेब पर ऐक्सेस नहीं किया जा सकता, तो उसे ब्लॉक कर दिया जाता है. इससे गड़बड़ी होती है. ऊपर दी गई जानकारी तब भी लागू होती है, जब वेब पर ऐक्सेस नहीं की जा सकने वाली संसाधन फ़ाइल का मालिकाना हक, रीडायरेक्ट करने वाले एक्सटेंशन के पास हो. 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"]
);
यहां दिए गए उदाहरण में, सभी अनुरोधों से User-Agent हेडर को मिटाने का तरीका बताया गया है:
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
यह उन इवेंट हैंडलर के लिए वैल्यू दिखाता है जिन पर '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
इसमें फ़ॉर्म डेटा में पास किया गया डेटा होता है. urlencoded फ़ॉर्म के लिए, इसे स्ट्रिंग के तौर पर सेव किया जाता है. ऐसा तब होता है, जब डेटा utf-8 स्ट्रिंग हो. इसके अलावा, इसे ArrayBuffer के तौर पर सेव किया जाता है. फ़ॉर्म-डेटा के लिए, यह ArrayBuffer होता है. अगर फ़ॉर्म-डेटा, फ़ाइल अपलोड करने के बारे में बताता है, तो यह फ़ाइल के नाम वाली स्ट्रिंग होती है. हालांकि, ऐसा तब होता है, जब फ़ाइल का नाम दिया गया हो.
Enum
ArrayBuffer
स्ट्रिंग
HttpHeaders
एचटीटीपी हेडर का कलेक्शन. हर हेडर को एक डिक्शनरी के तौर पर दिखाया जाता है. इसमें name और value या binaryValue कुंजियां होती हैं.
टाइप
object[]
प्रॉपर्टी
-
binaryValue
number[] ज़रूरी नहीं
अगर HTTP हेडर की वैल्यू को UTF-8 फ़ॉर्मैट में नहीं दिखाया जा सकता, तो उसे अलग-अलग बाइट वैल्यू (0..255) के तौर पर सेव किया जाता है.
-
नाम
स्ट्रिंग
एचटीटीपी हेडर का नाम.
-
मान
string ज़रूरी नहीं है
अगर एचटीटीपी हेडर की वैल्यू को UTF-8 फ़ॉर्मैट में दिखाया जा सकता है, तो उसकी वैल्यू.
IgnoredActionType
Enum
"redirect"
"request_headers"
"response_headers"
"auth_credentials"
OnAuthRequiredOptions
Enum
"responseHeaders"
इससे पता चलता है कि इवेंट में रिस्पॉन्स हेडर शामिल किए जाने चाहिए.
"blocking"
इससे पता चलता है कि जब तक कॉलबैक फ़ंक्शन वापस नहीं आ जाता, तब तक अनुरोध को ब्लॉक कर दिया जाता है.
"asyncBlocking"
इससे पता चलता है कि कॉलबैक फ़ंक्शन को एसिंक्रोनस तरीके से हैंडल किया जाता है.
"extraHeaders"
इससे पता चलता है कि हेडर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का उल्लंघन कर सकते हैं.
OnBeforeRedirectOptions
Enum
"responseHeaders"
इससे पता चलता है कि इवेंट में रिस्पॉन्स हेडर शामिल किए जाने चाहिए.
"extraHeaders"
इससे पता चलता है कि हेडर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का उल्लंघन कर सकते हैं.
OnBeforeRequestOptions
Enum
"blocking"
इससे पता चलता है कि जब तक कॉलबैक फ़ंक्शन वापस नहीं आ जाता, तब तक अनुरोध को ब्लॉक कर दिया जाता है.
"requestBody"
इससे पता चलता है कि अनुरोध के मुख्य हिस्से को इवेंट में शामिल किया जाना चाहिए.
"extraHeaders"
इससे पता चलता है कि हेडर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का उल्लंघन कर सकते हैं.
OnBeforeSendHeadersOptions
Enum
"requestHeaders"
इससे पता चलता है कि अनुरोध हेडर को इवेंट में शामिल किया जाना चाहिए.
"blocking"
इससे पता चलता है कि जब तक कॉलबैक फ़ंक्शन वापस नहीं आ जाता, तब तक अनुरोध को ब्लॉक कर दिया जाता है.
"extraHeaders"
इससे पता चलता है कि हेडर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का उल्लंघन कर सकते हैं.
OnCompletedOptions
Enum
"responseHeaders"
इससे पता चलता है कि इवेंट में रिस्पॉन्स हेडर शामिल किए जाने चाहिए.
"extraHeaders"
इससे पता चलता है कि हेडर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का उल्लंघन कर सकते हैं.
OnErrorOccurredOptions
मान
"extraHeaders"
OnHeadersReceivedOptions
Enum
"blocking"
इससे पता चलता है कि जब तक कॉलबैक फ़ंक्शन वापस नहीं आ जाता, तब तक अनुरोध को ब्लॉक कर दिया जाता है.
"responseHeaders"
इससे पता चलता है कि इवेंट में रिस्पॉन्स हेडर शामिल किए जाने चाहिए.
"extraHeaders"
इससे पता चलता है कि हेडर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का उल्लंघन कर सकते हैं.
"securityInfo"
इससे पता चलता है कि SecurityInfo को इवेंट में शामिल किया जाना चाहिए.
"securityInfoRawDer"
इससे पता चलता है कि इवेंट में, सर्टिफ़िकेट के रॉ बाइट वाले SecurityInfo को शामिल किया जाना चाहिए.
OnResponseStartedOptions
Enum
"responseHeaders"
इससे पता चलता है कि इवेंट में रिस्पॉन्स हेडर शामिल किए जाने चाहिए.
"extraHeaders"
इससे पता चलता है कि हेडर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का उल्लंघन कर सकते हैं.
OnSendHeadersOptions
Enum
"requestHeaders"
इससे पता चलता है कि अनुरोध हेडर को इवेंट में शामिल किया जाना चाहिए.
"extraHeaders"
इससे पता चलता है कि हेडर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का उल्लंघन कर सकते हैं.
RequestFilter
यह एक ऑब्जेक्ट है. इसमें webRequest इवेंट पर लागू किए जाने वाले फ़िल्टर के बारे में जानकारी होती है.
प्रॉपर्टी
-
tabId
number ज़रूरी नहीं
-
प्रकार
ResourceType[] optional
अनुरोधों के टाइप की सूची. जिन अनुरोधों का टाइप किसी भी कैटगरी से मेल नहीं खाता उन्हें फ़िल्टर कर दिया जाएगा.
-
यूआरएल
string[]
यूआरएल या यूआरएल पैटर्न की सूची. ऐसे अनुरोधों को फ़िल्टर कर दिया जाएगा जो किसी भी यूआरएल से मैच नहीं करते.
-
windowId
number ज़रूरी नहीं
ResourceType
Enum
"main_frame"
इससे संसाधन को मुख्य फ़्रेम के तौर पर सेट किया जाता है.
"sub_frame"
इस विकल्प का इस्तेमाल करके, संसाधन को सब फ़्रेम के तौर पर तय किया जाता है.
"stylesheet"
इस वैल्यू से पता चलता है कि रिसॉर्स एक स्टाइलशीट है.
"script"
इस विकल्प का इस्तेमाल करके, रिसोर्स को स्क्रिप्ट के तौर पर तय किया जाता है.
"image"
इससे रिसोर्स को इमेज के तौर पर तय किया जाता है.
"font"
इससे संसाधन को फ़ॉन्ट के तौर पर तय किया जाता है.
"object"
संसाधन को ऑब्जेक्ट के तौर पर दिखाता है.
"xmlhttprequest"
इस संसाधन को XMLHttpRequest के तौर पर तय करता है.
"ping"
इस विकल्प का इस्तेमाल करके, संसाधन को पिंग के तौर पर तय किया जाता है.
"csp_report"
यह संसाधन को कॉन्टेंट की सुरक्षा के बारे में नीति (सीएसपी) की रिपोर्ट के तौर पर तय करता है.
"media"
इस विकल्प का इस्तेमाल करके, संसाधन को मीडिया ऑब्जेक्ट के तौर पर तय किया जाता है.
"websocket"
इस विकल्प से, संसाधन को WebSocket के तौर पर तय किया जाता है.
"webbundle"
इससे संसाधन को WebBundle के तौर पर तय किया जाता है.
"other"
इससे संसाधन को ऐसे टाइप के तौर पर सेट किया जाता है जो सूची में शामिल नहीं है.
SecurityInfo
प्रॉपर्टी
-
सर्टिफ़िकेट
object[]
सर्टिफ़िकेट की सूची
-
फ़िंगरप्रिंट
ऑब्जेक्ट
सर्टिफ़िकेट के फ़िंगरप्रिंट.
-
sha256
स्ट्रिंग
सर्टिफ़िकेट का SHA256 फ़िंगरप्रिंट.
-
-
rawDER
ArrayBuffer ज़रूरी नहीं है
DER एन्कोड किए गए सर्वर सर्टिफ़िकेट के रॉ बाइट
-
-
राज्य
स्ट्रिंग
कनेक्शन का स्टेटस. इनमें से कोई एक: सुरक्षित, असुरक्षित, गड़बड़ी है.
UploadData
इसमें यूआरएल के अनुरोध में अपलोड किया गया डेटा होता है.
प्रॉपर्टी
-
बाइट
कोई भी ज़रूरी नहीं है
डेटा की कॉपी वाला ArrayBuffer.
-
फ़ाइल
string ज़रूरी नहीं है
यह स्ट्रिंग, फ़ाइल के पाथ और नाम के साथ होती है.
प्रॉपर्टी
MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES
हर 10 मिनट के इंटरवल में, handlerBehaviorChanged को ज़्यादा से ज़्यादा कितनी बार कॉल किया जा सकता है. handlerBehaviorChanged एक महंगा फ़ंक्शन कॉल है. इसे बार-बार कॉल नहीं किया जाना चाहिए.
मान
20
तरीके
handlerBehaviorChanged()
chrome.webRequest.handlerBehaviorChanged(): Promise<void>
जब webRequest हैंडलर का व्यवहार बदल गया हो, तब इसे कॉल किया जाना चाहिए. इससे कैश मेमोरी की वजह से गलत हैंडलिंग को रोका जा सकता है. इस फ़ंक्शन कॉल का इस्तेमाल करने पर ज़्यादा खर्च आएगा. इसे बार-बार कॉल न करें.
रिटर्न
-
Promise<void>
Chrome 116 और इसके बाद के वर्शन
इवेंट
onActionIgnored
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 और इसके बाद के वर्शनअनुरोध करने वाले दस्तावेज़ का यूयूआईडी.
-
documentLifecycleChrome 106 और इसके बाद के वर्शन
दस्तावेज़ का लाइफ़साइकल.
-
frameId
संख्या
वैल्यू 0 से पता चलता है कि अनुरोध मुख्य फ़्रेम में किया गया है. पॉज़िटिव वैल्यू से पता चलता है कि अनुरोध किस सबफ़्रेम में किया गया है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड किया जाता है (
typeहैmain_frameयाsub_frame), तोframeIdइस फ़्रेम का आईडी दिखाता है, न कि आउटर फ़्रेम का आईडी. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं. -
frameTypeChrome 106 और इसके बाद के वर्शन
अनुरोध किस तरह के फ़्रेम में किया गया था.
-
शुरू करने वाला
string ज़रूरी नहीं है
Chrome 63 या इसके बाद के वर्शनवह ऑरिजिन जहां से अनुरोध शुरू किया गया था. रीडाइरेक्ट करने पर, इसमें कोई बदलाव नहीं होता. अगर यह ओपेक ऑरिजिन है, तो 'null' स्ट्रिंग का इस्तेमाल किया जाएगा.
-
isProxy
बूलियन
Proxy-Authenticate के लिए सही और WWW-Authenticate के लिए गलत.
-
तरीका
स्ट्रिंग
यह एक स्टैंडर्ड एचटीटीपी मेथड है.
-
parentDocumentId
string ज़रूरी नहीं है
Chrome 106 और इसके बाद के वर्शनइस फ़्रेम के मालिकाना हक वाले पैरंट दस्तावेज़ का यूयूआईडी. अगर कोई पैरंट नहीं है, तो इसे सेट नहीं किया जाता है.
-
parentFrameId
संख्या
उस फ़्रेम का आईडी जो अनुरोध भेजने वाले फ़्रेम को रैप करता है. अगर कोई पैरंट फ़्रेम मौजूद नहीं है, तो इसे -1 पर सेट किया जाता है.
-
रेल्म
string ज़रूरी नहीं है
अगर सर्वर ने पुष्टि करने का कोई दायरा तय किया है, तो यह कुकी उस दायरे की जानकारी देती है.
-
requestId
स्ट्रिंग
अनुरोध का आईडी. अनुरोध आईडी, ब्राउज़र के किसी सेशन में यूनीक होते हैं. इसलिए, इनका इस्तेमाल एक ही अनुरोध के अलग-अलग इवेंट को आपस में जोड़ने के लिए किया जा सकता है.
-
responseHeaders
HttpHeaders ज़रूरी नहीं है
इस रिस्पॉन्स के साथ मिले एचटीटीपी रिस्पॉन्स हेडर.
-
स्कीम
स्ट्रिंग
पुष्टि करने का तरीका, जैसे कि Basic या Digest.
-
statusCode
संख्या
Chrome 43 या इसके बाद के वर्शनसर्वर से मिला स्टैंडर्ड एचटीटीपी स्टेटस कोड.
-
statusLine
स्ट्रिंग
जवाब की एचटीटीपी स्टेटस लाइन या एचटीटीपी/0.9 जवाबों के लिए 'HTTP/0.9 200 OK' स्ट्रिंग (यानी, ऐसे जवाब जिनमें स्टेटस लाइन नहीं होती) या अगर कोई हेडर नहीं है, तो खाली स्ट्रिंग.
-
tabId
संख्या
उस टैब का आईडी जिसमें अनुरोध किया गया है. अगर अनुरोध किसी टैब से जुड़ा नहीं है, तो इसे -1 पर सेट करें.
-
timeStamp
संख्या
यह सिग्नल ट्रिगर होने का समय, Epoch के बाद के मिलीसेकंड में.
-
टाइप
अनुरोध किए गए संसाधन का इस्तेमाल कैसे किया जाएगा.
-
url
स्ट्रिंग
-
-
asyncCallback
फ़ंक्शन ज़रूरी नहीं
Chrome 58 या इसके बाद का वर्शनasyncCallbackपैरामीटर ऐसा दिखता है:(response: BlockingResponse) => void
-
जवाब
-
-
returns
BlockingResponse | undefined
अगर "extraInfoSpec" पैरामीटर में "blocking" तय किया गया है, तो इवेंट लिसनर को इस टाइप का ऑब्जेक्ट दिखाना चाहिए.
-
-
फ़िल्टर करें
-
extraInfoSpec
OnAuthRequiredOptions[] optional
onBeforeRedirect
chrome.webRequest.onBeforeRedirect.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeRedirectOptions[],
)
यह इवेंट तब ट्रिगर होता है, जब सर्वर से शुरू होने वाला रीडायरेक्ट होने वाला होता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:(details: object) => void
-
विवरण
ऑब्जेक्ट
-
documentId
string ज़रूरी नहीं है
Chrome 106 और इसके बाद के वर्शनअनुरोध करने वाले दस्तावेज़ का यूयूआईडी.
-
documentLifecycleChrome 106 और इसके बाद के वर्शन
दस्तावेज़ का लाइफ़साइकल.
-
frameId
संख्या
वैल्यू 0 से पता चलता है कि अनुरोध मुख्य फ़्रेम में किया गया है. पॉज़िटिव वैल्यू से पता चलता है कि अनुरोध किस सबफ़्रेम में किया गया है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड किया जाता है (
typeहैmain_frameयाsub_frame), तोframeIdइस फ़्रेम का आईडी दिखाता है, न कि आउटर फ़्रेम का आईडी. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं. -
frameTypeChrome 106 और इसके बाद के वर्शन
अनुरोध किस तरह के फ़्रेम में किया गया था.
-
fromCache
बूलियन
इससे पता चलता है कि यह जवाब, डिस्क कैश मेमोरी से फ़ेच किया गया था या नहीं.
-
शुरू करने वाला
string ज़रूरी नहीं है
Chrome 63 या इसके बाद के वर्शनवह ऑरिजिन जहां से अनुरोध शुरू किया गया था. रीडाइरेक्ट करने पर, इसमें कोई बदलाव नहीं होता. अगर यह ओपेक ऑरिजिन है, तो 'null' स्ट्रिंग का इस्तेमाल किया जाएगा.
-
ip
string ज़रूरी नहीं है
यह उस सर्वर का आईपी पता होता है जिस पर अनुरोध भेजा गया था. ध्यान दें कि यह लिटरल IPv6 पता हो सकता है.
-
तरीका
स्ट्रिंग
यह एक स्टैंडर्ड एचटीटीपी मेथड है.
-
parentDocumentId
string ज़रूरी नहीं है
Chrome 106 और इसके बाद के वर्शनइस फ़्रेम के मालिकाना हक वाले पैरंट दस्तावेज़ का यूयूआईडी. अगर कोई पैरंट नहीं है, तो इसे सेट नहीं किया जाता है.
-
parentFrameId
संख्या
उस फ़्रेम का आईडी जो अनुरोध भेजने वाले फ़्रेम को रैप करता है. अगर कोई पैरंट फ़्रेम मौजूद नहीं है, तो इसे -1 पर सेट किया जाता है.
-
redirectUrl
स्ट्रिंग
नया यूआरएल.
-
requestId
स्ट्रिंग
अनुरोध का आईडी. अनुरोध आईडी, ब्राउज़र के किसी सेशन में यूनीक होते हैं. इसलिए, इनका इस्तेमाल एक ही अनुरोध के अलग-अलग इवेंट को आपस में जोड़ने के लिए किया जा सकता है.
-
responseHeaders
HttpHeaders ज़रूरी नहीं है
इस रीडायरेक्ट के साथ मिले एचटीटीपी रिस्पॉन्स हेडर.
-
statusCode
संख्या
सर्वर से मिला स्टैंडर्ड एचटीटीपी स्टेटस कोड.
-
statusLine
स्ट्रिंग
जवाब की एचटीटीपी स्टेटस लाइन या एचटीटीपी/0.9 जवाबों के लिए 'HTTP/0.9 200 OK' स्ट्रिंग (यानी, ऐसे जवाब जिनमें स्टेटस लाइन नहीं होती) या अगर कोई हेडर नहीं है, तो खाली स्ट्रिंग.
-
tabId
संख्या
उस टैब का आईडी जिसमें अनुरोध किया गया है. अगर अनुरोध किसी टैब से जुड़ा नहीं है, तो इसे -1 पर सेट करें.
-
timeStamp
संख्या
यह सिग्नल ट्रिगर होने का समय, Epoch के बाद के मिलीसेकंड में.
-
टाइप
अनुरोध किए गए संसाधन का इस्तेमाल कैसे किया जाएगा.
-
url
स्ट्रिंग
-
-
-
फ़िल्टर करें
-
extraInfoSpec
OnBeforeRedirectOptions[] optional
onBeforeRequest
chrome.webRequest.onBeforeRequest.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeRequestOptions[],
)
यह इवेंट, अनुरोध किए जाने से ठीक पहले ट्रिगर होता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:(details: object) => BlockingResponse | undefined
-
विवरण
ऑब्जेक्ट
-
documentId
string ज़रूरी नहीं है
Chrome 106 और इसके बाद के वर्शनअनुरोध करने वाले दस्तावेज़ का यूयूआईडी.
-
documentLifecycle
extensionTypes.DocumentLifecycle optional
Chrome 106 और इसके बाद के वर्शनदस्तावेज़ का लाइफ़साइकल.
-
frameId
संख्या
वैल्यू 0 से पता चलता है कि अनुरोध मुख्य फ़्रेम में किया गया है. पॉज़िटिव वैल्यू से पता चलता है कि अनुरोध किस सबफ़्रेम में किया गया है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड किया जाता है (
typeहैmain_frameयाsub_frame), तोframeIdइस फ़्रेम का आईडी दिखाता है, न कि आउटर फ़्रेम का आईडी. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं. -
frameType
extensionTypes.FrameType optional
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[] optional
onBeforeSendHeaders
chrome.webRequest.onBeforeSendHeaders.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeSendHeadersOptions[],
)
अनुरोध के हेडर उपलब्ध होने के बाद, एचटीटीपी अनुरोध भेजने से पहले ट्रिगर होता है. ऐसा तब हो सकता है, जब सर्वर से टीसीपी कनेक्शन बन गया हो, लेकिन एचटीटीपी डेटा न भेजा गया हो.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:(details: object) => BlockingResponse | undefined
-
विवरण
ऑब्जेक्ट
-
documentId
string ज़रूरी नहीं है
Chrome 106 और इसके बाद के वर्शनअनुरोध करने वाले दस्तावेज़ का यूयूआईडी.
-
documentLifecycleChrome 106 और इसके बाद के वर्शन
दस्तावेज़ का लाइफ़साइकल.
-
frameId
संख्या
वैल्यू 0 से पता चलता है कि अनुरोध मुख्य फ़्रेम में किया गया है. पॉज़िटिव वैल्यू से पता चलता है कि अनुरोध किस सबफ़्रेम में किया गया है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड किया जाता है (
typeहैmain_frameयाsub_frame), तोframeIdइस फ़्रेम का आईडी दिखाता है, न कि आउटर फ़्रेम का आईडी. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं. -
frameTypeChrome 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[] optional
onCompleted
chrome.webRequest.onCompleted.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnCompletedOptions[],
)
अनुरोध पूरा होने पर सक्रिय होता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:(details: object) => void
-
विवरण
ऑब्जेक्ट
-
documentId
string ज़रूरी नहीं है
Chrome 106 और इसके बाद के वर्शनअनुरोध करने वाले दस्तावेज़ का यूयूआईडी.
-
documentLifecycleChrome 106 और इसके बाद के वर्शन
दस्तावेज़ का लाइफ़साइकल.
-
frameId
संख्या
वैल्यू 0 से पता चलता है कि अनुरोध मुख्य फ़्रेम में किया गया है. पॉज़िटिव वैल्यू से पता चलता है कि अनुरोध किस सबफ़्रेम में किया गया है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड किया जाता है (
typeहैmain_frameयाsub_frame), तोframeIdइस फ़्रेम का आईडी दिखाता है, न कि आउटर फ़्रेम का आईडी. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं. -
frameTypeChrome 106 और इसके बाद के वर्शन
अनुरोध किस तरह के फ़्रेम में किया गया था.
-
fromCache
बूलियन
इससे पता चलता है कि यह जवाब, डिस्क कैश मेमोरी से फ़ेच किया गया था या नहीं.
-
शुरू करने वाला
string ज़रूरी नहीं है
Chrome 63 या इसके बाद के वर्शनवह ऑरिजिन जहां से अनुरोध शुरू किया गया था. रीडाइरेक्ट करने पर, इसमें कोई बदलाव नहीं होता. अगर यह ओपेक ऑरिजिन है, तो 'null' स्ट्रिंग का इस्तेमाल किया जाएगा.
-
ip
string ज़रूरी नहीं है
यह उस सर्वर का आईपी पता होता है जिस पर अनुरोध भेजा गया था. ध्यान दें कि यह लिटरल IPv6 पता हो सकता है.
-
तरीका
स्ट्रिंग
यह एक स्टैंडर्ड एचटीटीपी मेथड है.
-
parentDocumentId
string ज़रूरी नहीं है
Chrome 106 और इसके बाद के वर्शनइस फ़्रेम के मालिकाना हक वाले पैरंट दस्तावेज़ का यूयूआईडी. अगर कोई पैरंट नहीं है, तो इसे सेट नहीं किया जाता है.
-
parentFrameId
संख्या
उस फ़्रेम का आईडी जो अनुरोध भेजने वाले फ़्रेम को रैप करता है. अगर कोई पैरंट फ़्रेम मौजूद नहीं है, तो इसे -1 पर सेट किया जाता है.
-
requestId
स्ट्रिंग
अनुरोध का आईडी. अनुरोध आईडी, ब्राउज़र के किसी सेशन में यूनीक होते हैं. इसलिए, इनका इस्तेमाल एक ही अनुरोध के अलग-अलग इवेंट को आपस में जोड़ने के लिए किया जा सकता है.
-
responseHeaders
HttpHeaders ज़रूरी नहीं है
इस रिस्पॉन्स के साथ मिले एचटीटीपी रिस्पॉन्स हेडर.
-
statusCode
संख्या
सर्वर से मिला स्टैंडर्ड एचटीटीपी स्टेटस कोड.
-
statusLine
स्ट्रिंग
जवाब की एचटीटीपी स्टेटस लाइन या एचटीटीपी/0.9 जवाबों के लिए 'HTTP/0.9 200 OK' स्ट्रिंग (यानी, ऐसे जवाब जिनमें स्टेटस लाइन नहीं होती) या अगर कोई हेडर नहीं है, तो खाली स्ट्रिंग.
-
tabId
संख्या
उस टैब का आईडी जिसमें अनुरोध किया गया है. अगर अनुरोध किसी टैब से जुड़ा नहीं है, तो इसे -1 पर सेट करें.
-
timeStamp
संख्या
यह सिग्नल ट्रिगर होने का समय, Epoch के बाद के मिलीसेकंड में.
-
टाइप
अनुरोध किए गए संसाधन का इस्तेमाल कैसे किया जाएगा.
-
url
स्ट्रिंग
-
-
-
फ़िल्टर करें
-
extraInfoSpec
OnCompletedOptions[] optional
onErrorOccurred
chrome.webRequest.onErrorOccurred.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnErrorOccurredOptions[],
)
यह इवेंट तब ट्रिगर होता है, जब कोई गड़बड़ी होती है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:(details: object) => void
-
विवरण
ऑब्जेक्ट
-
documentId
string ज़रूरी नहीं है
Chrome 106 और इसके बाद के वर्शनअनुरोध करने वाले दस्तावेज़ का यूयूआईडी. अगर अनुरोध किसी फ़्रेम पर नेविगेट करने का है, तो यह वैल्यू मौजूद नहीं होती.
-
documentLifecycleChrome 106 और इसके बाद के वर्शन
दस्तावेज़ का लाइफ़साइकल.
-
गड़बड़ी
स्ट्रिंग
गड़बड़ी की जानकारी. इस बात की कोई गारंटी नहीं है कि यह स्ट्रिंग, रिलीज़ के बीच पुराने सिस्टम के साथ काम करती रहेगी. आपको इसके कॉन्टेंट को पार्स नहीं करना चाहिए और न ही इसके आधार पर कोई कार्रवाई करनी चाहिए.
-
frameId
संख्या
वैल्यू 0 से पता चलता है कि अनुरोध मुख्य फ़्रेम में किया गया है. पॉज़िटिव वैल्यू से पता चलता है कि अनुरोध किस सबफ़्रेम में किया गया है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड किया जाता है (
typeहैmain_frameयाsub_frame), तोframeIdइस फ़्रेम का आईडी दिखाता है, न कि आउटर फ़्रेम का आईडी. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं. -
frameTypeChrome 106 और इसके बाद के वर्शन
अनुरोध किस तरह के फ़्रेम में किया गया था.
-
fromCache
बूलियन
इससे पता चलता है कि यह जवाब, डिस्क कैश मेमोरी से फ़ेच किया गया था या नहीं.
-
शुरू करने वाला
string ज़रूरी नहीं है
Chrome 63 या इसके बाद के वर्शनवह ऑरिजिन जहां से अनुरोध शुरू किया गया था. रीडाइरेक्ट करने पर, इसमें कोई बदलाव नहीं होता. अगर यह ओपेक ऑरिजिन है, तो 'null' स्ट्रिंग का इस्तेमाल किया जाएगा.
-
ip
string ज़रूरी नहीं है
यह उस सर्वर का आईपी पता होता है जिस पर अनुरोध भेजा गया था. ध्यान दें कि यह लिटरल IPv6 पता हो सकता है.
-
तरीका
स्ट्रिंग
यह एक स्टैंडर्ड एचटीटीपी मेथड है.
-
parentDocumentId
string ज़रूरी नहीं है
Chrome 106 और इसके बाद के वर्शनइस फ़्रेम के मालिकाना हक वाले पैरंट दस्तावेज़ का यूयूआईडी. अगर कोई पैरंट नहीं है, तो इसे सेट नहीं किया जाता है.
-
parentFrameId
संख्या
उस फ़्रेम का आईडी जो अनुरोध भेजने वाले फ़्रेम को रैप करता है. अगर कोई पैरंट फ़्रेम मौजूद नहीं है, तो इसे -1 पर सेट किया जाता है.
-
requestId
स्ट्रिंग
अनुरोध का आईडी. अनुरोध आईडी, ब्राउज़र के किसी सेशन में यूनीक होते हैं. इसलिए, इनका इस्तेमाल एक ही अनुरोध के अलग-अलग इवेंट को आपस में जोड़ने के लिए किया जा सकता है.
-
tabId
संख्या
उस टैब का आईडी जिसमें अनुरोध किया गया है. अगर अनुरोध किसी टैब से जुड़ा नहीं है, तो इसे -1 पर सेट करें.
-
timeStamp
संख्या
यह सिग्नल ट्रिगर होने का समय, Epoch के बाद के मिलीसेकंड में.
-
टाइप
अनुरोध किए गए संसाधन का इस्तेमाल कैसे किया जाएगा.
-
url
स्ट्रिंग
-
-
-
फ़िल्टर करें
-
extraInfoSpec
OnErrorOccurredOptions[] optional
onHeadersReceived
chrome.webRequest.onHeadersReceived.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnHeadersReceivedOptions[],
)
यह इवेंट तब ट्रिगर होता है, जब किसी अनुरोध के एचटीटीपी रिस्पॉन्स हेडर मिल जाते हैं.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:(details: object) => BlockingResponse | undefined
-
विवरण
ऑब्जेक्ट
-
documentId
string ज़रूरी नहीं है
Chrome 106 और इसके बाद के वर्शनअनुरोध करने वाले दस्तावेज़ का यूयूआईडी.
-
documentLifecycleChrome 106 और इसके बाद के वर्शन
दस्तावेज़ का लाइफ़साइकल.
-
frameId
संख्या
वैल्यू 0 से पता चलता है कि अनुरोध मुख्य फ़्रेम में किया गया है. पॉज़िटिव वैल्यू से पता चलता है कि अनुरोध किस सबफ़्रेम में किया गया है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड किया जाता है (
typeहैmain_frameयाsub_frame), तोframeIdइस फ़्रेम का आईडी दिखाता है, न कि आउटर फ़्रेम का आईडी. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं. -
frameTypeChrome 106 और इसके बाद के वर्शन
अनुरोध किस तरह के फ़्रेम में किया गया था.
-
शुरू करने वाला
string ज़रूरी नहीं है
Chrome 63 या इसके बाद के वर्शनवह ऑरिजिन जहां से अनुरोध शुरू किया गया था. रीडाइरेक्ट करने पर, इसमें कोई बदलाव नहीं होता. अगर यह ओपेक ऑरिजिन है, तो 'null' स्ट्रिंग का इस्तेमाल किया जाएगा.
-
तरीका
स्ट्रिंग
यह एक स्टैंडर्ड एचटीटीपी मेथड है.
-
parentDocumentId
string ज़रूरी नहीं है
Chrome 106 और इसके बाद के वर्शनइस फ़्रेम के मालिकाना हक वाले पैरंट दस्तावेज़ का यूयूआईडी. अगर कोई पैरंट नहीं है, तो इसे सेट नहीं किया जाता है.
-
parentFrameId
संख्या
उस फ़्रेम का आईडी जो अनुरोध भेजने वाले फ़्रेम को रैप करता है. अगर कोई पैरंट फ़्रेम मौजूद नहीं है, तो इसे -1 पर सेट किया जाता है.
-
requestId
स्ट्रिंग
अनुरोध का आईडी. अनुरोध आईडी, ब्राउज़र के किसी सेशन में यूनीक होते हैं. इसलिए, इनका इस्तेमाल एक ही अनुरोध के अलग-अलग इवेंट को आपस में जोड़ने के लिए किया जा सकता है.
-
responseHeaders
HttpHeaders ज़रूरी नहीं है
इस जवाब के साथ मिले एचटीटीपी रिस्पॉन्स हेडर.
-
securityInfo
SecurityInfo ज़रूरी नहीं है
मंज़ूरी मिलना बाकी हैइस कुकी में, टीएलएस/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[] optional
onResponseStarted
chrome.webRequest.onResponseStarted.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnResponseStartedOptions[],
)
यह इवेंट तब ट्रिगर होता है, जब जवाब के मुख्य हिस्से की पहली बाइट मिल जाती है. एचटीटीपी अनुरोधों के लिए, इसका मतलब है कि स्टेटस लाइन और रिस्पॉन्स हेडर उपलब्ध हैं.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:(details: object) => void
-
विवरण
ऑब्जेक्ट
-
documentId
string ज़रूरी नहीं है
Chrome 106 और इसके बाद के वर्शनअनुरोध करने वाले दस्तावेज़ का यूयूआईडी.
-
documentLifecycleChrome 106 और इसके बाद के वर्शन
दस्तावेज़ का लाइफ़साइकल.
-
frameId
संख्या
वैल्यू 0 से पता चलता है कि अनुरोध मुख्य फ़्रेम में किया गया है. पॉज़िटिव वैल्यू से पता चलता है कि अनुरोध किस सबफ़्रेम में किया गया है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड किया जाता है (
typeहैmain_frameयाsub_frame), तोframeIdइस फ़्रेम का आईडी दिखाता है, न कि आउटर फ़्रेम का आईडी. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं. -
frameTypeChrome 106 और इसके बाद के वर्शन
अनुरोध किस तरह के फ़्रेम में किया गया था.
-
fromCache
बूलियन
इससे पता चलता है कि यह जवाब, डिस्क कैश मेमोरी से फ़ेच किया गया था या नहीं.
-
शुरू करने वाला
string ज़रूरी नहीं है
Chrome 63 या इसके बाद के वर्शनवह ऑरिजिन जहां से अनुरोध शुरू किया गया था. रीडाइरेक्ट करने पर, इसमें कोई बदलाव नहीं होता. अगर यह ओपेक ऑरिजिन है, तो 'null' स्ट्रिंग का इस्तेमाल किया जाएगा.
-
ip
string ज़रूरी नहीं है
यह उस सर्वर का आईपी पता होता है जिस पर अनुरोध भेजा गया था. ध्यान दें कि यह लिटरल IPv6 पता हो सकता है.
-
तरीका
स्ट्रिंग
यह एक स्टैंडर्ड एचटीटीपी मेथड है.
-
parentDocumentId
string ज़रूरी नहीं है
Chrome 106 और इसके बाद के वर्शनइस फ़्रेम के मालिकाना हक वाले पैरंट दस्तावेज़ का यूयूआईडी. अगर कोई पैरंट नहीं है, तो इसे सेट नहीं किया जाता है.
-
parentFrameId
संख्या
उस फ़्रेम का आईडी जो अनुरोध भेजने वाले फ़्रेम को रैप करता है. अगर कोई पैरंट फ़्रेम मौजूद नहीं है, तो इसे -1 पर सेट किया जाता है.
-
requestId
स्ट्रिंग
अनुरोध का आईडी. अनुरोध आईडी, ब्राउज़र के किसी सेशन में यूनीक होते हैं. इसलिए, इनका इस्तेमाल एक ही अनुरोध के अलग-अलग इवेंट को आपस में जोड़ने के लिए किया जा सकता है.
-
responseHeaders
HttpHeaders ज़रूरी नहीं है
इस रिस्पॉन्स के साथ मिले एचटीटीपी रिस्पॉन्स हेडर.
-
statusCode
संख्या
सर्वर से मिला स्टैंडर्ड एचटीटीपी स्टेटस कोड.
-
statusLine
स्ट्रिंग
जवाब की एचटीटीपी स्टेटस लाइन या एचटीटीपी/0.9 जवाबों के लिए 'HTTP/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 और इसके बाद के वर्शनअनुरोध करने वाले दस्तावेज़ का यूयूआईडी.
-
documentLifecycleChrome 106 और इसके बाद के वर्शन
दस्तावेज़ का लाइफ़साइकल.
-
frameId
संख्या
वैल्यू 0 से पता चलता है कि अनुरोध मुख्य फ़्रेम में किया गया है. पॉज़िटिव वैल्यू से पता चलता है कि अनुरोध किस सबफ़्रेम में किया गया है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड किया जाता है (
typeहैmain_frameयाsub_frame), तोframeIdइस फ़्रेम का आईडी दिखाता है, न कि आउटर फ़्रेम का आईडी. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं. -
frameTypeChrome 106 और इसके बाद के वर्शन
अनुरोध किस तरह के फ़्रेम में किया गया था.
-
शुरू करने वाला
string ज़रूरी नहीं है
Chrome 63 या इसके बाद के वर्शनवह ऑरिजिन जहां से अनुरोध शुरू किया गया था. रीडाइरेक्ट करने पर, इसमें कोई बदलाव नहीं होता. अगर यह ओपेक ऑरिजिन है, तो 'null' स्ट्रिंग का इस्तेमाल किया जाएगा.
-
तरीका
स्ट्रिंग
यह एक स्टैंडर्ड एचटीटीपी मेथड है.
-
parentDocumentId
string ज़रूरी नहीं है
Chrome 106 और इसके बाद के वर्शनइस फ़्रेम के मालिकाना हक वाले पैरंट दस्तावेज़ का यूयूआईडी. अगर कोई पैरंट नहीं है, तो इसे सेट नहीं किया जाता है.
-
parentFrameId
संख्या
उस फ़्रेम का आईडी जो अनुरोध भेजने वाले फ़्रेम को रैप करता है. अगर कोई पैरंट फ़्रेम मौजूद नहीं है, तो इसे -1 पर सेट किया जाता है.
-
requestHeaders
HttpHeaders ज़रूरी नहीं है
इस अनुरोध के साथ भेजे गए एचटीटीपी अनुरोध के हेडर.
-
requestId
स्ट्रिंग
अनुरोध का आईडी. अनुरोध आईडी, ब्राउज़र के किसी सेशन में यूनीक होते हैं. इसलिए, इनका इस्तेमाल एक ही अनुरोध के अलग-अलग इवेंट को आपस में जोड़ने के लिए किया जा सकता है.
-
tabId
संख्या
उस टैब का आईडी जिसमें अनुरोध किया गया है. अगर अनुरोध किसी टैब से जुड़ा नहीं है, तो इसे -1 पर सेट करें.
-
timeStamp
संख्या
यह सिग्नल ट्रिगर होने का समय, Epoch के बाद के मिलीसेकंड में.
-
टाइप
अनुरोध किए गए संसाधन का इस्तेमाल कैसे किया जाएगा.
-
url
स्ट्रिंग
-
-
-
फ़िल्टर करें
-
extraInfoSpec
OnSendHeadersOptions[] ज़रूरी नहीं है