chrome.declarativeWebRequest

ब्यौरा

ध्यान दें: यह एपीआई अब काम नहीं करता. इसके बजाय, declarativeNetRequest API को इस्तेमाल करें. फ़्लाइट के दौरान अनुरोधों को रोकने, ब्लॉक करने या उनमें बदलाव करने के लिए, 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 पर रीडायरेक्ट करने के लिए नियम सेट नहीं कर सकता.

नियम

डिक्लेरेटिव वेब रिक्वेस्ट एपीआई, घोषणात्मक एपीआई के सिद्धांतों का पालन करता है. chrome.declarativeWebRequest.onRequest इवेंट ऑब्जेक्ट में, नियमों को रजिस्टर किया जा सकता है.

डिक्लेरेटिव वेब रिक्वेस्ट एपीआई, एक ही तरह के मैच से जुड़ी शर्तों, 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]);

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

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

उन स्टेज के अनुरोध करें जिनके दौरान, स्थिति के एट्रिब्यूट को प्रोसेस किया जा सकता है.
शर्त एट्रिब्यूट 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

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

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

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

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

प्रॉपर्टी

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

    void

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

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

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

AddResponseCookie

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

प्रॉपर्टी

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

    void

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

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

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

AddResponseHeader

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

प्रॉपर्टी

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

    void

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

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

  • नाम

    स्ट्रिंग

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

  • value

    स्ट्रिंग

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

CancelRequest

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

प्रॉपर्टी

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

    void

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

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

EditRequestCookie

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

प्रॉपर्टी

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

    void

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

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

  • फ़िल्‍टर

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

  • संशोधन

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

EditResponseCookie

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

प्रॉपर्टी

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

    void

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

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

  • फ़िल्‍टर

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

  • संशोधन

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

FilterResponseCookie

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

प्रॉपर्टी

  • ageLowerBound

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

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

  • ageUpperBound

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

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

  • डोमेन

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

    डोमेन कुकी एट्रिब्यूट की वैल्यू.

  • ख़त्म होने की तारीख़

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

    समयसीमा खत्म होने वाली कुकी एट्रिब्यूट की वैल्यू.

  • httpOnly

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

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

  • maxAge

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

    ज़्यादा से ज़्यादा उम्र की कुकी एट्रिब्यूट की वैल्यू

  • नाम

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

    कुकी का नाम.

  • पाथ

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

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

  • सुरक्षित

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

    Secure कुकी एट्रिब्यूट की मौजूदगी.

  • sessionCookie

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

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

  • value

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

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

HeaderFilter

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

प्रॉपर्टी

  • nameContains

    string|string[] optional

    तब मैच करता है, जब हेडर के नाम में तय की गई सभी स्ट्रिंग शामिल होती हैं.

  • nameEquals

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

    हेडर का नाम, बताई गई स्ट्रिंग के बराबर होने पर मैच करता है.

  • namePrefix

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

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

  • nameSuffix

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

    हेडर का नाम, बताई गई स्ट्रिंग से खत्म होने पर मैच करता है.

  • valueContains

    string|string[] optional

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

  • valueEquals

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

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

  • valuePrefix

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

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

  • valueSuffix

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

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

IgnoreRules

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

प्रॉपर्टी

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

    void

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

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

  • hasTag

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

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

  • lowerPriorityThan

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

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

RedirectByRegEx

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

प्रॉपर्टी

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

    void

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

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

  • इन्होंने भेजा है

    स्ट्रिंग

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

  • से

    स्ट्रिंग

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

RedirectRequest

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

प्रॉपर्टी

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

    void

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

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

  • redirectUrl

    स्ट्रिंग

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

RedirectToEmptyDocument

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

प्रॉपर्टी

RedirectToTransparentImage

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

प्रॉपर्टी

RemoveRequestCookie

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

प्रॉपर्टी

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

    void

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

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

  • फ़िल्‍टर

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

RemoveRequestHeader

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

प्रॉपर्टी

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

    void

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

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

  • नाम

    स्ट्रिंग

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

RemoveResponseCookie

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

