chrome.declarativeWebRequest

refresh date: 2026-09-25 robots: noindex

ब्यौरा

ध्यान दें: इस एपीआई का इस्तेमाल अब नहीं किया जा सकेगा. इसके बजाय, declarativeNetRequest एपीआई देखें. chrome.declarativeWebRequest एपीआई का इस्तेमाल करके, फ़्लाइट में अनुरोधों को इंटरसेप्ट, ब्लॉक या उनमें बदलाव किया जा सकता है. यह chrome.webRequest API से काफ़ी तेज़ है. इसकी वजह यह है कि इसमें ऐसे नियम रजिस्टर किए जा सकते हैं जिनका आकलन JavaScript इंजन के बजाय ब्राउज़र में किया जाता है. इससे राउंडट्रिप में लगने वाला समय कम हो जाता है और ज़्यादा बेहतर तरीके से काम किया जा सकता है.

अनुमतियां

declarativeWebRequest

इस एपीआई का इस्तेमाल करने के लिए, आपको एक्सटेंशन मेनिफ़ेस्ट में "declarativeWebRequest" अनुमति का एलान करना होगा. साथ ही, होस्ट करने की अनुमतियां भी देनी होंगी.

{
  "name": "My extension",
  ...
  "permissions": [
    "declarativeWebRequest",
    "*://*/*"
  ],
  ...
}

उपलब्धता

बीटा चैनल ≤ MV2

मेनिफ़ेस्ट

ध्यान दें कि कुछ ऐसी कार्रवाइयां होती हैं जिनमें संवेदनशील जानकारी शामिल नहीं होती. इनके लिए, होस्ट की अनुमतियों की ज़रूरत नहीं होती:

  • CancelRequest
  • IgnoreRules
  • RedirectToEmptyDocument
  • RedirectToTransparentImage

SendMessageToExtension() कार्रवाई के लिए, उन सभी होस्ट के लिए होस्ट की अनुमतियां ज़रूरी होती हैं जिनके नेटवर्क अनुरोधों पर आपको मैसेज ट्रिगर करना है.

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

उदाहरण के लिए, अगर किसी एक्सटेंशन के पास सिर्फ़ "https://*.google.com/*" की अनुमति है, तो वह एक्सटेंशन ये काम करने के लिए नियम सेट अप कर सकता है:

  • https://www.google.com या https://anything.else.com से लिंक करने का अनुरोध रद्द करें.
  • https://www.google.com पर नेविगेट करते समय मैसेज भेजो, लेकिन https://something.else.com पर नहीं.

एक्सटेंशन, https://www.google.com को https://mail.google.com पर रीडायरेक्ट करने का नियम सेट अप नहीं कर सकता.

नियम

Declarative Web Request API, Declarative API के सिद्धांतों का पालन करता है. chrome.declarativeWebRequest.onRequest इवेंट ऑब्जेक्ट के लिए, नियमों को रजिस्टर किया जा सकता है.

Declarative Web Request API, मैच करने की एक ही तरह की शर्त के साथ काम करता है. यह शर्त RequestMatcher है. RequestMatcher, नेटवर्क अनुरोधों से तब ही मैच करता है, जब सूची में दी गई सभी शर्तें पूरी की गई हों. जब उपयोगकर्ता, ओम्निबॉक्स में https://www.example.com डालता है, तब यहां दिया गया RequestMatcher, नेटवर्क अनुरोध से मैच करेगा:

var matcher = new chrome.declarativeWebRequest.RequestMatcher({
  url: { hostSuffix: 'example.com', schemes: ['http'] },
  resourceType: ['main_frame']
});

स्कीम की वजह से, RequestMatcher से किए गए https://www.example.com के अनुरोधों को अस्वीकार कर दिया जाएगा. साथ ही, एम्बेड किए गए iframe के सभी अनुरोधों को resourceType की वजह से अस्वीकार कर दिया जाएगा.

