ब्यौरा
ट्रैफ़िक पर नज़र रखने और उसका विश्लेषण करने के साथ-साथ फ़्लाइट में अनुरोधों को रोकने, ब्लॉक करने या उनमें बदलाव करने के लिए, chrome.webRequest
एपीआई का इस्तेमाल करें.
अनुमतियां
webRequest
वेब अनुरोध का इस्तेमाल करने के लिए, आपको एक्सटेंशन मेनिफ़ेस्ट में "webRequest"
अनुमति का एलान करना होगा
एपीआई के साथ-साथ होस्ट की ज़रूरी अनुमतियां भी शामिल होंगी. किसी उप-संसाधन अनुरोध को रोकने के लिए,
एक्सटेंशन के पास अनुरोध किए गए यूआरएल और उसे शुरू करने वाले, दोनों का ऐक्सेस होना चाहिए. उदाहरण के लिए:
{
"name": "My extension",
...
"permissions": [
"webRequest"
],
"host_permissions": [
"*://*.google.com/*"
],
...
}
webRequestBlocking
ब्लॉक करने वाले इवेंट हैंडलर रजिस्टर करने के लिए ज़रूरी है. मेनिफ़ेस्ट V3 के हिसाब से, यह सिर्फ़ नीति इंस्टॉल किए गए एक्सटेंशन के लिए उपलब्ध है.
webRequestAuthProvider
onAuthRequired
तरीके का इस्तेमाल करने के लिए ज़रूरी है. यहां जाएं:
पुष्टि करने की प्रोसेस को मैनेज करना.
सिद्धांत और उनका इस्तेमाल
अनुरोधों की लाइफ़ साइकल
वेब अनुरोध एपीआई ऐसे इवेंट के सेट के बारे में बताता है जो किसी वेब अनुरोध की लाइफ़ साइकल के हिसाब से होते हैं. Google Analytics 4 पर माइग्रेट करने के लिए, इन इवेंट का इस्तेमाल ट्रैफ़िक को समझने और उसका विश्लेषण करने के लिए किया जाता है. कुछ सिंक्रोनस इवेंट से आपको ब्लॉक करने या उसमें बदलाव करने के लिए कहा जाता है.
सफल अनुरोधों के लिए इवेंट लाइफ़ साइकल को यहां दिखाया गया है. इसके बाद, इवेंट की परिभाषाएं दिखाई गई हैं:
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
इसमें फ़ॉर्म डेटा में पास किया गया डेटा शामिल होता है. अगर डेटा utf-8 स्ट्रिंग है, तो यूआरएल कोड में बदले गए फ़ॉर्म के लिए इसे स्ट्रिंग के तौर पर सेव किया जाता है. ऐसा न होने पर ArrayBuffer के तौर पर सेव किया जाता है. फ़ॉर्म-डेटा के लिए यह ArrayBuffer है. अगर form-डेटा, फ़ाइल अपलोड करने के बारे में बताता है, तो फ़ाइल नाम दिए जाने पर, वह फ़ाइल नाम के साथ स्ट्रिंग होती है.
Enum
अरेबफ़र
स्ट्रिंग
HttpHeaders
एचटीटीपी हेडर का कलेक्शन. हर हेडर को डिक्शनरी के तौर पर दिखाया जाता है, जिसमें name
और value
या binaryValue
कुंजियां होती हैं.
टाइप
object[]
प्रॉपर्टी
-
binaryValue
नंबर[] ज़रूरी नहीं
अगर एचटीटीपी हेडर की वैल्यू को UTF-8 में नहीं दिखाया जा सकता, तो इसे अलग-अलग बाइट वैल्यू (0..255) के तौर पर सेव किया जाता है.
-
नाम
स्ट्रिंग
एचटीटीपी हेडर का नाम.
-
value
स्ट्रिंग ज़रूरी नहीं
एचटीटीपी हेडर का मान, अगर उसे UTF-8 से दिखाया जा सकता है.
IgnoredActionType
Enum
"रीडायरेक्ट"
"request_headers"
"response_headers"
"auth_credentials"
OnAuthRequiredOptions
Enum
"responseHeaders"
बताता है कि इवेंट में रिस्पॉन्स हेडर शामिल किए जाने चाहिए.
"ब्लॉक करना"
इससे पता चलता है कि अनुरोध को तब तक ब्लॉक किया गया है, जब तक कॉलबैक फ़ंक्शन वापस नहीं आता.
"asyncBlocking"
बताता है कि कॉलबैक फ़ंक्शन को एसिंक्रोनस तरीके से हैंडल किया जाता है.
"extraHeaders"
बताता है कि हेडर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का उल्लंघन कर सकते हैं.
OnBeforeRedirectOptions
Enum
"responseHeaders"
बताता है कि इवेंट में रिस्पॉन्स हेडर शामिल किए जाने चाहिए.
"extraHeaders"
बताता है कि हेडर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का उल्लंघन कर सकते हैं.
OnBeforeRequestOptions
Enum
"ब्लॉक करना"
इससे पता चलता है कि अनुरोध को तब तक ब्लॉक किया गया है, जब तक कॉलबैक फ़ंक्शन वापस नहीं आता.
"requestBody"
यह बताता है कि अनुरोध का मुख्य हिस्सा इवेंट में शामिल किया जाना चाहिए.
"extraHeaders"
बताता है कि हेडर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का उल्लंघन कर सकते हैं.
OnBeforeSendHeadersOptions
Enum
"requestHeaders"
यह बताता है कि अनुरोध के हेडर को इवेंट में शामिल किया जाना चाहिए.
"ब्लॉक करना"
इससे पता चलता है कि अनुरोध को तब तक ब्लॉक किया गया है, जब तक कॉलबैक फ़ंक्शन वापस नहीं आता.
"extraHeaders"
बताता है कि हेडर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का उल्लंघन कर सकते हैं.
OnCompletedOptions
Enum
"responseHeaders"
बताता है कि इवेंट में रिस्पॉन्स हेडर शामिल किए जाने चाहिए.
"extraHeaders"
बताता है कि हेडर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का उल्लंघन कर सकते हैं.
OnErrorOccurredOptions
मान
"extraHeaders"
OnHeadersReceivedOptions
Enum
"ब्लॉक करना"
इससे पता चलता है कि अनुरोध को तब तक ब्लॉक किया गया है, जब तक कॉलबैक फ़ंक्शन वापस नहीं आता.
"responseHeaders"
बताता है कि इवेंट में रिस्पॉन्स हेडर शामिल किए जाने चाहिए.
"extraHeaders"
बताता है कि हेडर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का उल्लंघन कर सकते हैं.
OnResponseStartedOptions
Enum
"responseHeaders"
बताता है कि इवेंट में रिस्पॉन्स हेडर शामिल किए जाने चाहिए.
"extraHeaders"
बताता है कि हेडर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का उल्लंघन कर सकते हैं.
OnSendHeadersOptions
Enum
"requestHeaders"
यह बताता है कि अनुरोध के हेडर को इवेंट में शामिल किया जाना चाहिए.
"extraHeaders"
बताता है कि हेडर, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का उल्लंघन कर सकते हैं.
RequestFilter
एक ऑब्जेक्ट जो webRequest इवेंट पर लागू किए जाने वाले फ़िल्टर के बारे में बताता है.
प्रॉपर्टी
-
tabId
नंबर वैकल्पिक
-
प्रकार
ResourceType[] ज़रूरी नहीं
अनुरोध के टाइप की सूची. किसी भी टाइप से मैच न करने वाले अनुरोध, फ़िल्टर करके बाहर कर दिए जाएंगे.
-
यूआरएल
स्ट्रिंग[]
यूआरएल या यूआरएल पैटर्न की सूची. किसी भी यूआरएल से मैच न करने वाले अनुरोध, फ़िल्टर करके बाहर कर दिए जाएंगे.
-
windowId
नंबर वैकल्पिक
ResourceType
Enum
"main_frame"
संसाधन को मुख्य फ़्रेम के तौर पर बताता है.
"sub_frame"
संसाधन को सब फ़्रेम के तौर पर बताता है.
"स्टाइलशीट"
संसाधन को स्टाइलशीट के तौर पर बताता है.
"script"
संसाधन को स्क्रिप्ट के तौर पर बताता है.
"image"
संसाधन को इमेज के तौर पर बताता है.
"font"
संसाधन को फ़ॉन्ट के तौर पर बताता है.
"object"
संसाधन को ऑब्जेक्ट के तौर पर बताता है.
"xmlhttprequest"
संसाधन को XMLHttpRequest के तौर पर बताता है.
"ping"
संसाधन को पिंग के तौर पर बताता है.
"csp_report"
संसाधन को कॉन्टेंट की सुरक्षा नीति (सीएसपी) की रिपोर्ट के तौर पर बताता है.
"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.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 और उसके बाद वाले वर्शनअनुरोध करने वाले दस्तावेज़ का यूयूआईडी.
-
documentLifecycleChrome 106 और उसके बाद वाले वर्शन
वह लाइफ़साइकल जिसमें दस्तावेज़ मौजूद है.
-
frameId
संख्या
वैल्यू 0 होने का मतलब है कि अनुरोध मुख्य फ़्रेम में हुआ है; पॉज़िटिव वैल्यू उस सबफ़्रेम के आईडी को दिखाती है जिसमें अनुरोध होता है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड होता है (
type
main_frame
याsub_frame
है), तोframeId
इस फ़्रेम के आईडी को दिखाता है, न कि आउटर फ़्रेम के आईडी को. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं. -
frameTypeChrome 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 और उसके बाद वाले वर्शनअनुरोध करने वाले दस्तावेज़ का यूयूआईडी.
-
documentLifecycleChrome 106 और उसके बाद वाले वर्शन
वह लाइफ़साइकल जिसमें दस्तावेज़ मौजूद है.
-
frameId
संख्या
वैल्यू 0 होने का मतलब है कि अनुरोध मुख्य फ़्रेम में हुआ है; पॉज़िटिव वैल्यू उस सबफ़्रेम के आईडी को दिखाती है जिसमें अनुरोध होता है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड होता है (
type
main_frame
याsub_frame
है), तोframeId
इस फ़्रेम के आईडी को दिखाता है, न कि आउटर फ़्रेम के आईडी को. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं. -
frameTypeChrome 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
extensionTypes.DocumentLifecycle optional
Chrome 106 और उसके बाद वाले वर्शनवह लाइफ़साइकल जिसमें दस्तावेज़ मौजूद है.
-
frameId
संख्या
वैल्यू 0 होने का मतलब है कि अनुरोध मुख्य फ़्रेम में हुआ है; पॉज़िटिव वैल्यू उस सबफ़्रेम के आईडी को दिखाती है जिसमें अनुरोध होता है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड होता है (
type
main_frame
याsub_frame
है), तोframeId
इस फ़्रेम के आईडी को दिखाता है, न कि आउटर फ़्रेम के आईडी को. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं. -
frameType
extensionTypes.FrameType optional
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 और उसके बाद वाले वर्शनअनुरोध करने वाले दस्तावेज़ का यूयूआईडी.
-
documentLifecycleChrome 106 और उसके बाद वाले वर्शन
वह लाइफ़साइकल जिसमें दस्तावेज़ मौजूद है.
-
frameId
संख्या
वैल्यू 0 होने का मतलब है कि अनुरोध मुख्य फ़्रेम में हुआ है; पॉज़िटिव वैल्यू उस सबफ़्रेम के आईडी को दिखाती है जिसमें अनुरोध होता है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड होता है (
type
main_frame
याsub_frame
है), तोframeId
इस फ़्रेम के आईडी को दिखाता है, न कि आउटर फ़्रेम के आईडी को. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं. -
frameTypeChrome 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 और उसके बाद वाले वर्शनअनुरोध करने वाले दस्तावेज़ का यूयूआईडी.
-
documentLifecycleChrome 106 और उसके बाद वाले वर्शन
वह लाइफ़साइकल जिसमें दस्तावेज़ मौजूद है.
-
frameId
संख्या
वैल्यू 0 होने का मतलब है कि अनुरोध मुख्य फ़्रेम में हुआ है; पॉज़िटिव वैल्यू उस सबफ़्रेम के आईडी को दिखाती है जिसमें अनुरोध होता है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड होता है (
type
main_frame
याsub_frame
है), तोframeId
इस फ़्रेम के आईडी को दिखाता है, न कि आउटर फ़्रेम के आईडी को. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं. -
frameTypeChrome 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 और उसके बाद वाले वर्शनअनुरोध करने वाले दस्तावेज़ का यूयूआईडी. अगर अनुरोध किसी फ़्रेम के नेविगेशन के लिए किया गया है, तो यह वैल्यू मौजूद नहीं होती.
-
documentLifecycleChrome 106 और उसके बाद वाले वर्शन
वह लाइफ़साइकल जिसमें दस्तावेज़ मौजूद है.
-
गड़बड़ी
स्ट्रिंग
गड़बड़ी की जानकारी. इस स्ट्रिंग की रिलीज़ के बीच में, पुराने सिस्टम के साथ काम करने की गारंटी नहीं है. आपको इसके कॉन्टेंट का विश्लेषण और उसके आधार पर कोई कार्रवाई नहीं करनी चाहिए.
-
frameId
संख्या
वैल्यू 0 होने का मतलब है कि अनुरोध मुख्य फ़्रेम में हुआ है; पॉज़िटिव वैल्यू उस सबफ़्रेम के आईडी को दिखाती है जिसमें अनुरोध होता है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड होता है (
type
main_frame
याsub_frame
है), तोframeId
इस फ़्रेम के आईडी को दिखाता है, न कि आउटर फ़्रेम के आईडी को. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं. -
frameTypeChrome 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 और उसके बाद वाले वर्शनअनुरोध करने वाले दस्तावेज़ का यूयूआईडी.
-
documentLifecycleChrome 106 और उसके बाद वाले वर्शन
वह लाइफ़साइकल जिसमें दस्तावेज़ मौजूद है.
-
frameId
संख्या
वैल्यू 0 होने का मतलब है कि अनुरोध मुख्य फ़्रेम में हुआ है; पॉज़िटिव वैल्यू उस सबफ़्रेम के आईडी को दिखाती है जिसमें अनुरोध होता है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड होता है (
type
main_frame
याsub_frame
है), तोframeId
इस फ़्रेम के आईडी को दिखाता है, न कि आउटर फ़्रेम के आईडी को. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं. -
frameTypeChrome 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 और उसके बाद वाले वर्शनअनुरोध करने वाले दस्तावेज़ का यूयूआईडी.
-
documentLifecycleChrome 106 और उसके बाद वाले वर्शन
वह लाइफ़साइकल जिसमें दस्तावेज़ मौजूद है.
-
frameId
संख्या
वैल्यू 0 होने का मतलब है कि अनुरोध मुख्य फ़्रेम में हुआ है; पॉज़िटिव वैल्यू उस सबफ़्रेम के आईडी को दिखाती है जिसमें अनुरोध होता है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड होता है (
type
main_frame
याsub_frame
है), तोframeId
इस फ़्रेम के आईडी को दिखाता है, न कि आउटर फ़्रेम के आईडी को. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं. -
frameTypeChrome 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 और उसके बाद वाले वर्शनअनुरोध करने वाले दस्तावेज़ का यूयूआईडी.
-
documentLifecycleChrome 106 और उसके बाद वाले वर्शन
वह लाइफ़साइकल जिसमें दस्तावेज़ मौजूद है.
-
frameId
संख्या
वैल्यू 0 होने का मतलब है कि अनुरोध मुख्य फ़्रेम में हुआ है; पॉज़िटिव वैल्यू उस सबफ़्रेम के आईडी को दिखाती है जिसमें अनुरोध होता है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड होता है (
type
main_frame
याsub_frame
है), तोframeId
इस फ़्रेम के आईडी को दिखाता है, न कि आउटर फ़्रेम के आईडी को. फ़्रेम आईडी, किसी टैब में यूनीक होते हैं. -
frameTypeChrome 106 और उसके बाद वाले वर्शन
उस फ़्रेम का टाइप जिसमें अनुरोध किया गया है.
-
शुरुआत करने वाला
स्ट्रिंग ज़रूरी नहीं
Chrome 63 और उसके बाद के वर्शनवह ऑरिजिन जहां से अनुरोध किया गया था. रीडायरेक्ट के माध्यम से यह नहीं बदलता. अगर यह ओपेक ऑरिजिन है, तो स्ट्रिंग 'शून्य' का इस्तेमाल किया जाएगा.
-
तरीका
स्ट्रिंग
स्टैंडर्ड एचटीटीपी तरीका.
-
parentDocumentId
स्ट्रिंग ज़रूरी नहीं
Chrome 106 और उसके बाद वाले वर्शनइस फ़्रेम के मालिकाना हक वाले पैरंट दस्तावेज़ का यूयूआईडी. अगर कोई अभिभावक नहीं है, तो यह सेट नहीं होता है.
-
parentFrameId
संख्या
फ़्रेम का आईडी, जो अनुरोध भेजने वाले फ़्रेम को रैप करता है. अगर कोई पैरंट फ़्रेम मौजूद नहीं है, तो -1 पर सेट करें.
-
requestHeaders
HttpHeaders वैकल्पिक
इस अनुरोध के साथ भेजे गए एचटीटीपी अनुरोध के हेडर.
-
requestId
स्ट्रिंग
अनुरोध का आईडी. ब्राउज़र सेशन में अनुरोध आईडी यूनीक होते हैं. इस वजह से, इनका इस्तेमाल एक ही अनुरोध के अलग-अलग इवेंट को जोड़ने के लिए किया जा सकता है.
-
tabId
संख्या
उस टैब का आईडी जिसमें अनुरोध किया जाता है. अगर अनुरोध किसी टैब से न जुड़ा हो, तो उसे -1 पर सेट करें.
-
timeStamp
संख्या
Epoch के बाद से, मिलीसेकंड में वह समय जब यह सिग्नल ट्रिगर होता है.
-
टाइप
अनुरोध किए गए संसाधन का इस्तेमाल कैसे किया जाएगा.
-
url
स्ट्रिंग
-
-
-
फ़िल्टर करें
-
extraInfoSpec
OnSendHeadersOptions[] ज़रूरी नहीं