प्रॉपर्टी

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

    void

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

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

  • फ़िल्‍टर

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

RemoveResponseHeader

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

प्रॉपर्टी

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

    void

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

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

  • नाम

    स्ट्रिंग

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

  • value

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

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

RequestCookie

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

प्रॉपर्टी

  • नाम

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

    कुकी का नाम.

  • value

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

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

RequestMatcher

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

प्रॉपर्टी

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

    void

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

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

  • contentType

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

    यह तब मैच करता है, जब किसी रिस्पॉन्स का MIME मीडिया टाइप (एचटीटीपी कॉन्टेंट-टाइप हेडर से) सूची में शामिल हो.

  • excludeContentType

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

    यह तब मैच करता है, जब किसी रिस्पॉन्स का MIME मीडिया टाइप (एचटीटीपी कॉन्टेंट-टाइप हेडर से) सूची में शामिल नहीं हो.

  • excludeRequestHeaders

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

    यह तब मैच करता है, जब किसी भी अनुरोध हेडर का मिलान किसी भी Headerfilter से नहीं होता.

  • excludeResponseHeaders

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

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

  • firstPartyForCookiesUrl

    UrlFilter ज़रूरी नहीं

    अब सेवा में नहीं है

    रिलीज़ 82 के बाद से अनदेखा किया गया.

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

  • requestHeaders

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

    यह तब मैच करता है, जब कुछ अनुरोध हेडर का मिलान किसी Headerfilter से करने पर होता है.

  • resourceType

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

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

  • responseHeaders

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

    यह तब मैच करता है, जब कुछ रिस्पॉन्स हेडर, Headerfilter में से किसी एक से मैच होते हैं.

  • स्टेज

    स्टेज[] ज़रूरी नहीं है

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

  • thirdPartyForCookies

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

    अब सेवा में नहीं है

    रिलीज़ 87 के बाद से अनदेखा किया गया.

    अगर नीति को 'सही है' पर सेट किया जाता है, तो ऐसे अनुरोधों से मेल खाता है जो तीसरे पक्ष की कुकी नीतियों के तहत आते हैं. अगर यह नीति 'गलत है' पर सेट है, तो यह बाकी सभी अनुरोधों से मेल खाता है.

  • यूआरएल

    UrlFilter ज़रूरी नहीं

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

ResponseCookie

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

प्रॉपर्टी

  • डोमेन

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

    डोमेन कुकी एट्रिब्यूट की वैल्यू.

  • ख़त्म होने की तारीख़

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

    समयसीमा खत्म होने वाली कुकी एट्रिब्यूट की वैल्यू.

  • httpOnly

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

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

  • maxAge

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

    ज़्यादा से ज़्यादा उम्र की कुकी एट्रिब्यूट की वैल्यू

  • नाम

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

    कुकी का नाम.

  • पाथ

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

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

  • सुरक्षित

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

    Secure कुकी एट्रिब्यूट की मौजूदगी.

  • value

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

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

SendMessageToExtension

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

प्रॉपर्टी

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

    void

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

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

  • ग्राहक का मैसेज

    स्ट्रिंग

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

SetRequestHeader

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

प्रॉपर्टी

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

    void

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

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

  • नाम

    स्ट्रिंग

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

  • value

    स्ट्रिंग

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

Stage

Enum

"onBeforeRequest"

"onBeforeSendHeaders"

"onHeadersReceived"

इवेंट

onMessage

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (details: object)=>void

    • विवरण

      ऑब्जेक्ट

      • documentId

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

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

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

      • frameId

        नंबर

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

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

      • ग्राहक का मैसेज

        स्ट्रिंग

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

      • method

        स्ट्रिंग

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

      • parentDocumentId

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

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

      • parentFrameId

        नंबर

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

      • requestId

        स्ट्रिंग

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

      • स्टेज

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

      • tabId

        नंबर

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

      • timeStamp

        नंबर

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

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

      • यूआरएल

        स्ट्रिंग

onRequest

एलान वाले इवेंट का एपीआई उपलब्ध कराता है. इसमें addRules, removeRules, और getRules शामिल हैं.

शर्तें