"example.com" के सभी अनुरोधों को रद्द करने के लिए, इस तरह का नियम बनाया जा सकता है:

var rule = {
  conditions: [
    new chrome.declarativeWebRequest.RequestMatcher({
      url: { hostSuffix: 'example.com' } })
  ],
  actions: [
    new chrome.declarativeWebRequest.CancelRequest()
  ]
};

example.com और foobar.com के सभी अनुरोधों को रद्द करने के लिए, दूसरी शर्त जोड़ी जा सकती है. ऐसा इसलिए, क्योंकि हर शर्त, बताई गई सभी कार्रवाइयों को ट्रिगर करने के लिए काफ़ी है:

var rule2 = {
  conditions: [
    new chrome.declarativeWebRequest.RequestMatcher({
      url: { hostSuffix: 'example.com' } }),
    new chrome.declarativeWebRequest.RequestMatcher({
      url: { hostSuffix: 'foobar.com' } })
  ],
  actions: [
    new chrome.declarativeWebRequest.CancelRequest()
  ]
};

नियमों को इस तरह रजिस्टर करें:

chrome.declarativeWebRequest.onRequest.addRules([rule2]);

शर्तों और कार्रवाइयों का आकलन

Declarative Web Request API, Web Request API के वेब अनुरोधों के लाइफ़ साइकल मॉडल का पालन करता है. इसका मतलब है कि शर्तों को सिर्फ़ वेब अनुरोध के कुछ खास चरणों में ही टेस्ट किया जा सकता है. इसी तरह, कार्रवाइयों को भी सिर्फ़ कुछ खास चरणों में ही पूरा किया जा सकता है. यहां दी गई टेबल में, अनुरोध के उन चरणों की सूची दी गई है जो शर्तों और कार्रवाइयों के साथ काम करते हैं.

अनुरोध के वे चरण जिनके दौरान शर्त वाले एट्रिब्यूट प्रोसेस किए जा सकते हैं.
'शर्त' एट्रिब्यूट onBeforeRequest onBeforeSendHeaders onHeadersReceived onAuthRequired
url ✓ ✓ ✓ ✓
resourceType ✓ ✓ ✓ ✓
contentType ✓
excludeContentType ✓
responseHeaders ✓
excludeResponseHeaders ✓
requestHeaders ✓
excludeRequestHeaders ✓
thirdPartyForCookies ✓ ✓ ✓ ✓
अनुरोध के ऐसे चरण जिनके दौरान कार्रवाइयां की जा सकती हैं.
इवेंट onBeforeRequest onBeforeSendHeaders onHeadersReceived onAuthRequired
AddRequestCookie ✓
AddResponseCookie ✓
AddResponseHeader ✓
CancelRequest ✓ ✓ ✓ ✓
EditRequestCookie ✓
EditResponseCookie ✓
IgnoreRules ✓ ✓ ✓ ✓
RedirectByRegEx ✓ ✓
RedirectRequest ✓ ✓
RedirectToEmptyDocument ✓ ✓
RedirectToTransparentImage ✓ ✓
RemoveRequestCookie ✓
RemoveRequestHeader ✓
RemoveResponseCookie ✓
RemoveResponseHeader ✓
SendMessageToExtension ✓ ✓ ✓ ✓
SetRequestHeader ✓

नियमों को बदलने के लिए प्राथमिकताओं का इस्तेमाल करना

नियमों को प्राथमिकताओं के साथ जोड़ा जा सकता है. इसके बारे में Events API में बताया गया है. इस तरीके का इस्तेमाल, अपवादों को दिखाने के लिए किया जा सकता है. यहां दिए गए उदाहरण में, evil.jpg नाम की सभी इमेज के लिए अनुरोध ब्लॉक किए गए हैं. हालांकि, सर्वर "myserver.com" पर ऐसा नहीं किया गया है.

