chrome.declarativeWebRequest

ब्यौरा

ध्यान दें: इस एपीआई का इस्तेमाल अब नहीं किया जा सकेगा. इसके बजाय, 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 का इस्तेमाल करना बेहतर होता है, क्योंकि इसमें कंप्यूटेशनल लागत कम होती है.

प्रॉपर्टी

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

    अमान्य

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

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

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

AddResponseCookie

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

प्रॉपर्टी

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

    अमान्य

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

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

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

AddResponseHeader

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

प्रॉपर्टी

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

    अमान्य

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

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

  • नाम

    स्ट्रिंग

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

  • मान

    स्ट्रिंग

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

CancelRequest

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

प्रॉपर्टी

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

    अमान्य

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

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

EditRequestCookie

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

प्रॉपर्टी

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

    अमान्य

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

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

  • फ़िल्टर

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

  • बदलाव

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

EditResponseCookie

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

प्रॉपर्टी

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

    अमान्य

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

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

  • फ़िल्टर

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

  • बदलाव

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

FilterResponseCookie

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

प्रॉपर्टी

  • ageLowerBound

    number ज़रूरी नहीं

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

  • ageUpperBound

    number ज़रूरी नहीं

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

  • डोमेन

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

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

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

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

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

  • httpOnly

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

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

  • maxAge

    number ज़रूरी नहीं

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

  • नाम

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

    कुकी का नाम.

  • पाथ

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

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

  • सुरक्षित

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

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

  • sessionCookie

    boolean optional

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

  • मान

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

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

HeaderFilter

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

प्रॉपर्टी

  • nameContains

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

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

  • nameEquals

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

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

  • namePrefix

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

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

  • nameSuffix

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

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

  • valueContains

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

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

  • valueEquals

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

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

  • valuePrefix

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

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

  • valueSuffix

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

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

IgnoreRules

यह उन सभी नियमों को मास्क करता है जो तय की गई शर्तों को पूरा करते हैं.

प्रॉपर्टी

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

    अमान्य

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

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

  • hasTag

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

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

  • lowerPriorityThan

    number ज़रूरी नहीं

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

RedirectByRegEx

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

प्रॉपर्टी

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

    अमान्य

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

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

  • से

    स्ट्रिंग

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

  • से

    स्ट्रिंग

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

RedirectRequest

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

प्रॉपर्टी

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

    अमान्य

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

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

  • redirectUrl

    स्ट्रिंग

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

RedirectToEmptyDocument

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

प्रॉपर्टी

RedirectToTransparentImage

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

प्रॉपर्टी

RemoveRequestCookie

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

प्रॉपर्टी

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

    अमान्य

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

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

  • फ़िल्टर

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

RemoveRequestHeader

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

प्रॉपर्टी

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

    अमान्य

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

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

  • नाम

    स्ट्रिंग

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

RemoveResponseCookie

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

प्रॉपर्टी

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

    अमान्य

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

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

  • फ़िल्टर

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

RemoveResponseHeader

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

प्रॉपर्टी

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

    अमान्य

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

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

  • नाम

    स्ट्रिंग

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

  • मान

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

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

RequestCookie

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

प्रॉपर्टी

  • नाम

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

    कुकी का नाम.

  • मान

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

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

RequestMatcher

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

प्रॉपर्टी

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

    अमान्य

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

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

  • contentType

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

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

  • excludeContentType

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

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

  • excludeRequestHeaders

    HeaderFilter[] optional

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

  • excludeResponseHeaders

    HeaderFilter[] optional

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

  • firstPartyForCookiesUrl

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

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

    रिलीज़ 82 के बाद से इस पर ध्यान नहीं दिया जाता.

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

  • requestHeaders

    HeaderFilter[] optional

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

  • resourceType

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

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

  • responseHeaders

    HeaderFilter[] optional

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

  • स्टेज

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

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

  • thirdPartyForCookies

    boolean optional

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

    रिलीज़ 87 के बाद से इस पर ध्यान नहीं दिया जाता.

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

  • url

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

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

ResponseCookie

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

प्रॉपर्टी

  • डोमेन

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

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

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

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

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

  • httpOnly

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

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

  • maxAge

    number ज़रूरी नहीं

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

  • नाम

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

    कुकी का नाम.

  • पाथ

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

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

  • सुरक्षित

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

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

  • मान

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

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

SendMessageToExtension

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

प्रॉपर्टी

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

    अमान्य

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

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

  • मैसेज

    स्ट्रिंग

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

SetRequestHeader

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

प्रॉपर्टी

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

    अमान्य

    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 शामिल हैं.

शर्तें