ब्यौरा
chrome.declarativeNetRequest
एपीआई का इस्तेमाल, डिक्लेरेटिव नियमों को बताकर, नेटवर्क अनुरोधों को ब्लॉक करने या उनमें बदलाव करने के लिए किया जाता है. इसकी मदद से, एक्सटेंशन, नेटवर्क के अनुरोधों में बदलाव कर सकते हैं. साथ ही, अनुरोधों में उनके कॉन्टेंट को बीच में नहीं रोक सकते और न ही उनके कॉन्टेंट को देखा जा सकता है. इस तरह, एक्सटेंशन की निजता को बेहतर बनाया जाता है.
अनुमतियां
declarativeNetRequest
declarativeNetRequestWithHostAccess
"declarativeNetRequest
" और "declarativeNetRequestWithHostAccess
" से जुड़ी अनुमतियां
एक जैसी ही सुविधाएं देती हैं. अनुमतियों का अनुरोध किए जाने या अनुमति मिलने पर, इन दोनों में अंतर होता है.
"declarativeNetRequest"
- इंस्टॉल के समय अनुमति से जुड़ी चेतावनी ट्रिगर करता है, लेकिन
allow
,allowAllRequests
, औरblock
नियमों का इंप्लिसिट ऐक्सेस देता है. जब हो सके, तब इसका इस्तेमाल करें, ताकि होस्ट के पूरे ऐक्सेस का अनुरोध करने की ज़रूरत न पड़े. "declarativeNetRequestFeedback"
- यह अनपैक किए गए एक्सटेंशन के लिए, डीबग करने की सुविधाएं चालू करता है, खास तौर पर
getMatchedRules()
औरonRuleMatchedDebug
. "declarativeNetRequestWithHostAccess"
- इंस्टॉल के समय अनुमति की चेतावनी नहीं दिखाई जाती, लेकिन होस्ट पर कोई भी कार्रवाई करने से पहले आपको होस्ट की अनुमतियों के लिए अनुरोध करना होगा. यह तब सही होता है, जब आपको किसी ऐसे एक्सटेंशन में डिक्लेरेटिव नेट अनुरोध नियमों का इस्तेमाल करना हो जिसमें पहले से ही होस्ट करने की अनुमतियां हैं और वह भी अतिरिक्त चेतावनियां जनरेट नहीं करता.
उपलब्धता
मेनिफ़ेस्ट
पहले बताई गई अनुमतियों के अलावा, खास तरह के नियमसेट, स्टैटिक नियमसेट के लिए, "declarative_net_request"
मेनिफ़ेस्ट कुंजी का एलान करना ज़रूरी होता है. यह एक ऐसी डिक्शनरी होनी चाहिए जिसमें "rule_resources"
नाम की एक कुंजी हो. यह कुंजी Ruleset
टाइप की डिक्शनरी वाली कैटगरी है, जैसा कि यहां दिखाया गया है. (ध्यान दें कि मेनिफ़ेस्ट के JSON में 'Ruleset' नाम नहीं दिखता, क्योंकि यह सिर्फ़ एक कलेक्शन है.) स्टैटिक नियमों के बारे में इस दस्तावेज़ में आगे बताया गया है.
{
"name": "My extension",
...
"declarative_net_request" : {
"rule_resources" : [{
"id": "ruleset_1",
"enabled": true,
"path": "rules_1.json"
}, {
"id": "ruleset_2",
"enabled": false,
"path": "rules_2.json"
}]
},
"permissions": [
"declarativeNetRequest",
"declarativeNetRequestFeedback",
],
"host_permissions": [
"http://www.blogger.com/*",
"http://*.google.com/*"
],
...
}
सिद्धांत और इस्तेमाल
इस API का उपयोग करने के लिए, एक या एक से ज़्यादा नियमसेट दर्ज करें. नियमसेट में नियमों की एक सूची होती है. एक नियम इनमें से कोई एक काम करता है:
- नेटवर्क अनुरोध को ब्लॉक करें.
- स्कीमा को एचटीटीपी से एचटीटीपीएस पर अपग्रेड करें.
- मिलते-जुलते ब्लॉक किए गए नियमों को अनदेखा करके, अनुरोध को ब्लॉक होने से रोकें.
- नेटवर्क अनुरोध को रीडायरेक्ट करें.
- अनुरोध या रिस्पॉन्स हेडर में बदलाव करें.
नियम तीन तरह के होते हैं, जिन्हें अलग-अलग तरीकों से मैनेज किया जाता है.
- डाइनैमिक
- यह सुविधा ब्राउज़र सेशन और एक्सटेंशन के सभी अपग्रेड में काम करती है. साथ ही, किसी एक्सटेंशन के इस्तेमाल में होने पर, उसे JavaScript से मैनेज किया जाता है.
- सेशन
- ब्राउज़र के बंद होने और एक्सटेंशन का नया वर्शन इंस्टॉल होने पर साफ़ हो जाता है. सेशन के नियमों को JavaScript का इस्तेमाल करके मैनेज किया जाता है. ऐसा तब किया जाता है, जब किसी एक्सटेंशन का इस्तेमाल किया जा रहा हो.
- स्थायी
- किसी एक्सटेंशन के इंस्टॉल या अपग्रेड होने के बाद, पैकेज को पैक, इंस्टॉल, और अपडेट किया जाता है. स्टैटिक नियम, JSON फ़ॉर्मैट वाली नियम फ़ाइलों में सेव होते हैं और मेनिफ़ेस्ट फ़ाइल में शामिल होते हैं.
अगले कुछ सेक्शन में, रूल के टाइप के बारे में पूरी जानकारी दी गई है.
डाइनैमिक और सेशन के स्कोप वाले नियम
किसी एक्सटेंशन के इस्तेमाल के दौरान, डाइनैमिक और सेशन के नियमों के सेट को JavaScript का इस्तेमाल करके मैनेज किया जाता है.
- डाइनैमिक नियम, ब्राउज़र सेशन और एक्सटेंशन के अपग्रेड में लागू होते हैं.
- ब्राउज़र के बंद होने और एक्सटेंशन का नया वर्शन इंस्टॉल होने पर, सेशन के नियम हटा दिए जाते हैं.
इनमें से हर एक तरह का नियम सेट है. कोई एक्सटेंशन, updateDynamicRules()
और updateSessionRules()
को कॉल करके नियमों को डाइनैमिक तौर पर जोड़ या हटा सकता है, बशर्ते कि नियम की सीमाएं पार न हों. नियम की सीमाओं के बारे में जानकारी के लिए, नियम की सीमाएं देखें. कोड के उदाहरण में जाकर, इसका उदाहरण देखा जा सकता है.
स्टैटिक नियम सेट
डाइनैमिक और सेशन नियमों के उलट, स्टैटिक नियम तब पैकेज किए जाते हैं, इंस्टॉल किए जाते हैं, और अपडेट किए जाते हैं, जब एक्सटेंशन इंस्टॉल या अपग्रेड होता है. इन्हें JSON फ़ॉर्मैट में नियम फ़ाइलों में सेव किया जाता है. इन्हें ऊपर बताए गए तरीके से, "declarative_net_request"
और "rule_resources"
कुंजियों के साथ-साथ एक या एक से ज़्यादा Ruleset
डिक्शनरी का इस्तेमाल करके एक्सटेंशन के लिए बताया जाता है. Ruleset
डिक्शनरी में नियम फ़ाइल का पाथ, फ़ाइल में मौजूद रूलसेट का आईडी, और रूलसेट चालू है या नहीं, यह जानकारी होती है. जब आप किसी नियमसेट को प्रोग्राम के हिसाब से चालू या बंद करते हैं, तो आखिरी दो चीज़ें अहम होती हैं.
{
...
"declarative_net_request" : {
"rule_resources" : [{
"id": "ruleset_1",
"enabled": true,
"path": "rules_1.json"
},
...
]
}
...
}
नियम फ़ाइलों को टेस्ट करने के लिए, अपने एक्सटेंशन को अनपैक करें पर क्लिक करें. अमान्य स्टैटिक नियमों से जुड़ी गड़बड़ियां और चेतावनियां, सिर्फ़ अनपैक किए गए एक्सटेंशन के लिए दिखती हैं. पैक किए गए एक्सटेंशन में अमान्य स्टैटिक नियमों को अनदेखा किया जाता है.
स्टैटिक नियम और नियम सेट चालू और बंद करें
रनटाइम के दौरान, अलग-अलग स्टैटिक नियम और पूरे स्टैटिक नियम, दोनों चालू या बंद किए जा सकते हैं.
चालू स्टैटिक नियमों और नियमों का सेट, सभी ब्राउज़र सेशन में बना रहता है. दोनों ही एक्सटेंशन के अपडेट लागू नहीं होते. इसका मतलब यह है कि अपडेट के बाद, नियम फ़ाइलों में सिर्फ़ वे नियम उपलब्ध होंगे जिन्हें आपने छोड़ने के लिए चुना है.
परफ़ॉर्मेंस की वजह से, एक बार में चालू हो सकने वाले नियमों और नियमों की संख्या की सीमाएं भी तय होती हैं. चालू किए जा सकने वाले अन्य नियमों की संख्या देखने के लिए, getAvailableStaticRuleCount()
पर कॉल करें. नियम की सीमाओं के बारे में जानकारी के लिए, नियम की सीमाएं देखें.
स्टैटिक नियमों को चालू या बंद करने के लिए, updateStaticRules()
को कॉल करें. इस तरीके के लिए, UpdateStaticRulesOptions
ऑब्जेक्ट का इस्तेमाल किया जाता है. इस ऑब्जेक्ट में, चालू या बंद करने के लिए नियमों के आईडी का कलेक्शन मौजूद होता है. आईडी, Ruleset
शब्दकोश की "id"
कुंजी का इस्तेमाल करके तय किए जाते हैं.
स्टैटिक rulesets सुविधा चालू या बंद करने के लिए, updateEnabledRulesets()
को कॉल करें. इस तरीके में UpdateRulesetOptions
ऑब्जेक्ट को शामिल किया जाता है. इसमें, चालू या बंद करने के लिए नियमों के आईडी के कलेक्शन मौजूद होते हैं. आईडी, Ruleset
शब्दकोश की "id"
कुंजी का इस्तेमाल करके तय किए जाते हैं.
नियम बनाएं
चाहे किसी भी तरह का हो, नियम चार फ़ील्ड से शुरू होता है, जैसा कि यहां दिखाया गया है. "id"
और "priority"
बटन किसी संख्या का इस्तेमाल करते हैं, लेकिन "action"
और "condition"
कुंजियां, ब्लॉक करने और रीडायरेक्ट करने की कई शर्तें उपलब्ध करा सकती हैं. यह नियम, "foo.com"
से आने वाले सभी स्क्रिप्ट अनुरोधों को ब्लॉक करता है. इन अनुरोधों को सबस्ट्रिंग के तौर पर, "abc"
वाले किसी भी यूआरएल पर ब्लॉक किया जाता है.
{
"id" : 1,
"priority": 1,
"action" : { "type" : "block" },
"condition" : {
"urlFilter" : "abc",
"initiatorDomains" : ["foo.com"],
"resourceTypes" : ["script"]
}
}
यूआरएल फ़िल्टर से मिलते-जुलते वर्ण
किसी नियम की "condition"
कुंजी, किसी खास डोमेन के यूआरएल पर कार्रवाई करने के लिए, "urlFilter"
कुंजी की अनुमति देती है. पैटर्न से मेल खाने वाले टोकन का इस्तेमाल करके, पैटर्न बनाए जाते हैं. यहां कुछ उदाहरण दिए गए हैं.
urlFilter |
मैच करती स्ट्रिंग | मिलान नहीं होता है |
---|---|---|
"abc" |
https://abcd.com https://example.com/abcd |
https://ab.com |
"abc*d" |
https://abcd.com https://example.com/abcxyzd |
https://abc.com |
"||a.example.com" |
https://a.example.com/ https://b.a.example.com/xyz |
https://example.com/ |
"|https*" |
https://example.com | http://example.com/ http://https.com |
"example*^123|" |
https://example.com/123 http://abc.com/example?123 |
https://example.com/1234 https://abc.com/example0123 |
नियम की प्राथमिकता
वेब पेजों से भेजे गए अनुरोधों से नियम ट्रिगर होते हैं. अगर किसी खास अनुरोध से कई नियम मेल खाते हैं, तो नियमों को प्राथमिकता देनी चाहिए. इस सेक्शन में बताया गया है कि इन सेटिंग को किस तरह प्राथमिकता दी गई है. प्राथमिकता तय करने का काम दो चरणों में होता है.
- प्राथमिकता, एक्सटेंशन के नियमों के लिए तय की जाती है.
- अगर किसी अनुरोध पर एक से ज़्यादा एक्सटेंशन के नियम लागू किए जा सकते हैं, तो किसी खास अनुरोध से मेल खाने वाले सभी एक्सटेंशन को प्राथमिकता दी जाती है.
इस तरीके से मिलान करने पर विचार करें: फिर किसी विशेष एक्सटेंशन के किसी भी नियम को प्राथमिकता दी जाएगी, उसे अन्य एक्सटेंशन के नियमों के मुकाबले प्राथमिकता दी जाएगी.
एक्सटेंशन में नियम की प्राथमिकता तय करना
सिर्फ़ एक एक्सटेंशन में, प्राथमिकता तय करने के लिए नीचे दी गई प्रक्रिया का इस्तेमाल किया जाता है:
- डेवलपर की तय की गई सबसे ज़्यादा प्राथमिकता वाला नियम (दूसरे शब्दों में,
"priority"
फ़ील्ड) दिखाया जाता है. अगर डेवलपर की तय की गई प्राथमिकता वाले एक से ज़्यादा नियम हैं, तो
"action"
फ़ील्ड का इस्तेमाल करके नियमों को नीचे दिए गए क्रम में प्राथमिकता दी जाती है:allow
allowAllRequests
block
upgradeScheme
redirect
अगर कार्रवाई का टाइप
block
याredirect
नहीं है, तो मिलते-जुलतेmodifyHeaders
नियमों का आकलन किया जाता है. ध्यान रखें कि अगर डेवलपर की तय की गई प्राथमिकता की प्राथमिकता वाला कोई नियम,allow
औरallowAllRequests
के लिए तय प्राथमिकता से कम है, तो ऐसे नियमों को अनदेखा कर दिया जाता है.अगर कई नियम एक ही हेडर में बदलाव करते हैं, तो बदलाव को डेवलपर के तय किए गए
"priority"
फ़ील्ड और बताई गई कार्रवाइयों के हिसाब से तय किया जाता है.- अगर कोई नियम किसी हेडर से जोड़ा जाता है, तो कम प्राथमिकता वाले नियम सिर्फ़ उस हेडर में जोड़े जा सकते हैं. सेट करने और हटाने की कार्रवाइयां नहीं की जा सकतीं.
- अगर कोई नियम हेडर सेट करता है, तो कम प्राथमिकता वाले नियम सिर्फ़ उस हेडर में जोड़े जा सकते हैं. दूसरे बदलाव करने की अनुमति नहीं है.
- अगर कोई नियम हेडर को हटा देता है, तो कम प्राथमिकता वाले नियम हेडर में और बदलाव नहीं कर सकते.
एक्सटेंशन के बीच नियम की प्राथमिकता तय करना
अगर सिर्फ़ एक एक्सटेंशन में किसी अनुरोध से मेल खाने वाला नियम है, तो वह नियम लागू होता है. अगर किसी अनुरोध से एक से ज़्यादा एक्सटेंशन मैच होते हैं, तो इस प्रोसेस का इस्तेमाल किया जाता है:
"action"
फ़ील्ड का इस्तेमाल करके, नियमों को नीचे दिए गए क्रम में प्राथमिकता दी जाती है:block
redirect
याupgradeScheme
allow
याallowAllRequests
अगर एक से ज़्यादा नियम मेल खाते हैं, तो सबसे हाल में इंस्टॉल किए गए एक्सटेंशन को प्राथमिकता दी जाती है.
नियम की सीमाएं
ब्राउज़र में नियमों को लोड करने और उनका आकलन करने में परफ़ॉर्मेंस ओवरहेड का इस्तेमाल होता है. इसलिए, एपीआई का इस्तेमाल करते समय कुछ सीमाएं लागू होती हैं. सीमाएं इस पर निर्भर करती हैं कि आप किस तरह के नियम का इस्तेमाल कर रहे हैं.
स्टैटिक नियम
स्टैटिक नियम वे होते हैं जिनके बारे में मेनिफ़ेस्ट फ़ाइल में बताई गई, नियम फ़ाइलों में किया जाता है. कोई एक्सटेंशन "rule_resources"
मेनिफ़ेस्ट कुंजी के हिस्से के रूप में, ज़्यादा से ज़्यादा 100 स्टैटिक rulesets तय कर सकता है, लेकिन एक बार में इनमें से सिर्फ़ 50 नियम ही चालू किए जा सकते हैं. बाद वाले को MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
कहा जाता है. सामूहिक रूप से, उन नियमों के कम से कम 30,000 नियम की गारंटी दी जाती है. इस नाम को GUARANTEED_MINIMUM_STATIC_RULES
कहा जाता है.
इसके बाद उपलब्ध नियमों की संख्या इस बात पर निर्भर करती है कि उपयोगकर्ता के ब्राउज़र पर इंस्टॉल किए गए सभी एक्सटेंशन के ज़रिए कितने नियम चालू किए गए हैं. रनटाइम के दौरान यह नंबर देखने के लिए, getAvailableStaticRuleCount()
पर कॉल करें. कोड के उदाहरण में जाकर, इसका उदाहरण देखा जा सकता है.
सेशन के नियम
किसी एक्सटेंशन में, सेशन के ज़्यादा से ज़्यादा 5,000 नियम हो सकते हैं. इसे MAX_NUMBER_OF_SESSION_RULES
के तौर पर दिखाया गया है.
Chrome 120 से पहले, डाइनैमिक और सेशन के नियमों की संख्या 5,000 हो सकती थी.
डाइनैमिक नियम
किसी एक्सटेंशन में कम से कम 5000 डाइनैमिक नियम हो सकते हैं. इसे MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
के तौर पर दिखाया गया है.
Chrome 121 और उसके बाद के वर्शन में, सुरक्षित डाइनैमिक नियमों के लिए ज़्यादा से ज़्यादा 30,000 नियम उपलब्ध हैं. इन्हें MAX_NUMBER_OF_DYNAMIC_RULES
कहा जाता है. सुरक्षित नियमों को ऐसे नियमों के तौर पर बताया जाता है जिनके लिए block
, allow
, allowAllRequests
या upgradeScheme
कार्रवाई की जाती है. 5,000 की सीमा के अंदर जोड़े गए किसी भी असुरक्षित नियम को भी इस सीमा में गिना जाएगा.
Chrome 120 से पहले, डाइनैमिक और सेशन के नियमों की सीमा 5,000 थी.
रेगुलर एक्सप्रेशन का इस्तेमाल करने वाले नियम
सभी तरह के नियम, रेगुलर एक्सप्रेशन का इस्तेमाल कर सकते हैं. हालांकि, हर टाइप के रेगुलर एक्सप्रेशन के नियमों की कुल संख्या 1,000 से ज़्यादा नहीं हो सकती. इसे MAX_NUMBER_OF_REGEX_RULES कहा जाता है.
इसके अलावा, कंपाइल किए जाने के बाद हर नियम का साइज़ 2 केबी से कम होना चाहिए. यह कुछ हद तक नियम की जटिलता से मेल खाता है. अगर आपने किसी ऐसे नियम को लोड करने की कोशिश की जो इस सीमा से ज़्यादा है, तो आपको नीचे दी गई चेतावनी के जैसी चेतावनी दिखेगी और नियम को अनदेखा कर दिया जाएगा.
rules_1.json: Rule with id 1 specified a more complex regex than allowed
as part of the "regexFilter" key.
सर्विस वर्कर के साथ इंटरैक्शन
deflarativeNetRequest सिर्फ़ नेटवर्क स्टैक तक पहुंचने वाले अनुरोधों पर लागू होता है. इसमें एचटीटीपी कैश मेमोरी से मिलने वाले जवाब शामिल हैं. हालांकि, इसमें सर्विस वर्कर के onfetch
हैंडलर से मिलने वाले जवाब शामिल नहीं हो सकते. declarativeNetRequest सर्विस वर्कर के जनरेट किए गए या CacheStorage
से वापस मिले जवाबों पर कोई असर नहीं डालेगा. हालांकि, इससे सर्विस वर्कर में किए गए fetch()
को किए जाने वाले कॉल पर असर पड़ेगा.
वेब ऐक्सेस करने लायक संसाधन
dilarativeNetRequest नियम, सार्वजनिक संसाधन के अनुरोध से किसी ऐसे संसाधन पर रीडायरेक्ट नहीं कर सकता जिसे वेब से ऐक्सेस नहीं किया जा सकता. ऐसा करने से गड़बड़ी ट्रिगर होती है. यह तब भी लागू होता है, जब बताए गए वेब ऐक्सेस करने लायक संसाधन का मालिकाना हक रीडायरेक्ट करने वाले एक्सटेंशन के पास हो. डिक्लेरेटिवNetRequest के लिए संसाधनों का एलान करने के लिए, मेनिफ़ेस्ट के "web_accessible_resources"
कलेक्शन का इस्तेमाल करें.
उदाहरण
कोड के उदाहरण
डाइनैमिक नियमों को अपडेट करना
नीचे दिए गए उदाहरण में, updateDynamicRules()
को कॉल करने का तरीका बताया गया है. updateSessionRules()
के लिए भी यही प्रक्रिया है.
// Get arrays containing new and old rules
const newRules = await getNewRules();
const oldRules = await chrome.declarativeNetRequest.getDynamicRules();
const oldRuleIds = oldRules.map(rule => rule.id);
// Use the arrays to update the dynamic rules
await chrome.declarativeNetRequest.updateDynamicRules({
removeRuleIds: oldRuleIds,
addRules: newRules
});
स्टैटिक नियमसेट अपडेट करें
यहां दिए गए उदाहरण में बताया गया है कि उपलब्ध नियमों की संख्या और चालू स्टैटिक नियमों की ज़्यादा से ज़्यादा संख्या को ध्यान में रखते हुए, नियमों की संख्या को चालू और बंद कैसे किया जाए. ऐसा तब किया जा सकता है, जब आपको स्टैटिक नियमों की संख्या, तय संख्या से ज़्यादा हो जाए. यह काम करे, इसके लिए आपके कुछ नियमसेट इंस्टॉल किए जाने चाहिए और कुछ नियमसेट बंद होने चाहिए (मेनिफ़ेस्ट फ़ाइल में "Enabled"
को false
पर सेट करना).
async function updateStaticRules(enableRulesetIds, disableCandidateIds) {
// Create the options structure for the call to updateEnabledRulesets()
let options = { enableRulesetIds: enableRulesetIds }
// Get the number of enabled static rules
const enabledStaticCount = await chrome.declarativeNetRequest.getEnabledRulesets();
// Compare rule counts to determine if anything needs to be disabled so that
// new rules can be enabled
const proposedCount = enableRulesetIds.length;
if (enabledStaticCount + proposedCount > chrome.declarativeNetRequest.MAX_NUMBER_OF_ENABLED_STATIC_RULESETS) {
options.disableRulesetIds = disableCandidateIds
}
// Update the enabled static rules
await chrome.declarativeNetRequest.updateEnabledRulesets(options);
}
नियम के उदाहरण
नीचे दिए गए उदाहरण यह दिखाते हैं कि Chrome किसी एक्सटेंशन में नियमों को कैसे प्राथमिकता देता है. उनकी समीक्षा करते समय, हो सकता है कि आप प्राथमिकता नियमों को किसी अलग विंडो में खोलना चाहें.
"प्राथमिकता" कुंजी
इन उदाहरणों के लिए, *://*.example.com/*
के लिए होस्ट की अनुमति की ज़रूरत होती है.
किसी खास यूआरएल की प्राथमिकता तय करने के लिए, (डेवलपर की ओर से तय की गई) "priority"
कुंजी, "action"
कुंजी, और "urlFilter"
कुंजी देखें. ये उदाहरण उनके नीचे दिखाई गई उदाहरण नियम फ़ाइल के बारे में बताते हैं.
- https://google.com पर जाना
- इस यूआरएल पर दो नियम शामिल हैं: 1 और 4 आईडी वाले नियम. आईडी 1 वाला नियम लागू होता है, क्योंकि
"redirect"
कार्रवाइयों के मुकाबले"block"
कार्रवाइयों को ज़्यादा प्राथमिकता मिलती है. बाकी नियम लागू नहीं होते, क्योंकि वे लंबे यूआरएल के लिए हैं. - https://google.com/1234 पर जाना
- लंबे यूआरएल की वजह से, अब आईडी 2 वाला नियम, आईडी 1 और 4 वाले नियमों के साथ मेल खाता है. आईडी 2 वाला नियम लागू होता है, क्योंकि
"allow"
की प्राथमिकता"block"
और"redirect"
से ज़्यादा है. - https://google.com/12345 पर जाना
- सभी चार नियम इस URL से मेल खाते हैं. आईडी 3 वाला नियम लागू होता है, क्योंकि डेवलपर की तय की गई प्राथमिकता, ग्रुप में सबसे ज़्यादा होती है.
[
{
"id": 1,
"priority": 1,
"action": { "type": "block" },
"condition": {"urlFilter": "google.com", "resourceTypes": ["main_frame"] }
},
{
"id": 2,
"priority": 1,
"action": { "type": "allow" },
"condition": { "urlFilter": "google.com/123", "resourceTypes": ["main_frame"] }
},
{
"id": 3,
"priority": 2,
"action": { "type": "block" },
"condition": { "urlFilter": "google.com/12345", "resourceTypes": ["main_frame"] }
},
{
"id": 4,
"priority": 1,
"action": { "type": "redirect", "redirect": { "url": "https://example.com" } },
"condition": { "urlFilter": "google.com", "resourceTypes": ["main_frame"] }
},
]
रीडायरेक्ट
नीचे दिए गए उदाहरण के मुताबिक, *://*.example.com/*
के लिए होस्ट की अनुमति ज़रूरी है.
नीचे दिए गए उदाहरण में, example.com से मिले अनुरोध को एक्सटेंशन के अंदर ही किसी पेज पर रीडायरेक्ट करने का तरीका बताया गया है. एक्सटेंशन पाथ /a.jpg
, chrome-extension://EXTENSION_ID/a.jpg
तक पहुंचाता है. यहां EXTENSION_ID
आपके एक्सटेंशन का आईडी है. यह काम करे, इसके लिए मेनिफ़ेस्ट को /a.jpg
को वेब से ऐक्सेस किए जा सकने वाले संसाधन के तौर पर बताना चाहिए.
{
"id": 1,
"priority": 1,
"action": { "type": "redirect", "redirect": { "extensionPath": "/a.jpg" } },
"condition": {
"urlFilter": "https://www.example.com",
"resourceTypes": ["main_frame"]
}
}
नीचे दी गई जानकारी, example.com के सबडोमेन पर रीडायरेक्ट करने के लिए "transform"
कुंजी का इस्तेमाल करती है. यह example.com की किसी स्कीम वाले अनुरोधों को रोकने के लिए, डोमेन नेम ऐंकर ("||") का इस्तेमाल करती है. "transform"
में मौजूद "scheme"
कुंजी से पता चलता है कि सबडोमेन पर रीडायरेक्ट करने के लिए, हमेशा "https" का इस्तेमाल किया जाएगा.
{
"id": 1,
"priority": 1,
"action": {
"type": "redirect",
"redirect": {
"transform": { "scheme": "https", "host": "new.example.com" }
}
},
"condition": {
"urlFilter": "||example.com",
"resourceTypes": ["main_frame"]
}
}
नीचे दिए गए उदाहरण में, https://www.abc.xyz.com/path
से https://abc.xyz.com/path
पर रीडायरेक्ट करने के लिए रेगुलर एक्सप्रेशन का इस्तेमाल किया गया है. "regexFilter"
कुंजी में देखें कि पीरियड कैसे एस्केप किए जाते हैं और कैप्चर करने वाला ग्रुप "abc" या "def" का विकल्प चुनता है. "regexSubstitution"
कुंजी, "\1" का इस्तेमाल करके रेगुलर एक्सप्रेशन के लौटाए गए पहले मैच को तय करती है. इस स्थिति में, "abc" को रीडायरेक्ट किए गए यूआरएल से कैप्चर कर लिया जाता है और उसे बदलकर रख दिया जाता है.
{
"id": 1,
"priority": 1,
"action": {
"type": "redirect",
"redirect": {
"regexSubstitution": "https://\\1.xyz.com/"
}
},
"condition": {
"regexFilter": "^https://www\\.(abc|def)\\.xyz\\.com/",
"resourceTypes": [
"main_frame"
]
}
}
हेडर
इस उदाहरण में, मुख्य फ़्रेम और सब फ़्रेम, दोनों से सभी कुकी को हटाया गया है.
{
"id": 1,
"priority": 1,
"action": {
"type": "modifyHeaders",
"requestHeaders": [{ "header": "cookie", "operation": "remove" }]
},
"condition": { "resourceTypes": ["main_frame", "sub_frame"] }
}
टाइप
DomainType
इससे पता चलता है कि जिस फ़्रेम में अनुरोध किया गया था वह पहला है या तीसरा पक्ष. किसी अनुरोध को पहला पक्ष माना जाता है. ऐसा तब होता है, जब उसका डोमेन (eTLD+1) वही होता है जो अनुरोध करने वाले फ़्रेम से मिलता है.
Enum
"firstParty"
नेटवर्क अनुरोध उस फ़्रेम में पहला पक्ष है जहां से यह शुरू हुआ है.
"तीसरा पक्ष"
नेटवर्क अनुरोध उस फ़्रेम का तीसरा पक्ष है जहां से यह शुरू हुआ है.
ExtensionActionOptions
प्रॉपर्टी
-
displayActionCountAsBadgeText
बूलियन ज़रूरी नहीं
किसी पेज की कार्रवाई की संख्या को, एक्सटेंशन के बैज टेक्स्ट के तौर पर अपने-आप दिखाना है या नहीं. यह प्राथमिकता सभी सेशन में बनी रहती है.
-
tabUpdate
TabActionCountUpdate ज़रूरी नहीं
Chrome 89+टैब की कार्रवाई की संख्या को अडजस्ट करने के बारे में जानकारी.
GetDisabledRuleIdsOptions
प्रॉपर्टी
-
rulesetId
स्ट्रिंग
स्टैटिक
Ruleset
से जुड़ा आईडी.
GetRulesFilter
प्रॉपर्टी
-
ruleIds
नंबर[] ज़रूरी नहीं
अगर तय किए गए हैं, तो सिर्फ़ मेल खाने वाले आईडी वाले नियम शामिल किए जाते हैं.
HeaderOperation
यह "modifyHeaders" नियम के लिए संभावित कार्रवाइयों के बारे में बताता है.
Enum
"append"
दिए गए हेडर के लिए एक नई एंट्री जोड़ता है. यह कार्रवाई, अनुरोध के हेडर के साथ काम नहीं करती.
"set"
तय किए गए हेडर के लिए एक नई वैल्यू सेट करता है. साथ ही, उसी नाम वाले मौजूदा हेडर को हटा देता है.
"remove"
दिए गए हेडर की सभी एंट्री हटाता है.
IsRegexSupportedResult
प्रॉपर्टी
-
isSupported
boolean
-
वजह
UnsupportedRegexReason ज़रूरी नहीं
रेगुलर एक्सप्रेशन के काम न करने की वजह बताता है. यह वैल्यू सिर्फ़ तब दी जाती है, जब
isSupported
गलत हो.
MatchedRule
प्रॉपर्टी
-
ruleId
नंबर
मिलते-जुलते नियम का आईडी.
-
rulesetId
स्ट्रिंग
उस
Ruleset
का आईडी, जिससे यह नियम जुड़ा है. डाइनैमिक नियमों के सेट से शुरू होने वाले नियम के लिए, यहDYNAMIC_RULESET_ID
के बराबर होगा.
MatchedRuleInfo
प्रॉपर्टी
-
नियम
-
tabId
नंबर
अगर टैब अब भी चालू है, तो उस टैब का TabId जिससे अनुरोध आया था. अन्य -1.
-
timeStamp
नंबर
नियम का मिलान होने का समय. टाइमस्टैंप, समय की JavaScript के मुताबिक होंगे. जैसे, epoch के बाद से मिलीसेकंड की संख्या.
MatchedRuleInfoDebug
प्रॉपर्टी
-
CANNOT TRANSLATE
उस अनुरोध की जानकारी जिसके लिए नियम का मिलान किया गया.
-
नियम
MatchedRulesFilter
प्रॉपर्टी
-
minTimeStamp
नंबर ज़रूरी नहीं
अगर बताया गया है, तो सिर्फ़ दिए गए टाइमस्टैंप के बाद के नियमों से मेल खाता है.
-
tabId
नंबर ज़रूरी नहीं
अगर बताया गया है, तो सिर्फ़ दिए गए टैब के नियमों से मेल खाता है. अगर किसी चालू टैब को -1 पर सेट किया जाता है, तो इससे उन नियमों से मेल खाता है जो किसी चालू टैब से नहीं जुड़े हैं.
ModifyHeaderInfo
प्रॉपर्टी
-
हेडर
स्ट्रिंग
बदलाव किए जाने वाले हेडर का नाम.
-
कार्रवाई
किसी हेडर पर की जाने वाली कार्रवाई.
-
value
स्ट्रिंग ज़रूरी नहीं
हेडर के लिए नई वैल्यू.
append
औरset
कार्रवाइयों के लिए तय होना ज़रूरी है.
QueryKeyValue
प्रॉपर्टी
-
बटन
स्ट्रिंग
-
replaceOnly
बूलियन ज़रूरी नहीं
Chrome 94 और इसके बाद के वर्शनअगर सही हो, तो क्वेरी कुंजी को सिर्फ़ तब बदला जाता है, जब वह पहले से मौजूद हो. ऐसा न होने पर, कुंजी के न होने पर भी उसे जोड़ दिया जाता है. डिफ़ॉल्ट तौर पर, यह 'गलत' पर सेट होता है.
-
value
स्ट्रिंग
QueryTransform
प्रॉपर्टी
-
addOrReplaceParams
QueryKeyValue[] ज़रूरी नहीं
जोड़े या बदले जाने वाले क्वेरी के-वैल्यू पेयर की सूची.
-
removeParams
स्ट्रिंग[] ज़रूरी नहीं है
हटाई जाने वाली क्वेरी कुंजियों की सूची.
Redirect
प्रॉपर्टी
-
extensionPath
स्ट्रिंग ज़रूरी नहीं
एक्सटेंशन डायरेक्ट्री से मिलता-जुलता पाथ. '/' से शुरू होना चाहिए.
-
regexSubstitution
स्ट्रिंग ज़रूरी नहीं
regexFilter
के बारे में बताने वाले नियमों के लिए सब्सिटिट्यूशन पैटर्न. यूआरएल मेंregexFilter
के पहले मिलान को इस पैटर्न से बदल दिया जाएगा.regexSubstitution
में, बैकस्लैश-एस्केप्ड अंकों (\1 से \9) का इस्तेमाल, संबंधित कैप्चर ग्रुप को शामिल करने के लिए किया जा सकता है. \0 मेल खाने वाले पूरे टेक्स्ट को दिखाता है. -
रूपांतरित करें
URLTransform ज़रूरी नहीं
किए जाने वाले यूआरएल को बदलना.
-
यूआरएल
स्ट्रिंग ज़रूरी नहीं
दूसरा वेबलिंक. JavaScript यूआरएल पर रीडायरेक्ट की अनुमति नहीं है.
RegexOptions
प्रॉपर्टी
-
isCaseSensitive
बूलियन ज़रूरी नहीं
regex
, केस-सेंसिटिव (बड़े और छोटे अक्षरों में अंतर) है या नहीं. डिफ़ॉल्ट रूप से 'सही' पर सेट होती है. -
रेगुलर एक्सप्रेशन
स्ट्रिंग
जांच करने के लिए रेगुलर एक्सप्रेसऑन.
-
requireCapturing
बूलियन ज़रूरी नहीं
regex
के लिए कैप्चर करने की ज़रूरत है या नहीं. कैप्चर करने की ज़रूरत, सिर्फ़ उन रीडायरेक्ट नियमों के लिए होती है जोregexSubstition
कार्रवाई के बारे में बताते हैं. डिफ़ॉल्ट रूप से गलत पर सेट होती है.
RequestDetails
प्रॉपर्टी
-
documentId
स्ट्रिंग ज़रूरी नहीं
Chrome 106 और इसके बाद के वर्शनअगर यह अनुरोध किसी फ़्रेम के लिए है, तो फ़्रेम के दस्तावेज़ का यूनीक आइडेंटिफ़ायर.
-
documentLifecycle
DocumentLifecycle ज़रूरी नहीं
Chrome 106 और इसके बाद के वर्शनअगर यह अनुरोध किसी फ़्रेम के लिए है, तो फ़्रेम के दस्तावेज़ की लाइफ़साइकल.
-
frameId
नंबर
वैल्यू 0 बताती है कि अनुरोध मुख्य फ़्रेम में किया गया है. पॉज़िटिव वैल्यू, उस सबफ़्रेम के आईडी को दिखाती है जिसमें अनुरोध किया गया है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड किया गया है (
type
का साइज़main_frame
याsub_frame
है), तोframeId
इस फ़्रेम के आईडी को दिखाता है, न कि आउटर फ़्रेम का आईडी. फ़्रेम आईडी, टैब में यूनीक होते हैं. -
frameType
FrameType ज़रूरी नहीं
Chrome 106 और इसके बाद के वर्शनअगर यह अनुरोध किसी फ़्रेम के लिए है, तो फ़्रेम का टाइप.
-
शुरू करने वाला
स्ट्रिंग ज़रूरी नहीं
वह ऑरिजिन जहां से अनुरोध किया गया था. इसमें रीडायरेक्ट से कोई बदलाव नहीं होता. अगर यह ओपेक ऑरिजिन है, तो 'null' स्ट्रिंग का इस्तेमाल किया जाएगा.
-
method
स्ट्रिंग
एचटीटीपी का स्टैंडर्ड तरीका.
-
parentDocumentId
स्ट्रिंग ज़रूरी नहीं
Chrome 106 और इसके बाद के वर्शनअगर यह अनुरोध किसी फ़्रेम के लिए है और इसका एक पैरंट दस्तावेज़ है, तो फ़्रेम के पैरंट दस्तावेज़ के लिए यूनीक आइडेंटिफ़ायर.
-
parentFrameId
नंबर
अनुरोध भेजने वाले फ़्रेम को रैप करने वाले फ़्रेम का आईडी. अगर कोई पैरंट फ़्रेम मौजूद नहीं है, तो -1 पर सेट करें.
-
requestId
स्ट्रिंग
अनुरोध का आईडी. ब्राउज़र सेशन में अनुरोध का आईडी यूनीक होता है.
-
tabId
नंबर
उस टैब का आईडी जिसमें अनुरोध किया जाता है. अगर अनुरोध किसी टैब से नहीं जुड़ा है, तो -1 पर सेट करें.
-
टाइप
अनुरोध का संसाधन टाइप.
-
यूआरएल
स्ट्रिंग
अनुरोध का यूआरएल.
RequestMethod
यह नेटवर्क अनुरोध के एचटीटीपी अनुरोध वाले तरीके के बारे में बताता है.
Enum
"get"
"head"
"put"
ResourceType
यह नेटवर्क अनुरोध के संसाधन प्रकार की जानकारी देता है.
Enum
"main_frame"
"sub_frame"
"object"
"xmlhttprequest"
"csp_report"
"websocket"
Rule
प्रॉपर्टी
-
किसी खास रूटीन से जुड़ी कार्रवाई
इस नियम के मेल खाने पर, कौनसी कार्रवाई की जानी चाहिए.
-
शर्त
वह शर्त जिसके तहत यह नियम ट्रिगर होता है.
-
id
नंबर
किसी नियम की खास पहचान करने वाला आईडी. ज़रूरी है और यह >= 1 होना चाहिए.
-
प्राथमिकता
नंबर ज़रूरी नहीं
नियम की प्राथमिकता. डिफ़ॉल्ट वैल्यू 1 होती है. तय किए जाने पर, यह >= 1 होना चाहिए.
RuleAction
प्रॉपर्टी
-
रीडायरेक्ट करो
रीडायरेक्ट ज़रूरी नहीं
बताता है कि रीडायरेक्ट कैसे किया जाना चाहिए. सिर्फ़ रीडायरेक्ट नियमों के लिए मान्य है.
-
requestHeaders
ModifyHeaderInfo[] ज़रूरी नहीं
Chrome 86+अनुरोध का हेडर, जिसमें बदलाव करने के लिए अनुरोध किया गया है. यह सिर्फ़ तब मान्य होगा, जब RuleActionType "modifyHeaders" करता है.
-
responseHeaders
ModifyHeaderInfo[] ज़रूरी नहीं
Chrome 86+अनुरोध के हिसाब से बदलाव करने के लिए रिस्पॉन्स हेडर. यह सिर्फ़ तब मान्य होगा, जब RuleActionType "modifyHeaders" करता है.
-
टाइप
की जाने वाली कार्रवाई का टाइप.
RuleActionType
इससे यह पता चलता है कि किसी RuleCondition का मिलान होने पर, किस तरह की कार्रवाई की जानी चाहिए.
Enum
"block"
नेटवर्क अनुरोध को ब्लॉक करें.
"redirect"
नेटवर्क अनुरोध रीडायरेक्ट करें.
"allow"
नेटवर्क अनुरोध की अनुमति दें. अगर अनुमति देने का कोई नियम इस अनुरोध से मेल खाता है, तो अनुरोध को बीच में नहीं रोका जाएगा.
"upgradeScheme"
अगर अनुरोध एचटीटीपी या ftp है, तो नेटवर्क अनुरोध के यूआरएल की स्कीम को https पर अपग्रेड करें.
"modifyHeaders"
नेटवर्क अनुरोध के अनुरोध/जवाब हेडर में बदलाव करें.
"allowAllRequests"
फ़्रेम के क्रम में सभी अनुरोधों को अनुमति दें. इसमें फ़्रेम अनुरोध भी शामिल है.
RuleCondition
प्रॉपर्टी
-
domainType
DomainType ज़रूरी नहीं
इससे पता चलता है कि नेटवर्क अनुरोध, उस डोमेन का पहला पक्ष है या तीसरे पक्ष का. अगर शामिल नहीं किया जाता है, तो सभी अनुरोध स्वीकार किए जाएंगे.
-
डोमेन
स्ट्रिंग[] ज़रूरी नहीं है
Chrome 101 के बाद से अब सेवा में नहीं हैइसके बजाय,
initiatorDomains
का इस्तेमाल करेंनियम सिर्फ़
domains
की सूची से आने वाले नेटवर्क अनुरोधों से मेल खाएगा. -
excludedDomains
स्ट्रिंग[] ज़रूरी नहीं है
Chrome 101 के बाद से अब सेवा में नहीं हैइसके बजाय,
excludedInitiatorDomains
का इस्तेमाल करेंनियम,
excludedDomains
की सूची से आने वाले नेटवर्क अनुरोधों से मैच नहीं करेगा. -
excludedInitiatorDomains
स्ट्रिंग[] ज़रूरी नहीं है
Chrome 101 और उसके बाद के वर्शननियम,
excludedInitiatorDomains
की सूची से आने वाले नेटवर्क अनुरोधों से मैच नहीं करेगा. अगर सूची खाली है या छोड़ दी गई है, तो कोई भी डोमेन बाहर नहीं रखा जाएगा. इसेinitiatorDomains
के मुकाबले प्राथमिकता दी जाती है.ध्यान दें:
- "a.example.com" जैसे सब-डोमेन की भी अनुमति है.
- एंट्री में सिर्फ़ ASCII वर्ण होने चाहिए.
- अंतरराष्ट्रीय डोमेन के लिए पनीकोड एन्कोडिंग का इस्तेमाल करें.
- यह वैल्यू, अनुरोध शुरू करने वाले व्यक्ति से मेल खाती है, न कि अनुरोध वाले यूआरएल से.
- सूची में शामिल डोमेन के उप-डोमेन भी शामिल नहीं किए जाते हैं.
-
excludedRequestDomains
स्ट्रिंग[] ज़रूरी नहीं है
Chrome 101 और उसके बाद के वर्शनजब डोमेन,
excludedRequestDomains
की सूची में से किसी एक से मेल खाते हैं, तो नियम नेटवर्क अनुरोधों से मैच नहीं करेगा. अगर सूची खाली है या छोड़ दी गई है, तो कोई भी डोमेन बाहर नहीं रखा जाएगा. इसेrequestDomains
के मुकाबले प्राथमिकता दी जाती है.ध्यान दें:
- "a.example.com" जैसे सब-डोमेन की भी अनुमति है.
- एंट्री में सिर्फ़ ASCII वर्ण होने चाहिए.
- अंतरराष्ट्रीय डोमेन के लिए पनीकोड एन्कोडिंग का इस्तेमाल करें.
- सूची में शामिल डोमेन के उप-डोमेन भी शामिल नहीं किए जाते हैं.
-
excludedRequestMethods
RequestMethod[] ज़रूरी नहीं है
Chrome 91 और इसके बाद के वर्शनअनुरोध के उन तरीकों की सूची जिनका मिलान नियम नहीं होगा.
requestMethods
औरexcludedRequestMethods
में से सिर्फ़ एक के बारे में बताया जाना चाहिए. अगर इनमें से कोई भी तरीका नहीं चुना गया है, तो अनुरोध के सभी तरीके मैच किए जाते हैं. -
excludedResourceTypes
ResourceType[] ज़रूरी नहीं
ऐसे संसाधन टाइप की सूची जिनसे नियम मेल नहीं खाएगा.
resourceTypes
औरexcludedResourceTypes
में से सिर्फ़ एक के बारे में बताया जाना चाहिए. अगर इनमें से किसी भी तरह की जानकारी नहीं दी गई है, तो "main_frame" को छोड़कर बाकी सभी तरह के रिसॉर्स ब्लॉक कर दिए जाएंगे. -
excludedTabIds
नंबर[] ज़रूरी नहीं
Chrome 92 और इसके बाद के वर्शनtabs.Tab.id
की सूची, जो नियम से मेल नहीं खाना चाहिए.tabs.TAB_ID_NONE
के आईडी में, किसी टैब से न आने वाले अनुरोध शामिल नहीं किए जाते. सिर्फ़ सेशन के स्कोप वाले नियमों के लिए काम करता है. -
initiatorDomains
स्ट्रिंग[] ज़रूरी नहीं है
Chrome 101 और उसके बाद के वर्शननियम सिर्फ़
initiatorDomains
की सूची से आने वाले नेटवर्क अनुरोधों से मेल खाएगा. अगर सूची को हटा दिया जाता है, तो यह नियम सभी डोमेन के अनुरोधों पर लागू होता है. खाली सूची की अनुमति नहीं है.ध्यान दें:
- "a.example.com" जैसे सब-डोमेन की भी अनुमति है.
- एंट्री में सिर्फ़ ASCII वर्ण होने चाहिए.
- अंतरराष्ट्रीय डोमेन के लिए पनीकोड एन्कोडिंग का इस्तेमाल करें.
- यह वैल्यू, अनुरोध शुरू करने वाले व्यक्ति से मेल खाती है, न कि अनुरोध वाले यूआरएल से.
- सूची में शामिल डोमेन के सब-डोमेन का भी मिलान किया जाता है.
-
isUrlFilterCaseSensitive
बूलियन ज़रूरी नहीं
urlFilter
याregexFilter
(इनमें से जो भी बताया गया हो) केस-सेंसिटिव (बड़े और छोटे अक्षरों में अंतर) है या नहीं. डिफ़ॉल्ट रूप से गलत पर सेट होती है. -
regexFilter
स्ट्रिंग ज़रूरी नहीं
रेगुलर एक्सप्रेशन, नेटवर्क अनुरोध के यूआरएल से मेल खाना चाहिए. यह RE2 सिंटैक्स का पालन करता है.
ध्यान दें:
urlFilter
याregexFilter
में से सिर्फ़ एक के बारे में बताया जा सकता है.ध्यान दें:
regexFilter
में सिर्फ़ ASCII वर्ण होने चाहिए. इसका मिलान उस यूआरएल से किया जाता है जहां होस्ट को पनीकोड फ़ॉर्मैट (अंतरराष्ट्रीय डोमेन के मामले में) में एन्कोड किया जाता है और कोई भी दूसरे गैर-एएससीआईआई वर्ण utf-8 में एन्कोड किए गए यूआरएल होते हैं. -
requestDomains
स्ट्रिंग[] ज़रूरी नहीं है
Chrome 101 और उसके बाद के वर्शननियम, नेटवर्क अनुरोधों से तब ही मैच करेगा, जब डोमेन,
requestDomains
की सूची में से किसी एक से मेल खाता है. अगर सूची को हटा दिया जाता है, तो यह नियम सभी डोमेन के अनुरोधों पर लागू होता है. खाली सूची की अनुमति नहीं है.ध्यान दें:
- "a.example.com" जैसे सब-डोमेन की भी अनुमति है.
- एंट्री में सिर्फ़ ASCII वर्ण होने चाहिए.
- अंतरराष्ट्रीय डोमेन के लिए पनीकोड एन्कोडिंग का इस्तेमाल करें.
- सूची में शामिल डोमेन के सब-डोमेन का भी मिलान किया जाता है.
-
requestMethods
RequestMethod[] ज़रूरी नहीं है
Chrome 91 और इसके बाद के वर्शनएचटीटीपी अनुरोध के उन तरीकों की सूची जिनका नियम मैच कर सकता है. खाली सूची की अनुमति नहीं है.
ध्यान दें:
requestMethods
नियम की शर्त तय करने से बिना एचटीटीपी वाले अनुरोध भी शामिल नहीं होंगे, जबकिexcludedRequestMethods
बताने से वे अनुरोध नहीं चलेंगे. -
resourceTypes
ResourceType[] ज़रूरी नहीं
ऐसे संसाधन टाइप की सूची जिनसे नियम मैच कर सकता है. खाली सूची की अनुमति नहीं है.
ध्यान दें:
allowAllRequests
नियमों के लिए यह जानकारी देना ज़रूरी है. इसमें सिर्फ़sub_frame
औरmain_frame
तरह के संसाधन शामिल हो सकते हैं. -
tabIds
नंबर[] ज़रूरी नहीं
Chrome 92 और इसके बाद के वर्शनtabs.Tab.id
की सूची, जो नियम से मेल खाना चाहिए.tabs.TAB_ID_NONE
का आईडी उन अनुरोधों से मेल खाता है जो किसी टैब से नहीं आते. खाली सूची की अनुमति नहीं है. सिर्फ़ सेशन के स्कोप वाले नियमों के लिए काम करता है. -
urlFilter
स्ट्रिंग ज़रूरी नहीं
नेटवर्क अनुरोध यूआरएल से मेल खाने वाला पैटर्न. इस्तेमाल किए जा सकने वाले कंस्ट्रक्ट:
'*' : वाइल्डकार्ड: यह कितने भी वर्णों से मेल खाता है.
'|' : बायां/दायां ऐंकर: अगर पैटर्न के किसी भी आखिर में इस्तेमाल किया जाता है, तो यह यूआरएल की शुरुआत/आखिर की जानकारी देता है.
'||' : डोमेन नेम ऐंकर: अगर पैटर्न की शुरुआत में इस्तेमाल किया जाता है, तो यूआरएल के (सब-)डोमेन की शुरुआत के बारे में बताता है.
'^' : सेपरेटर वर्ण: यह किसी अक्षर, अंक या इनमें से किसी एक को छोड़कर, किसी भी चीज़ से मेल खाता है:
_
,-
,.
या%
. यह यूआरएल के आखिरी हिस्से से भी मेल खाता है.इसलिए,
urlFilter
में ये हिस्से शामिल हैं: (बायां/डोमेन नेम ऐंकर) + पैटर्न + (ज़रूरी नहीं, राइट ऐंकर).अगर शामिल नहीं किया जाता है, तो सभी यूआरएल का मिलान किया जाता है. खाली स्ट्रिंग की अनुमति नहीं है.
||*
से शुरू होने वाले पैटर्न की अनुमति नहीं है. इसके बजाय,*
का इस्तेमाल करें.ध्यान दें:
urlFilter
याregexFilter
में से सिर्फ़ एक के बारे में बताया जा सकता है.ध्यान दें:
urlFilter
में सिर्फ़ ASCII वर्ण होने चाहिए. इसका मिलान उस यूआरएल से किया जाता है जहां होस्ट को पनीकोड फ़ॉर्मैट (अंतरराष्ट्रीय डोमेन के मामले में) में एन्कोड किया जाता है और कोई भी दूसरे गैर-एएससीआईआई वर्ण utf-8 में एन्कोड किए गए यूआरएल होते हैं. उदाहरण के लिए, जब अनुरोध का यूआरएल http://abc.जाएंगी?q=फ़िड होगा, तोurlFilter
का मिलान यूआरएल http://abc.xn--p1ai/?q=%D1%84 से किया जाएगा.
Ruleset
प्रॉपर्टी
-
चालू किया गया
boolean
क्या रूलसेट डिफ़ॉल्ट रूप से चालू है.
-
id
स्ट्रिंग
नियमों की खास तौर पर पहचान करने वाली एक गैर-खाली स्ट्रिंग. '_' से शुरू होने वाले आईडी, अंदरूनी इस्तेमाल के लिए रिज़र्व हैं.
-
पाथ
स्ट्रिंग
एक्सटेंशन डायरेक्ट्री के संबंध में JSON रूलसेट का पाथ.
RulesMatchedDetails
प्रॉपर्टी
-
rulesMatchedInfo
दिए गए फ़िल्टर से मैच करने वाले नियम.
TabActionCountUpdate
प्रॉपर्टी
-
अधिक
नंबर
टैब की कार्रवाई की संख्या को बढ़ाने के लिए मात्रा. नेगेटिव वैल्यू से संख्या कम हो जाएगी.
-
tabId
नंबर
वह टैब जिसके लिए कार्रवाई की संख्या को अपडेट करना है.
TestMatchOutcomeResult
प्रॉपर्टी
-
matchedRules
वे नियम (अगर कोई है) जो काल्पनिक अनुरोध से मेल खाते हैं.
TestMatchRequestDetails
प्रॉपर्टी
-
शुरू करने वाला
स्ट्रिंग ज़रूरी नहीं
काल्पनिक अनुरोध के लिए शुरू करने वाला यूआरएल (अगर कोई है).
-
method
RequestMethod ज़रूरी नहीं है
काल्पनिक अनुरोध का स्टैंडर्ड एचटीटीपी तरीका. एचटीटीपी अनुरोधों के लिए, डिफ़ॉल्ट तौर पर "get" सेट होता है, तो बिना एचटीटीपी अनुरोधों के लिए इसे अनदेखा कर दिया जाता है.
-
tabId
नंबर ज़रूरी नहीं
उस टैब का आईडी जिसमें काल्पनिक अनुरोध किया जाता है. किसी रीयल टैब आईडी से मेल खाना ज़रूरी नहीं है. डिफ़ॉल्ट -1 है. इसका मतलब है कि अनुरोध किसी टैब से नहीं जुड़ा है.
-
टाइप
काल्पनिक अनुरोध का संसाधन टाइप.
-
यूआरएल
स्ट्रिंग
काल्पनिक अनुरोध का यूआरएल.
UnsupportedRegexReason
इस वजह से यह पता चलता है कि दिया गया रेगुलर एक्सप्रेशन काम क्यों नहीं कर रहा.
Enum
"syntaxError"
रेगुलर एक्सप्रेशन के वाक्य गलत हैं या इसमें ऐसी सुविधाओं का इस्तेमाल किया गया है जो RE2 सिंटैक्स में उपलब्ध नहीं हैं.
"memoryLimitExceeded"
रेगुलर एक्सप्रेशन, मेमोरी की सीमा से ज़्यादा है.
UpdateRuleOptions
प्रॉपर्टी
-
addRules
रूल[] ज़रूरी नहीं
जोड़े जाने वाले नियम.
-
removeRuleIds
नंबर[] ज़रूरी नहीं
हटाए जाने वाले नियमों का आईडी. किसी भी अमान्य आईडी को अनदेखा कर दिया जाएगा.
UpdateRulesetOptions
प्रॉपर्टी
UpdateStaticRulesOptions
प्रॉपर्टी
URLTransform
प्रॉपर्टी
-
फ़्रैगमेंट
स्ट्रिंग ज़रूरी नहीं
अनुरोध के लिए नया फ़्रैगमेंट. इसे या तो खाली होना चाहिए, इस स्थिति में मौजूदा फ़्रैगमेंट हटा दिया जाना चाहिए या इसे '#' से शुरू होना चाहिए.
-
होस्ट
स्ट्रिंग ज़रूरी नहीं
अनुरोध के लिए नया होस्ट.
-
पासवर्ड
स्ट्रिंग ज़रूरी नहीं
अनुरोध के लिए नया पासवर्ड.
-
पाथ
स्ट्रिंग ज़रूरी नहीं
अनुरोध के लिए नया पाथ. अगर खाली है, तो मौजूदा पाथ को हटा दिया जाता है.
-
पोर्ट
स्ट्रिंग ज़रूरी नहीं
अनुरोध के लिए नया पोर्ट. अगर खाली है, तो मौजूदा पोर्ट को हटा दिया जाता है.
-
query
स्ट्रिंग ज़रूरी नहीं
अनुरोध के लिए नई क्वेरी. इसे खाली होना चाहिए, जिस स्थिति में मौजूदा क्वेरी हटा दी गई है; या इसे '?' से शुरू होना चाहिए.
-
queryTransform
QueryTransform ज़रूरी नहीं है
क्वेरी के की-वैल्यू पेयर को जोड़ें, हटाएं या बदलें.
-
स्कीम
स्ट्रिंग ज़रूरी नहीं
अनुरोध के लिए नई स्कीम. "http", "https", "ftp", और "chrome-extension" वैल्यू इस्तेमाल की जा सकती है.
-
उपयोगकर्ता नाम
स्ट्रिंग ज़रूरी नहीं
अनुरोध के लिए नया उपयोगकर्ता नाम.
प्रॉपर्टी
DYNAMIC_RULESET_ID
एक्सटेंशन से जोड़े गए डाइनैमिक नियमों के लिए नियमसेट आईडी.
वैल्यू
GETMATCHEDRULES_QUOTA_INTERVAL
वह समय अंतराल जिसमें MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules
कॉल किए जा सकते हैं. इसकी जानकारी मिनट में दी जाती है. अन्य कॉल तुरंत रद्द हो जाएंगे और runtime.lastError
सेट हो जाएंगे. ध्यान दें: उपयोगकर्ता के जेस्चर का इस्तेमाल करके किए गए getMatchedRules
कॉल के लिए यह कोटा लागू नहीं होता.
वैल्यू
10
GUARANTEED_MINIMUM_STATIC_RULES
एक्सटेंशन के लिए चालू स्टैटिक नियमों की कम से कम संख्या. इस सीमा से ज़्यादा नियम ग्लोबल स्टैटिक नियम सीमा के तहत गिने जाएंगे.
वैल्यू
30,000
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL
GETMATCHEDRULES_QUOTA_INTERVAL
की अवधि के दौरान getMatchedRules
को कॉल किए जाने की संख्या.
वैल्यू
20
MAX_NUMBER_OF_DYNAMIC_RULES
किसी एक्सटेंशन में जोड़े जा सकने वाले डाइनैमिक नियमों की ज़्यादा से ज़्यादा संख्या.
वैल्यू
30,000
MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
स्टैटिक Rulesets
एक्सटेंशन को एक बार में, ज़्यादा से ज़्यादा संख्या में चालू किया जा सकता है.
वैल्यू
50
MAX_NUMBER_OF_REGEX_RULES
रेगुलर एक्सप्रेशन के नियमों की ज़्यादा से ज़्यादा संख्या, जिन्हें एक्सटेंशन जोड़ा जा सकता है. इस सीमा का मूल्यांकन, डाइनैमिक नियमों के सेट और नियम रिसॉर्स फ़ाइल में बताए गए नियमों के लिए अलग से किया जाता है.
वैल्यू
1,000
MAX_NUMBER_OF_SESSION_RULES
सेशन के दायरे वाले ऐसे नियमों की ज़्यादा से ज़्यादा संख्या जिन्हें एक्सटेंशन जोड़ सकता है.
वैल्यू
5,000
MAX_NUMBER_OF_STATIC_RULESETS
किसी एक्सटेंशन में ज़्यादा से ज़्यादा स्टैटिक Rulesets
को "rule_resources"
मेनिफ़ेस्ट कुंजी के हिस्से के तौर पर तय किया जा सकता है.
वैल्यू
100
MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
किसी एक्सटेंशन में जोड़े जा सकने वाले "असुरक्षित" डाइनैमिक नियमों की ज़्यादा से ज़्यादा संख्या.
वैल्यू
5,000
MAX_NUMBER_OF_UNSAFE_SESSION_RULES
"असुरक्षित" सेशन के दायरे वाले नियमों की ज़्यादा से ज़्यादा संख्या, जिन्हें कोई एक्सटेंशन जोड़ सकता है.
वैल्यू
5,000
SESSION_RULESET_ID
एक्सटेंशन से जोड़े गए सेशन के स्कोप वाले नियमों के लिए नियमसेट आईडी.
वैल्यू
"_session"
तरीके
getAvailableStaticRuleCount()
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
callback?: function,
)
ग्लोबल स्टैटिक नियम की सीमा तक पहुंचने से पहले, एक्सटेंशन के चालू किए जा सकने वाले स्टैटिक नियमों की संख्या दिखाता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:(count: number)=>void
-
सोलर पैनलों की संख्या
नंबर
-
रिटर्न
-
वादा<number>
Chrome 91 और इसके बाद के वर्शनप्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.
getDisabledRuleIds()
chrome.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
callback?: function,
)
दिए गए Ruleset
में मौजूद उन स्टैटिक नियमों की सूची दिखाता है जो फ़िलहाल बंद हैं.
पैरामीटर
-
विकल्प
क्वेरी के लिए नियम सेट करता है.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:(disabledRuleIds: number[])=>void
-
disabledRuleIds
नंबर[]
-
रिटर्न
-
वादा करें<number[]>
प्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.
getDynamicRules()
chrome.declarativeNetRequest.getDynamicRules(
filter?: GetRulesFilter,
callback?: function,
)
एक्सटेंशन के लिए डाइनैमिक नियमों का मौजूदा सेट दिखाता है. कॉलर, filter
तय करके, फ़ेच किए गए नियमों की सूची को फ़िल्टर कर सकते हैं. हालांकि, ऐसा करना ज़रूरी नहीं है.
पैरामीटर
-
फ़िल्टर
GetRulesFilter ज़रूरी नहीं
Chrome 111 और उसके बाद के वर्शनफ़ेच किए गए नियमों की सूची को फ़िल्टर करने वाला ऑब्जेक्ट.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:(rules: Rule[])=>void
-
नियम
नियम[]
-
रिटर्न
-
वादा<नियम[]>
Chrome 91 और इसके बाद के वर्शनप्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.
getEnabledRulesets()
chrome.declarativeNetRequest.getEnabledRulesets(
callback?: function,
)
चालू स्टैटिक नियमों के मौजूदा सेट के लिए आईडी दिखाता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:(rulesetIds: string[])=>void
-
rulesetIds
स्ट्रिंग[]
-
रिटर्न
-
प्रॉमिस<string[]>
Chrome 91 और इसके बाद के वर्शनप्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.
getMatchedRules()
chrome.declarativeNetRequest.getMatchedRules(
filter?: MatchedRulesFilter,
callback?: function,
)
एक्सटेंशन के लिए मेल खाने वाले सभी नियम दिखाता है. कॉलर, मेल खाने वाले नियमों की सूची को फ़िल्टर कर सकते हैं. इसके लिए, वे filter
तय कर सकते हैं. यह तरीका सिर्फ़ उन एक्सटेंशन के लिए उपलब्ध है जिनके पास "declarativeNetRequestFeedback"
की अनुमति है या filter
में बताए गए tabId
के लिए, "activeTab"
की अनुमति है. ध्यान दें: जो नियम किसी चालू दस्तावेज़ से जुड़े नहीं हैं और जिनका मिलान पांच मिनट से पहले हुआ था, उन्हें वापस नहीं किया जाएगा.
पैरामीटर
-
फ़िल्टर
MatchedRulesFilter ज़रूरी नहीं
मेल खाने वाले नियमों की सूची को फ़िल्टर करने वाला ऑब्जेक्ट.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:(details: RulesMatchedDetails)=>void
-
विवरण
-
रिटर्न
-
Promise<RulesMatchedDetails>
Chrome 91 और इसके बाद के वर्शनप्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.
getSessionRules()
chrome.declarativeNetRequest.getSessionRules(
filter?: GetRulesFilter,
callback?: function,
)
एक्सटेंशन के लिए, सेशन के दायरे वाले नियमों का मौजूदा सेट दिखाता है. कॉलर, filter
तय करके, फ़ेच किए गए नियमों की सूची को फ़िल्टर कर सकते हैं. हालांकि, ऐसा करना ज़रूरी नहीं है.
पैरामीटर
-
फ़िल्टर
GetRulesFilter ज़रूरी नहीं
Chrome 111 और उसके बाद के वर्शनफ़ेच किए गए नियमों की सूची को फ़िल्टर करने वाला ऑब्जेक्ट.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:(rules: Rule[])=>void
-
नियम
नियम[]
-
रिटर्न
-
वादा<नियम[]>
Chrome 91 और इसके बाद के वर्शनप्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.
isRegexSupported()
chrome.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
callback?: function,
)
यह जांच करता है कि दिया गया रेगुलर एक्सप्रेशन, regexFilter
नियम की शर्त के तौर पर काम करेगा या नहीं.
पैरामीटर
-
regexOptions
जांचा जाने वाला रेगुलर एक्सप्रेशन.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:(result: IsRegexSupportedResult)=>void
-
नतीजा
-
रिटर्न
-
Promise<IsRegexSupportedResult>
Chrome 91 और इसके बाद के वर्शनप्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.
setExtensionActionOptions()
chrome.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
callback?: function,
)
इस नीति से यह कॉन्फ़िगर किया जाता है कि टैब के लिए की गई कार्रवाई की संख्या को एक्सटेंशन से जुड़ी कार्रवाई के बैज टेक्स्ट के तौर पर दिखाया जाए या नहीं. साथ ही, इससे कार्रवाई की संख्या को बढ़ाने का तरीका भी मिलता है.
पैरामीटर
-
विकल्प
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
Chrome 89+callback
पैरामीटर ऐसा दिखता है:()=>void
रिटर्न
-
Promise<void>
Chrome 91 और इसके बाद के वर्शनप्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.
testMatchOutcome()
chrome.declarativeNetRequest.testMatchOutcome(
request: TestMatchRequestDetails,
callback?: function,
)
यह जांचता है कि एक्सटेंशन का कोई declarativeNetRequest नियम किसी काल्पनिक अनुरोध से मेल खाता है या नहीं. ध्यान दें: यह सिर्फ़ अनपैक किए गए एक्सटेंशन के लिए उपलब्ध है, क्योंकि इसका इस्तेमाल सिर्फ़ एक्सटेंशन डेवलपमेंट के दौरान किया जा सकता है.
पैरामीटर
-
CANNOT TRANSLATE
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:(result: TestMatchOutcomeResult)=>void
-
नतीजा
-
रिटर्न
-
Promise<TestMatchOutcomeResult>
प्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.
updateDynamicRules()
chrome.declarativeNetRequest.updateDynamicRules(
options: UpdateRuleOptions,
callback?: function,
)
एक्सटेंशन के लिए डाइनैमिक नियमों के मौजूदा सेट में बदलाव करता है. options.removeRuleIds
में दिए गए आईडी वाले नियमों को पहले हटा दिया जाता है. इसके बाद, options.addRules
में दिए गए नियम जोड़े जाते हैं. ध्यान दें:
- यह अपडेट किसी एक ऐटॉमिक ऑपरेशन के तौर पर होता है: या तो सभी तय नियम जोड़े जाते हैं और हटा दिए जाते हैं या फिर कोई गड़बड़ी दिखती है.
- ये नियम सभी ब्राउज़र सेशन और एक्सटेंशन अपडेट में लागू रहते हैं.
- एक्सटेंशन पैकेज के हिस्से के रूप में तय किए गए स्टैटिक नियमों को इस फ़ंक्शन का इस्तेमाल करके हटाया नहीं जा सकता.
MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES
से ज़्यादा से ज़्यादा डाइनैमिक और सेशन नियमों को, एक्सटेंशन के ज़रिए जोड़ा जा सकता है.
पैरामीटर
-
विकल्पChrome 87 और इसके बाद के वर्शन
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:()=>void
रिटर्न
-
Promise<void>
Chrome 91 और इसके बाद के वर्शनप्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.
updateEnabledRulesets()
chrome.declarativeNetRequest.updateEnabledRulesets(
options: UpdateRulesetOptions,
callback?: function,
)
एक्सटेंशन के लिए चालू स्टैटिक नियमों के सेट को अपडेट करता है. options.disableRulesetIds
में सूची में दिए गए आईडी वाले नियमसेट पहले हटा दिए जाते हैं और फिर options.enableRulesetIds
में सूची में दिए गए नियमसेट जोड़े जाते हैं.
ध्यान दें कि चालू स्टैटिक नियमों का सेट, सभी सेशन में लागू होता है, लेकिन एक्सटेंशन के अपडेट में नहीं. इसका मतलब है कि rule_resources
मेनिफ़ेस्ट कुंजी, एक्सटेंशन के हर अपडेट पर, चालू किए गए स्टैटिक नियमों के सेट को तय करेगी.
पैरामीटर
-
विकल्पChrome 87 और इसके बाद के वर्शन
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:()=>void
रिटर्न
-
Promise<void>
Chrome 91 और इसके बाद के वर्शनप्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.
updateSessionRules()
chrome.declarativeNetRequest.updateSessionRules(
options: UpdateRuleOptions,
callback?: function,
)
एक्सटेंशन के लिए, सेशन के दायरे वाले नियमों के मौजूदा सेट में बदलाव करता है. options.removeRuleIds
में दिए गए आईडी वाले नियमों को पहले हटा दिया जाता है. इसके बाद, options.addRules
में दिए गए नियम जोड़े जाते हैं. ध्यान दें:
- यह अपडेट किसी एक ऐटॉमिक ऑपरेशन के तौर पर होता है: या तो सभी तय नियम जोड़े जाते हैं और हटा दिए जाते हैं या फिर कोई गड़बड़ी दिखती है.
- ये नियम हर सेशन में लागू नहीं होते और इनका बैक अप मेमोरी में मौजूद होता है.
MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES
से ज़्यादा से ज़्यादा डाइनैमिक और सेशन नियमों को, एक्सटेंशन के ज़रिए जोड़ा जा सकता है.
पैरामीटर
-
विकल्प
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:()=>void
रिटर्न
-
Promise<void>
Chrome 91 और इसके बाद के वर्शनप्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.
updateStaticRules()
chrome.declarativeNetRequest.updateStaticRules(
options: UpdateStaticRulesOptions,
callback?: function,
)
यह Ruleset
में अलग-अलग स्टैटिक नियमों को बंद और चालू करती है. बंद Ruleset
से संबंधित नियमों में किए गए बदलाव, अगली बार उसके चालू होने पर लागू होंगे.
पैरामीटर
-
विकल्प
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:()=>void
रिटर्न
-
Promise<void>
प्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.
इवेंट
onRuleMatchedDebug
chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
callback: function,
)
जब किसी नियम का अनुरोध से मिलान होता है, तब सक्रिय होता है. यह सिर्फ़ "declarativeNetRequestFeedback"
की अनुमति वाले, पैक नहीं किए गए एक्सटेंशन के लिए उपलब्ध है. ऐसा इसलिए है, क्योंकि इसका इस्तेमाल सिर्फ़ डीबग करने के लिए किया जाता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callback
पैरामीटर ऐसा दिखता है:(info: MatchedRuleInfoDebug)=>void
-
जानकारी
-