var rule1 = {
  priority: 100,
  conditions: [
    new chrome.declarativeWebRequest.RequestMatcher({
        url: { pathEquals: 'evil.jpg' } })
  ],
  actions: [
    new chrome.declarativeWebRequest.CancelRequest()
  ]
};
var rule2 = {
  priority: 1000,
  conditions: [
    new chrome.declarativeWebRequest.RequestMatcher({
      url: { hostSuffix: '.myserver.com' } })
  ],
  actions: [
    new chrome.declarativeWebRequest.IgnoreRules({
      lowerPriorityThan: 1000 })
  ]
};
chrome.declarativeWebRequest.onRequest.addRules([rule1, rule2]);

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

टाइप

AddRequestCookie

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

प्रॉपर्टी

  • कंस्ट्रक्टर

    void

    constructor फ़ंक्शन इस तरह दिखता है:

    (arg: AddRequestCookie) => {...}

  • अनुरोध में जोड़ी जाने वाली कुकी. किसी भी फ़ील्ड को 'तय नहीं किया गया' के तौर पर मार्क नहीं किया जा सकता.

AddResponseCookie

यह कुकी को रिस्पॉन्स में जोड़ता है या कुकी को बदलता है. ऐसा तब होता है, जब एक ही नाम की कोई दूसरी कुकी पहले से मौजूद हो. ध्यान दें कि Cookies API का इस्तेमाल करना बेहतर होता है, क्योंकि इसमें कंप्यूटेशनल लागत कम होती है.

प्रॉपर्टी

  • कंस्ट्रक्टर

    void

    constructor फ़ंक्शन इस तरह दिखता है:

    (arg: AddResponseCookie) => {...}

  • जवाब में जोड़ी जाने वाली कुकी. नाम और वैल्यू बताना ज़रूरी है.

AddResponseHeader

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

प्रॉपर्टी

  • कंस्ट्रक्टर

    void

    constructor फ़ंक्शन इस तरह दिखता है:

    (arg: AddResponseHeader) => {...}

  • नाम

    स्ट्रिंग

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

  • मान

    स्ट्रिंग

    एचटीटीपी रिस्पॉन्स हेडर की वैल्यू.

CancelRequest

नेटवर्क का अनुरोध रद्द करने वाली डिक्लेरेटिव इवेंट ऐक्शन.

प्रॉपर्टी

EditRequestCookie

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

प्रॉपर्टी

  • कंस्ट्रक्टर

    void

    constructor फ़ंक्शन इस तरह दिखता है:

    (arg: EditRequestCookie) => {...}

  • फ़िल्टर

    उन कुकी के लिए फ़िल्टर करें जिनमें बदलाव किया जाएगा. खाली एंट्री को अनदेखा कर दिया जाता है.

  • बदलाव

    ऐसे एट्रिब्यूट जिन्हें फ़िल्टर से मैच करने वाली कुकी में बदला जाएगा. जिन एट्रिब्यूट की वैल्यू खाली स्ट्रिंग पर सेट होती है उन्हें हटा दिया जाता है.

EditResponseCookie

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

प्रॉपर्टी

  • कंस्ट्रक्टर

    void

    constructor फ़ंक्शन इस तरह दिखता है:

    (arg: EditResponseCookie) => {...}

  • फ़िल्टर

    उन कुकी के लिए फ़िल्टर करें जिनमें बदलाव किया जाएगा. खाली एंट्री को अनदेखा कर दिया जाता है.

  • बदलाव

    ऐसे एट्रिब्यूट जिन्हें फ़िल्टर से मैच करने वाली कुकी में बदला जाएगा. जिन एट्रिब्यूट की वैल्यू खाली स्ट्रिंग पर सेट होती है उन्हें हटा दिया जाता है.

FilterResponseCookie

एचटीटीपी रिस्पॉन्स में कुकी का फ़िल्टर.

प्रॉपर्टी

  • ageLowerBound

    number optional

    कुकी के बने रहने की अवधि की निचली सीमा (मौजूदा समय के बाद सेकंड में तय की जाती है). सिर्फ़ उन कुकी के लिए यह शर्त पूरी होती है जिनके खत्म होने की तारीख और समय को 'now + ageLowerBound' या इसके बाद के समय पर सेट किया गया है. सेशन कुकी, इस फ़िल्टर की शर्त को पूरा नहीं करती हैं. कुकी की समयावधि का हिसाब, कुकी के 'max-age' या 'expires' एट्रिब्यूट से लगाया जाता है. अगर दोनों को सेट किया जाता है, तो कुकी के लाइफ़टाइम का हिसाब लगाने के लिए 'max-age' का इस्तेमाल किया जाता है.

  • ageUpperBound

    number optional

    कुकी के बने रहने की अवधि की ऊपरी सीमा (मौजूदा समय के बाद सेकंड में तय की जाती है). सिर्फ़ वे कुकी इस शर्त को पूरा करती हैं जिनके खत्म होने की तारीख और समय, [now, now + ageUpperBound] के बीच होता है. सेशन कुकी और ऐसी कुकी जिनकी समयसीमा खत्म होने की तारीख और समय पहले का है वे इस फ़िल्टर की शर्त पूरी नहीं करती हैं. कुकी की समयावधि का हिसाब, कुकी के 'max-age' या 'expires' एट्रिब्यूट से लगाया जाता है. अगर दोनों को सेट किया जाता है, तो कुकी के लाइफ़टाइम का हिसाब लगाने के लिए 'max-age' का इस्तेमाल किया जाता है.

  • डोमेन

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

    Domain कुकी एट्रिब्यूट की वैल्यू.

  • समयसीमा खत्म हो जाती है

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

    Expires कुकी एट्रिब्यूट की वैल्यू.

  • httpOnly

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

    HttpOnly कुकी एट्रिब्यूट का मौजूद होना.

  • maxAge

    number optional

    Max-Age कुकी एट्रिब्यूट की वैल्यू

  • नाम

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

    कुकी का नाम.

  • पाथ

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

    पाथ कुकी एट्रिब्यूट की वैल्यू.

  • सुरक्षित

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

    सुरक्षित कुकी एट्रिब्यूट मौजूद होना चाहिए.

  • sessionCookie

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

    यह सेशन कुकी को फ़िल्टर करता है. सेशन कुकी के लिए, 'max-age' या 'expires' एट्रिब्यूट में से किसी में भी समयसीमा तय नहीं की गई है.

  • मान

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

    कुकी की वैल्यू को डबल कोट में पैड किया जा सकता है.

HeaderFilter

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

प्रॉपर्टी

  • nameContains

    string | string[] ज़रूरी नहीं है

    अगर हेडर के नाम में बताई गई सभी स्ट्रिंग मौजूद हैं, तो यह शर्त पूरी होती है.

  • nameEquals

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

    अगर हेडर का नाम, तय की गई स्ट्रिंग के बराबर है, तो यह शर्त पूरी होती है.

  • namePrefix

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

    अगर हेडर का नाम, तय की गई स्ट्रिंग से शुरू होता है, तो यह शर्त पूरी होती है.

  • nameSuffix

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

    अगर हेडर का नाम, तय की गई स्ट्रिंग पर खत्म होता है, तो यह शर्त पूरी होती है.

  • valueContains

    string | string[] ज़रूरी नहीं है

    अगर हेडर वैल्यू में बताई गई सभी स्ट्रिंग मौजूद हैं, तो यह मैच करता है.

  • valueEquals

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

    अगर हेडर वैल्यू, दी गई स्ट्रिंग के बराबर है, तो यह शर्त पूरी होती है.

  • valuePrefix

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

    अगर हेडर वैल्यू, तय की गई स्ट्रिंग से शुरू होती है, तो यह शर्त पूरी होती है.

  • valueSuffix

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

    अगर हेडर वैल्यू, तय की गई स्ट्रिंग पर खत्म होती है, तो यह मैच करता है.

IgnoreRules

यह तय की गई शर्तों से मेल खाने वाले सभी नियमों को मास्क करता है.

प्रॉपर्टी

  • कंस्ट्रक्टर

    void

    constructor फ़ंक्शन इस तरह दिखता है:

    (arg: IgnoreRules) => {...}

  • hasTag

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

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

  • lowerPriorityThan

    number optional

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

RedirectByRegEx

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

प्रॉपर्टी

  • कंस्ट्रक्टर

    void

    constructor फ़ंक्शन इस तरह दिखता है:

    (arg: RedirectByRegEx) => {...}

  • से

    स्ट्रिंग

    मैच पैटर्न, जिसमें कैप्चर ग्रुप शामिल हो सकते हैं. RE2 सिंटैक्स (\1, \2, ...) के बजाय Perl सिंटैक्स ($1, $2, ...) में कैप्चर ग्रुप का रेफ़रंस दिया जाता है, ताकि JavaScript रेगुलर एक्सप्रेशन के ज़्यादा करीब हो.

  • से

    स्ट्रिंग

    डेस्टिनेशन पैटर्न.

RedirectRequest

नेटवर्क के अनुरोध को रीडायरेक्ट करने वाली इवेंट ऐक्शन.

प्रॉपर्टी

  • कंस्ट्रक्टर

    void

    constructor फ़ंक्शन इस तरह दिखता है:

    (arg: RedirectRequest) => {...}

  • redirectUrl

    स्ट्रिंग

    वह डेस्टिनेशन जहां अनुरोध को रीडायरेक्ट किया जाता है.

RedirectToEmptyDocument

यह इवेंट ऐक्शन, नेटवर्क अनुरोध को खाली दस्तावेज़ पर रीडायरेक्ट करता है.

प्रॉपर्टी

RedirectToTransparentImage

यह इवेंट ऐक्शन, नेटवर्क अनुरोध को पारदर्शी इमेज पर रीडायरेक्ट करता है.

प्रॉपर्टी

RemoveRequestCookie

यह कुकी, अनुरोध की एक या उससे ज़्यादा कुकी हटाती है. ध्यान दें कि Cookies API का इस्तेमाल करना बेहतर होता है, क्योंकि इसमें कंप्यूटेशनल लागत कम होती है.

प्रॉपर्टी

  • कंस्ट्रक्टर

    void

    constructor फ़ंक्शन इस तरह दिखता है:

    (arg: RemoveRequestCookie) => {...}

  • फ़िल्टर

    उन कुकी के लिए फ़िल्टर जिन्हें हटाया जाएगा. खाली एंट्री को अनदेखा कर दिया जाता है.

RemoveRequestHeader

दिए गए नाम के अनुरोध का हेडर हटाता है. एक ही अनुरोध पर, SetRequestHeader और RemoveRequestHeader का इस्तेमाल एक साथ न करें. हर अनुरोध में, अनुरोध का हेडर नाम सिर्फ़ एक बार दिखता है.

प्रॉपर्टी

  • कंस्ट्रक्टर

    void

    constructor फ़ंक्शन इस तरह दिखता है:

    (arg: RemoveRequestHeader) => {...}

  • नाम

    स्ट्रिंग

    एचटीटीपी अनुरोध के हेडर का नाम (केस-इनसेंसिटिव).

RemoveResponseCookie

यह कुकी, रिस्पॉन्स की एक या उससे ज़्यादा कुकी हटाती है. ध्यान दें कि Cookies API का इस्तेमाल करना बेहतर होता है, क्योंकि इसमें कंप्यूटेशनल लागत कम होती है.

प्रॉपर्टी

  • कंस्ट्रक्टर

    void

    constructor फ़ंक्शन इस तरह दिखता है:

    (arg: RemoveResponseCookie) => {...}

  • फ़िल्टर

    उन कुकी के लिए फ़िल्टर जिन्हें हटाया जाएगा. खाली एंट्री को अनदेखा कर दिया जाता है.

RemoveResponseHeader

यह कुकी, तय किए गए नामों और वैल्यू वाले सभी रिस्पॉन्स हेडर हटा देती है.

प्रॉपर्टी

  • कंस्ट्रक्टर

    void

    constructor फ़ंक्शन इस तरह दिखता है:

    (arg: RemoveResponseHeader) => {...}

  • नाम

    स्ट्रिंग

    एचटीटीपी अनुरोध के हेडर का नाम (केस-इनसेंसिटिव).

  • मान

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

    एचटीटीपी अनुरोध के हेडर की वैल्यू (केस-इनसेंसिटिव).

RequestCookie

एचटीटीपी अनुरोधों में कुकी का फ़िल्टर या स्पेसिफ़िकेशन.

प्रॉपर्टी

  • नाम

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

    कुकी का नाम.

  • मान

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

    कुकी की वैल्यू को डबल कोट में पैड किया जा सकता है.

RequestMatcher

यह कुकी, अलग-अलग शर्तों के हिसाब से नेटवर्क इवेंट मैच करती है.

प्रॉपर्टी

  • कंस्ट्रक्टर

    void

    constructor फ़ंक्शन इस तरह दिखता है:

    (arg: RequestMatcher) => {...}

  • contentType

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

    अगर एचटीटीपी कॉन्टेंट-टाइप हेडर से मिले रिस्पॉन्स का एमआईएमई मीडिया टाइप, सूची में शामिल है, तो यह शर्त पूरी होती है.

  • excludeContentType

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

    अगर एचटीटीपी कॉन्टेंट-टाइप हेडर से मिले रिस्पॉन्स का एमआईएमई मीडिया टाइप, सूची में नहीं है, तो यह शर्त पूरी होती है.

  • excludeRequestHeaders

    HeaderFilter[] optional

    अगर कोई भी अनुरोध हेडर, किसी भी HeaderFilter से मैच नहीं होता है, तो यह शर्त पूरी होती है.

  • excludeResponseHeaders

    HeaderFilter[] optional

    यह तब मैच करता है, जब कोई भी HeaderFilter, रिस्पॉन्स हेडर से मैच नहीं करता.

  • firstPartyForCookiesUrl

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

    अब काम नहीं करता

    इसे वर्शन 82 से अनदेखा किया जा रहा है.

    अगर अनुरोध के 'पहले पक्ष' के यूआरएल के लिए, UrlFilter की शर्तें पूरी होती हैं, तो यह मैच करता है. अगर अनुरोध में 'पहले पक्ष' का यूआरएल मौजूद है, तो यह अनुरोध के टारगेट यूआरएल से अलग हो सकता है. इससे यह पता चलता है कि कुकी की तीसरे पक्ष की जांच के लिए, 'पहले पक्ष' के तौर पर किसे माना जाता है.

  • requestHeaders

    HeaderFilter[] optional

    अगर अनुरोध के कुछ हेडर, HeaderFilters में से किसी एक से मैच करते हैं, तो यह शर्त पूरी होती है.

  • resourceType

    ResourceType[] optional

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

  • responseHeaders

    HeaderFilter[] optional

    अगर कुछ रिस्पॉन्स हेडर, किसी HeaderFilters से मैच करते हैं, तो यह शर्त पूरी होती है.

  • स्टेज

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

    इसमें स्ट्रिंग की एक सूची होती है, जिसमें चरणों के बारे में बताया गया होता है. इन वैल्यू का इस्तेमाल किया जा सकता है: 'onBeforeRequest', 'onBeforeSendHeaders', 'onHeadersReceived', 'onAuthRequired'. अगर यह एट्रिब्यूट मौजूद है, तो यह उन चरणों को सीमित करता है जिन पर यह लागू होता है. ध्यान दें कि पूरी शर्त सिर्फ़ उन चरणों में लागू होती है जो सभी एट्रिब्यूट के साथ काम करते हैं.

  • thirdPartyForCookies

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

    अब काम नहीं करता

    इसे वर्शन 87 के बाद से अनदेखा किया जाता है.

    अगर इसे 'सही है' पर सेट किया जाता है, तो यह उन अनुरोधों से मेल खाता है जिन पर तीसरे पक्ष की कुकी की नीतियां लागू होती हैं. इसे false पर सेट करने पर, यह अन्य सभी अनुरोधों से मैच करता है.

  • url

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

    अगर अनुरोध के यूआरएल के लिए, UrlFilter की शर्तें पूरी होती हैं, तो यह मैच करता है.

ResponseCookie

एचटीटीपी रिस्पॉन्स में कुकी की खास जानकारी.

प्रॉपर्टी

  • डोमेन

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

    Domain कुकी एट्रिब्यूट की वैल्यू.

  • समयसीमा खत्म हो जाती है

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

    Expires कुकी एट्रिब्यूट की वैल्यू.

  • httpOnly

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

    HttpOnly कुकी एट्रिब्यूट का मौजूद होना.

  • maxAge

    number optional

    Max-Age कुकी एट्रिब्यूट की वैल्यू

  • नाम

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

    कुकी का नाम.

  • पाथ

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

    पाथ कुकी एट्रिब्यूट की वैल्यू.

  • सुरक्षित

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

    सुरक्षित कुकी एट्रिब्यूट मौजूद है.

  • मान

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

    कुकी की वैल्यू को डबल कोट में पैड किया जा सकता है.

SendMessageToExtension

यह declarativeWebRequest.onMessage इवेंट को ट्रिगर करता है.

प्रॉपर्टी

  • कंस्ट्रक्टर

    void

    constructor फ़ंक्शन इस तरह दिखता है:

    (arg: SendMessageToExtension) => {...}

  • मैसेज

    स्ट्रिंग

    यह वह वैल्यू है जिसे इवेंट हैंडलर को पास की गई डिक्शनरी के message एट्रिब्यूट में पास किया जाएगा.

SetRequestHeader

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

प्रॉपर्टी

  • कंस्ट्रक्टर

    void

    constructor फ़ंक्शन इस तरह दिखता है:

    (arg: SetRequestHeader) => {...}

  • नाम

    स्ट्रिंग

    एचटीटीपी अनुरोध के हेडर का नाम.

  • मान

    स्ट्रिंग

    एचटीटीपी अनुरोध के हेडर की वैल्यू.

Stage

Enum

"onBeforeRequest"

"onBeforeSendHeaders"

"onHeadersReceived"

"onAuthRequired"

इवेंट

onMessage

chrome.declarativeWebRequest.onMessage.addListener(
  callback: function,
)

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (details: object) => void

    • ब्यौरा

      ऑब्जेक्ट

      • documentId

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

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

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

      • frameId

        संख्या

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

      • नेविगेशन किस तरह के फ़्रेम में हुआ.

      • मैसेज

        स्ट्रिंग

        कॉल करने वाली स्क्रिप्ट से भेजा गया मैसेज.

      • तरीका

        स्ट्रिंग

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

      • parentDocumentId

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

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

      • parentFrameId

        संख्या

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

      • requestId

        स्ट्रिंग

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

      • स्टेज

        नेटवर्क अनुरोध की वह स्टेज जिसके दौरान इवेंट ट्रिगर हुआ था.

      • tabId

        संख्या

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

      • timeStamp

        संख्या

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

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

      • url

        स्ट्रिंग

onRequest

Declarative Events API उपलब्ध कराता है. इसमें addRules, removeRules, और getRules शामिल हैं.

शर्तें