refresh date: 2026-09-25 robots: noindex
ब्यौरा
chrome.declarativeNetRequest एपीआई का इस्तेमाल, एलान वाले नियमों को तय करके नेटवर्क अनुरोधों को ब्लॉक करने या उनमें बदलाव करने के लिए किया जाता है. इससे एक्सटेंशन, नेटवर्क अनुरोधों को इंटरसेप्ट किए बिना और उनके कॉन्टेंट को देखे बिना उनमें बदलाव कर सकते हैं. इस तरह, ज़्यादा निजता मिलती है.
अनुमतियां
declarativeNetRequestdeclarativeNetRequestWithHostAccessdeclarativeNetRequestFeedbackhost_permissions
उपलब्धता
मेनिफ़ेस्ट
ऊपर बताई गई अनुमतियों के अलावा, कुछ तरह के नियम सेट के लिए "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/*"
],
...
}
कॉन्सेप्ट और इस्तेमाल करने का तरीका
इस एपीआई का इस्तेमाल करने के लिए, एक या इससे ज़्यादा नियम सेट तय करें. नियमों के सेट में नियमों की एक सूची होती है. एक नियम इनमें से कोई एक काम करता है:
- नेटवर्क के अनुरोध को ब्लॉक करें.
- स्कीमा को अपग्रेड करें (http से https पर).
- मिलान करने वाले किसी भी ब्लॉक किए गए नियम को खारिज करके, अनुरोध को ब्लॉक होने से रोकना.
- नेटवर्क के अनुरोध को रीडायरेक्ट करना.
- अनुरोध या रिस्पॉन्स हेडर में बदलाव करें.
तीन तरह के नियम सेट होते हैं, जिन्हें अलग-अलग तरीके से मैनेज किया जाता है.
- डाइनैमिक
- ये कुकी, ब्राउज़र सेशन और एक्सटेंशन अपग्रेड के दौरान बनी रहती हैं. साथ ही, जब एक्सटेंशन का इस्तेमाल किया जा रहा होता है, तब इन्हें 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"]
}
}
urlFilter से मेल खाने वाले वर्ण
किसी नियम की "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"फ़ील्ड का इस्तेमाल किया जाता है. प्राथमिकता इस क्रम में दी जाती है:allowallowAllRequestsblockupgradeSchemeredirect
अगर ऐक्शन टाइप
blockयाredirectनहीं है, तो मैच करने वालेmodifyHeadersनियमों का आकलन किया जाता है. ध्यान दें कि अगर डेवलपर की ओर से तय की गई प्राथमिकता वाले कुछ नियम,allowऔरallowAllRequestsके लिए तय की गई प्राथमिकता से कम हैं, तो उन नियमों को अनदेखा कर दिया जाएगा.अगर कई नियम एक ही हेडर में बदलाव करते हैं, तो बदलाव, डेवलपर के तय किए गए
"priority"फ़ील्ड और तय किए गए ऑपरेशनों के हिसाब से होता है.- अगर कोई नियम किसी हेडर में जुड़ता है, तो कम प्राथमिकता वाले नियम सिर्फ़ उस हेडर में जुड़ सकते हैं. सेट करने और हटाने की कार्रवाइयों की अनुमति नहीं है.
- अगर कोई नियम हेडर सेट करता है, तो कम प्राथमिकता वाले नियम सिर्फ़ उस हेडर में जोड़े जा सकते हैं. इसके अलावा, कोई और बदलाव नहीं किया जा सकता.
- अगर कोई नियम किसी हेडर को हटा देता है, तो कम प्राथमिकता वाले नियम उस हेडर में आगे कोई बदलाव नहीं कर सकते.
एक्सटेंशन के बीच नियम को प्राथमिकता देना
अगर सिर्फ़ एक एक्सटेंशन में ऐसा नियम है जो किसी अनुरोध से मेल खाता है, तो वह नियम लागू होता है. हालांकि, अगर एक से ज़्यादा एक्सटेंशन किसी अनुरोध से मैच करते हैं, तो इस प्रोसेस का इस्तेमाल किया जाता है:
नियमों को प्राथमिकता देने के लिए,
"action"फ़ील्ड का इस्तेमाल किया जाता है. प्राथमिकता इस क्रम में दी जाती है:blockredirectयाupgradeSchemeallowयाallowAllRequests
अगर एक से ज़्यादा नियम मैच होते हैं, तो सबसे हाल ही में इंस्टॉल किए गए एक्सटेंशन को प्राथमिकता दी जाती है.
नियम की सीमाएं
ब्राउज़र में नियमों को लोड करने और उनका आकलन करने में परफ़ॉर्मेंस पर असर पड़ता है. इसलिए, एपीआई का इस्तेमाल करते समय कुछ सीमाएं लागू होती हैं. सीमाएं, इस्तेमाल किए जा रहे नियम के टाइप पर निर्भर करती हैं.
स्टैटिक नियम
स्टैटिक नियम वे होते हैं जो मेनिफ़ेस्ट फ़ाइल में बताई गई नियम फ़ाइलों में तय किए जाते हैं. कोई एक्सटेंशन, "rule_resources" मेनिफ़ेस्ट कुंजी के हिस्से के तौर पर ज़्यादा से ज़्यादा 50 स्टैटिक ruleset तय कर सकता है. हालांकि, इनमें से सिर्फ़ 10 ruleset एक बार में चालू किए जा सकते हैं. दूसरे को MAX_NUMBER_OF_ENABLED_STATIC_RULESETS कहा जाता है. इन सभी नियमों के सेट में, कम से कम 30,000 नियम होने की गारंटी है. इसे GUARANTEED_MINIMUM_STATIC_RULES कहा जाता है.
इसके बाद, उपलब्ध नियमों की संख्या इस बात पर निर्भर करती है कि उपयोगकर्ता के ब्राउज़र पर इंस्टॉल किए गए सभी एक्सटेंशन ने कितने नियम चालू किए हैं. getAvailableStaticRuleCount() को कॉल करके, रनटाइम के दौरान इस नंबर का पता लगाया जा सकता है. कोड के उदाहरण में जाकर, इसका उदाहरण देखा जा सकता है.
डाइनैमिक और सेशन के नियम
डाइनैमिक और सेशन के नियमों पर लागू होने वाली सीमाएं, स्टैटिक नियमों की तुलना में आसान होती हैं. दोनों की कुल संख्या 5,000 से ज़्यादा नहीं होनी चाहिए. इसे MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES कहा जाता है.
रेगुलर एक्सप्रेशन का इस्तेमाल करने वाले नियम
सभी तरह के नियमों में रेगुलर एक्सप्रेशन का इस्तेमाल किया जा सकता है. हालांकि, हर टाइप के रेगुलर एक्सप्रेशन वाले नियमों की कुल संख्या 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.
सर्विस वर्कर के साथ इंटरैक्शन
declarativeNetRequest सिर्फ़ उन अनुरोधों पर लागू होता है जो नेटवर्क स्टैक तक पहुंचते हैं. इसमें एचटीटीपी कैश से मिले जवाब शामिल हैं. हालांकि, इसमें ऐसे जवाब शामिल नहीं हो सकते जो सर्विस वर्कर के onfetch हैंडलर से होकर गुज़रते हैं. declarativeNetRequest, सर्विस वर्कर से जनरेट हुए या CacheStorage से वापस पाए गए जवाबों पर असर नहीं डालेगा. हालांकि, यह सर्विस वर्कर में किए गए fetch() कॉल पर असर डालेगा.
वेब पर ऐक्सेस किए जा सकने वाले संसाधन
declarativeNetRequest के नियम के तहत, सार्वजनिक संसाधन के अनुरोध को ऐसे संसाधन पर रीडायरेक्ट नहीं किया जा सकता जिसे वेब पर ऐक्सेस नहीं किया जा सकता. ऐसा करने पर, गड़बड़ी का मैसेज दिखता है. ऐसा तब भी होता है, जब वेब पर ऐक्सेस की जा सकने वाली बताई गई संसाधन फ़ाइल का मालिकाना हक, रीडायरेक्ट करने वाले एक्सटेंशन के पास हो. declarativeNetRequest के लिए संसाधनों का एलान करने के लिए, मेनिफ़ेस्ट के "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, एक्सटेंशन में नियमों को किस तरह प्राथमिकता देता है. इनकी समीक्षा करते समय, प्राथमिकता तय करने के नियमों को अलग विंडो में खोला जा सकता है.
"priority" कुंजी
इन उदाहरणों के लिए, *://*.example.com/* करने के लिए होस्ट करने की अनुमति ज़रूरी है.
किसी यूआरएल की प्राथमिकता तय करने के लिए, (डेवलपर की ओर से तय की गई) "priority" कुंजी, "action" कुंजी, और "urlFilter" कुंजी देखें. ये उदाहरण, नीचे दिखाई गई नियम फ़ाइल के उदाहरण से जुड़े हैं.
- https://google.com पर नेविगेट करना
- इस यूआरएल पर दो नियम लागू होते हैं: आईडी 1 और 4 वाले नियम. आईडी 1 वाला नियम लागू होता है, क्योंकि
"block"कार्रवाइयों को"redirect"कार्रवाइयों की तुलना में ज़्यादा प्राथमिकता दी जाती है. बाकी नियम लागू नहीं होते, क्योंकि वे लंबे यूआरएल के लिए हैं. - https://google.com/1234 पर नेविगेट करना
- यूआरएल लंबा होने की वजह से, आईडी 2 वाला नियम अब आईडी 1 और 4 वाले नियमों के साथ मैच करता है. आईडी 2 वाला नियम लागू होता है, क्योंकि
"allow"की प्राथमिकता"block"और"redirect"से ज़्यादा है. - https://google.com/12345 पर नेविगेट करना
- ये चारों नियम इस यूआरएल से मेल खाते हैं. आईडी 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"]
}
}
यहां "transform" कुंजी का इस्तेमाल करके, example.com के सबडोमेन पर रीडायरेक्ट किया गया है. इसमें डोमेन नेम ऐंकर ("||") का इस्तेमाल किया गया है, ताकि 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"
नेटवर्क का अनुरोध, उस फ़्रेम के लिए फ़र्स्ट पार्टी है जिसमें वह शुरू हुआ था.
"thirdParty"
नेटवर्क का अनुरोध, उस फ़्रेम के लिए तीसरे पक्ष का अनुरोध है जिसमें यह शुरू हुआ.
ExtensionActionOptions
प्रॉपर्टी
-
displayActionCountAsBadgeText
boolean ज़रूरी नहीं है
क्या एक्सटेंशन के बैज टेक्स्ट के तौर पर, किसी पेज के लिए ऐक्शन की संख्या अपने-आप दिखानी है. यह प्राथमिकता सभी सेशन में बनी रहती है.
-
tabUpdate
TabActionCountUpdate optional
Chrome 89 या इसके बाद का वर्शनटैब के ऐक्शन की संख्या को कैसे अडजस्ट किया जाना चाहिए, इसकी जानकारी.
GetDisabledRuleIdsOptions
प्रॉपर्टी
-
rulesetId
स्ट्रिंग
यह किसी स्टैटिक
Rulesetसे जुड़ा आईडी होता है.
GetRulesFilter
प्रॉपर्टी
-
ruleIds
number[] ज़रूरी नहीं
अगर आईडी तय किए जाते हैं, तो सिर्फ़ मैच करने वाले आईडी वाले नियम शामिल किए जाते हैं.
HeaderInfo
प्रॉपर्टी
-
excludedValues
string[] ज़रूरी नहीं है
अगर इस शर्त को पूरा किया जाता है, तो हेडर मौजूद होने पर भी यह शर्त पूरी नहीं होती. हालांकि, इसकी वैल्यू में इस सूची का कम से कम एक एलिमेंट शामिल होना चाहिए. इसमें
valuesके जैसा ही मैच पैटर्न सिंटैक्स इस्तेमाल किया जाता है. -
हेडर
स्ट्रिंग
हेडर का नाम. यह शर्त, नाम से सिर्फ़ तब मेल खाती है, जब
valuesऔरexcludedValues, दोनों को नहीं चुना गया हो. -
वैल्यू
string[] ज़रूरी नहीं है
अगर यह शर्त तय की जाती है, तो यह तब मैच करती है, जब हेडर की वैल्यू इस सूची में मौजूद कम से कम एक पैटर्न से मैच करती हो. यह केस-इनसेंसिटिव हेडर वैल्यू मैचिंग के साथ-साथ, इन कंस्ट्रक्ट के साथ काम करता है:
'*' : इससे वर्णों की किसी भी संख्या का मिलान किया जा सकता है.
'?' : इससे शून्य या एक वर्ण का मिलान होता है.
बैकस्लैश का इस्तेमाल करके, '*' और '?' को एस्केप किया जा सकता है. जैसे, '\*' और '\?'
HeaderOperation
इसमें "modifyHeaders" नियम के लिए संभावित कार्रवाइयों के बारे में बताया गया है.
Enum
"append"
यह तय किए गए हेडर के लिए नई एंट्री जोड़ता है. अनुरोध के हेडर में बदलाव करते समय, यह कार्रवाई सिर्फ़ कुछ हेडर के लिए की जा सकती है.
"set"
यह निर्देश, तय किए गए हेडर के लिए नई वैल्यू सेट करता है. साथ ही, एक ही नाम वाले मौजूदा हेडर हटा देता है.
"remove"
यह विकल्प, तय किए गए हेडर की सभी एंट्री हटा देता है.
IsRegexSupportedResult
प्रॉपर्टी
-
isSupported
बूलियन
-
वजह
UnsupportedRegexReason optional
इस कुकी से यह पता चलता है कि रेगुलर एक्सप्रेशन का इस्तेमाल क्यों नहीं किया जा सकता. यह वैल्यू सिर्फ़ तब दी जाती है, जब
isSupportedकी वैल्यू 'गलत है' पर सेट हो.
MatchedRule
प्रॉपर्टी
-
ruleId
संख्या
मिलते-जुलते नियम का आईडी.
-
rulesetId
स्ट्रिंग
उस
Rulesetका आईडी जिससे यह नियम जुड़ा है. डाइनैमिक नियमों के सेट से बने नियम के लिए, यहDYNAMIC_RULESET_IDके बराबर होगा.
MatchedRuleInfo
प्रॉपर्टी
-
नियम
-
tabId
संख्या
अगर टैब अब भी चालू है, तो उस टैब का tabId जिससे अनुरोध किया गया था. अन्यथा -1.
-
timeStamp
संख्या
नियम के मैच होने का समय. टाइमस्टैंप, समय के लिए JavaScript के नियमों के मुताबिक होंगे. इसका मतलब है कि ये टाइमस्टैंप, epoch के बाद से मिलीसेकंड की संख्या के तौर पर दिखेंगे.
MatchedRuleInfoDebug
प्रॉपर्टी
-
CANNOT TRANSLATE
उस अनुरोध के बारे में जानकारी जिससे नियम मैच हुआ.
-
नियम
MatchedRulesFilter
प्रॉपर्टी
-
minTimeStamp
number optional
अगर यह विकल्प चुना जाता है, तो दिए गए टाइमस्टैंप के बाद के नियमों से ही मैच किया जाता है.
-
tabId
number optional
अगर यह विकल्प चुना जाता है, तो सिर्फ़ दिए गए टैब के नियमों से मेल खाने वाले नतीजे दिखाए जाते हैं. अगर इसे -1 पर सेट किया जाता है, तो यह उन नियमों से मैच करता है जो किसी भी चालू टैब से नहीं जुड़े हैं.
ModifyHeaderInfo
प्रॉपर्टी
-
हेडर
स्ट्रिंग
बदले जाने वाले हेडर का नाम.
-
कार्रवाई
हेडर पर की जाने वाली कार्रवाई.
-
मान
string ज़रूरी नहीं है
हेडर के लिए नई वैल्यू.
appendऔरsetकार्रवाइयों के लिए, इस पैरामीटर की वैल्यू देना ज़रूरी है.
QueryKeyValue
प्रॉपर्टी
-
बटन
स्ट्रिंग
-
replaceOnly
boolean ज़रूरी नहीं है
Chrome 94 या इसके बाद का वर्शनअगर यह वैल्यू सही है, तो क्वेरी कुंजी को सिर्फ़ तब बदला जाता है, जब वह पहले से मौजूद हो. अगर ऐसा नहीं है, तो कुंजी को भी जोड़ दिया जाता है. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होती है.
-
मान
स्ट्रिंग
QueryTransform
प्रॉपर्टी
-
addOrReplaceParams
QueryKeyValue[] optional
जोड़े या बदले जाने वाले क्वेरी की-वैल्यू पेयर की सूची.
-
removeParams
string[] ज़रूरी नहीं है
हटाए जाने वाली क्वेरी कुंजियों की सूची.
Redirect
प्रॉपर्टी
-
extensionPath
string ज़रूरी नहीं है
एक्सटेंशन डायरेक्ट्री के हिसाब से पाथ. यह '/' से शुरू होना चाहिए.
-
regexSubstitution
string ज़रूरी नहीं है
regexFilterके बारे में बताने वाले नियमों के लिए, सब्स्टिट्यूशन पैटर्न. यूआरएल मेंregexFilterका पहला मैच, इस पैटर्न से बदल दिया जाएगा.regexSubstitutionमें, बैकस्लैश से शुरू होने वाले अंक (\1 से \9) इस्तेमाल किए जा सकते हैं, ताकि कैप्चर किए गए ग्रुप डाले जा सकें. \0 से, मैच होने वाले पूरे टेक्स्ट का पता चलता है. -
रूपांतरित करें
URLTransform ज़रूरी नहीं है
यूआरएल में किए जाने वाले ट्रांसफ़ॉर्मेशन.
-
url
string ज़रूरी नहीं है
रीडायरेक्ट करने वाला यूआरएल. JavaScript यूआरएल पर रीडायरेक्ट करने की अनुमति नहीं है.
RegexOptions
प्रॉपर्टी
-
isCaseSensitive
boolean ज़रूरी नहीं है
इससे पता चलता है कि क्या
regexकेस-सेंसिटिव है. डिफ़ॉल्ट रूप से, यह सही पर सेट होता है. -
रेगुलर एक्सप्रेशन
स्ट्रिंग
जांच करने के लिए रेगुलर एक्सप्रेशन.
-
requireCapturing
boolean ज़रूरी नहीं है
इससे पता चलता है कि क्या बताई गई
regexको कैप्चर करना ज़रूरी है. रीडायरेक्ट करने के नियमों के लिए ही कैप्चर करना ज़रूरी है. इन नियमों मेंregexSubstitionकार्रवाई के बारे में बताया जाता है. डिफ़ॉल्ट वैल्यू, गलत पर सेट होती है.
RequestDetails
प्रॉपर्टी
-
documentId
string ज़रूरी नहीं है
Chrome 106 या इसके बाद के वर्शनअगर यह अनुरोध किसी फ़्रेम के लिए है, तो फ़्रेम के दस्तावेज़ के लिए यूनीक आइडेंटिफ़ायर.
-
documentLifecycle
DocumentLifecycle ज़रूरी नहीं है
Chrome 106 या इसके बाद के वर्शनअगर यह अनुरोध किसी फ़्रेम के लिए है, तो फ़्रेम के दस्तावेज़ का लाइफ़साइकल.
-
frameId
संख्या
वैल्यू 0 से पता चलता है कि अनुरोध मुख्य फ़्रेम में किया गया है. पॉज़िटिव वैल्यू से पता चलता है कि अनुरोध किस सबफ़्रेम में किया गया है. अगर किसी (सब-)फ़्रेम का दस्तावेज़ लोड किया जाता है (
typeहैmain_frameयाsub_frame), तोframeIdइस फ़्रेम का आईडी दिखाता है, न कि आउटर फ़्रेम का आईडी. फ़्रेम आईडी, टैब में यूनीक होते हैं. -
frameType
FrameType optional
Chrome 106 या इसके बाद के वर्शनअगर यह अनुरोध किसी फ़्रेम के लिए है, तो फ़्रेम का टाइप.
-
शुरू करने वाला
string ज़रूरी नहीं है
वह ऑरिजिन जहां से अनुरोध शुरू किया गया था. रीडाइरेक्ट करने पर भी इसमें कोई बदलाव नहीं होता. अगर यह ओपेक ऑरिजिन है, तो 'null' स्ट्रिंग का इस्तेमाल किया जाएगा.
-
तरीका
स्ट्रिंग
एचटीटीपी का स्टैंडर्ड तरीका.
-
parentDocumentId
string ज़रूरी नहीं है
Chrome 106 या इसके बाद के वर्शनअगर यह अनुरोध किसी फ़्रेम के लिए है और उसका कोई पैरंट है, तो फ़्रेम के पैरंट दस्तावेज़ के लिए यूनीक आइडेंटिफ़ायर.
-
parentFrameId
संख्या
उस फ़्रेम का आईडी जो अनुरोध भेजने वाले फ़्रेम को रैप करता है. अगर कोई पैरंट फ़्रेम मौजूद नहीं है, तो इसे -1 पर सेट किया जाता है.
-
requestId
स्ट्रिंग
अनुरोध का आईडी. अनुरोध आईडी, ब्राउज़र सेशन में यूनीक होते हैं.
-
tabId
संख्या
उस टैब का आईडी जिसमें अनुरोध किया गया है. अगर अनुरोध किसी टैब से जुड़ा नहीं है, तो इसे -1 पर सेट करें.
-
टाइप
अनुरोध का संसाधन टाइप.
-
url
स्ट्रिंग
अनुरोध का यूआरएल.
RequestMethod
इससे नेटवर्क के अनुरोध के एचटीटीपी अनुरोध के तरीके के बारे में पता चलता है.
Enum
"connect"
"delete"
"get"
"head"
"options"
"patch"
"post"
"put"
"other"
ResourceType
इससे नेटवर्क अनुरोध के संसाधन टाइप के बारे में पता चलता है.
Enum
"main_frame"
"sub_frame"
"stylesheet"
"script"
"image"
"font"
"object"
"xmlhttprequest"
"ping"
"csp_report"
"media"
"websocket"
"webtransport"
"webbundle"
"other"
Rule
प्रॉपर्टी
-
ऐक्शन गेम
यह नियम मैच होने पर की जाने वाली कार्रवाई.
-
शर्त
वह शर्त जिसके पूरा होने पर यह नियम ट्रिगर होता है.
-
id
संख्या
यह एक ऐसा आईडी होता है जो किसी नियम की यूनीक तरीके से पहचान करता है. यह एट्रिब्यूट ज़रूरी है और इसकी वैल्यू 1 या इससे ज़्यादा होनी चाहिए.
-
प्राथमिकता
number optional
नियम की प्राथमिकता. डिफ़ॉल्ट वैल्यू 1 होती है. अगर यह वैल्यू दी गई है, तो यह 1 से ज़्यादा या इसके बराबर होनी चाहिए.
RuleAction
प्रॉपर्टी
-
रीडायरेक्ट करो
रीडायरेक्ट ज़रूरी नहीं है
यह कुकी बताती है कि रीडायरेक्ट कैसे किया जाना चाहिए. यह सिर्फ़ रीडायरेक्ट करने के नियमों के लिए मान्य है.
-
requestHeaders
ModifyHeaderInfo[] ज़रूरी नहीं है
Chrome 86 या इसके बाद के वर्शनअनुरोध के लिए, अनुरोध के हेडर में बदलाव करने का विकल्प. यह सिर्फ़ तब मान्य होता है, जब RuleActionType "modifyHeaders" हो.
-
responseHeaders
ModifyHeaderInfo[] ज़रूरी नहीं है
Chrome 86 या इसके बाद के वर्शनअनुरोध के लिए, रिस्पॉन्स हेडर में बदलाव करना. यह सिर्फ़ तब मान्य होता है, जब RuleActionType "modifyHeaders" हो.
-
टाइप
कार्रवाई का टाइप.
RuleActionType
इससे यह पता चलता है कि अगर कोई RuleCondition मैच होती है, तो किस तरह की कार्रवाई की जानी चाहिए.
Enum
"block"
नेटवर्क के अनुरोध को ब्लॉक करता है.
"redirect"
नेटवर्क का अनुरोध रीडायरेक्ट करें.
"allow"
नेटवर्क अनुरोध को अनुमति दें. अगर अनुमति देने वाला कोई नियम अनुरोध से मैच करता है, तो अनुरोध को इंटरसेप्ट नहीं किया जाएगा.
"upgradeScheme"
अगर अनुरोध एचटीटीपी या एफ़टीपी है, तो नेटवर्क अनुरोध के यूआरएल की स्कीम को एचटीटीपीएस पर अपग्रेड करें.
"modifyHeaders"
नेटवर्क अनुरोध से अनुरोध/जवाब के हेडर में बदलाव करें.
"allowAllRequests"
फ़्रेम के अनुरोध के साथ-साथ, फ़्रेम के क्रम में मौजूद सभी अनुरोधों को अनुमति दें.
RuleCondition
प्रॉपर्टी
-
domainType
DomainType ज़रूरी नहीं है
इससे पता चलता है कि नेटवर्क का अनुरोध, उस डोमेन के लिए पहले पक्ष का है या तीसरे पक्ष का जिससे वह शुरू हुआ है. अगर इसे शामिल नहीं किया जाता है, तो सभी अनुरोध स्वीकार कर लिए जाते हैं.
-
डोमेन
string[] ज़रूरी नहीं है
Chrome 101 से बंद कर दिया गया हैइसके बजाय,
initiatorDomainsका इस्तेमाल करेंयह नियम, सिर्फ़
domainsकी सूची से जनरेट होने वाले नेटवर्क अनुरोधों से मैच करेगा. -
excludedDomains
string[] ज़रूरी नहीं है
Chrome 101 से बंद कर दिया गया हैइसके बजाय,
excludedInitiatorDomainsका इस्तेमाल करेंयह नियम,
excludedDomainsकी सूची से आने वाले नेटवर्क अनुरोधों से मेल नहीं खाएगा. -
excludedInitiatorDomains
string[] ज़रूरी नहीं है
Chrome 101 या इसके बाद के वर्शनयह नियम,
excludedInitiatorDomainsकी सूची से आने वाले नेटवर्क अनुरोधों से मेल नहीं खाएगा. अगर सूची खाली है या इसे शामिल नहीं किया गया है, तो किसी भी डोमेन को बाहर नहीं रखा जाता है. इसेinitiatorDomainsपर प्राथमिकता दी जाती है.ध्यान दें:
- "a.example.com" जैसे सब-डोमेन का भी इस्तेमाल किया जा सकता है.
- एंट्री में सिर्फ़ ASCII वर्ण होने चाहिए.
- अंतरराष्ट्रीय डोमेन के लिए, प्यूनीकोड एन्कोडिंग का इस्तेमाल करें.
- यह अनुरोध करने वाले व्यक्ति से मैच करता है, न कि अनुरोध करने वाले यूआरएल से.
- सूची में शामिल डोमेन के सब-डोमेन भी शामिल नहीं किए जाते.
-
excludedRequestDomains
string[] ज़रूरी नहीं है
Chrome 101 या इसके बाद के वर्शनजब डोमेन,
excludedRequestDomainsकी सूची में मौजूद किसी डोमेन से मेल खाता है, तो यह नियम नेटवर्क के अनुरोधों से मेल नहीं खाएगा. अगर सूची खाली है या इसे शामिल नहीं किया गया है, तो किसी भी डोमेन को बाहर नहीं रखा जाता है. इसेrequestDomainsपर प्राथमिकता दी जाती है.ध्यान दें:
- "a.example.com" जैसे सब-डोमेन का भी इस्तेमाल किया जा सकता है.
- एंट्री में सिर्फ़ ASCII वर्ण होने चाहिए.
- अंतरराष्ट्रीय डोमेन के लिए, प्यूनीकोड एन्कोडिंग का इस्तेमाल करें.
- सूची में शामिल डोमेन के सब-डोमेन भी शामिल नहीं किए जाते.
-
excludedRequestMethods
RequestMethod[] optional
Chrome 91 या इसके बाद के वर्शनअनुरोध के उन तरीकों की सूची जिनसे नियम मैच नहीं करेगा.
requestMethodsऔरexcludedRequestMethodsमें से सिर्फ़ एक को तय किया जाना चाहिए. अगर इनमें से किसी भी तरीके के बारे में नहीं बताया गया है, तो अनुरोध के सभी तरीकों को मैच किया जाता है. -
excludedResourceTypes
ResourceType[] optional
उन संसाधन टाइप की सूची जिनसे नियम मेल नहीं खाएगा.
resourceTypesऔरexcludedResourceTypesमें से सिर्फ़ एक को तय किया जाना चाहिए. अगर इनमें से कोई भी विकल्प नहीं चुना जाता है, तो "main_frame" को छोड़कर, सभी संसाधन टाइप ब्लॉक कर दिए जाते हैं. -
excludedResponseHeaders
HeaderInfo[] optional
Chrome 128 या इसके बाद के वर्शनअगर अनुरोध, इस सूची में दी गई किसी भी रिस्पॉन्स हेडर की शर्त से मेल खाता है, तो नियम मैच नहीं करेगा. अगर
excludedResponseHeadersऔरresponseHeaders, दोनों को सेट किया गया है, तोexcludedResponseHeadersप्रॉपर्टी को प्राथमिकता दी जाती है. -
excludedTabIds
number[] ज़रूरी नहीं
Chrome 92 या इसके बाद का वर्शनउन
tabs.Tab.idकी सूची जिनसे नियम को मैच नहीं करना चाहिए.tabs.TAB_ID_NONEआईडी में, ऐसे अनुरोध शामिल नहीं होते जो किसी टैब से नहीं किए गए हैं. यह सुविधा सिर्फ़ सेशन के स्कोप वाले नियमों के लिए उपलब्ध है. -
excludedTopDomains
string[] ज़रूरी नहीं है
Chrome 145 या इसके बाद के वर्शनजब टॉप-लेवल फ़्रेम का डोमेन,
excludedTopDomainsकी सूची में मौजूद किसी डोमेन से मेल खाता है, तब यह नियम नेटवर्क अनुरोधों से मेल नहीं खाएगा. अगर सूची खाली है या इसे शामिल नहीं किया गया है, तो किसी भी डोमेन को बाहर नहीं रखा जाता है. इसेtopDomainsसे ज़्यादा प्राथमिकता दी जाती है.ध्यान दें:
- "a.example.com" जैसे सब-डोमेन का भी इस्तेमाल किया जा सकता है.
- एंट्री में सिर्फ़ ASCII वर्ण होने चाहिए.
- अंतरराष्ट्रीय डोमेन के लिए, प्यूनीकोड एन्कोडिंग का इस्तेमाल करें.
- सूची में शामिल डोमेन के सब-डोमेन भी शामिल नहीं किए जाते.
- जिन अनुरोधों से कोई टॉप-लेवल फ़्रेम जुड़ा नहीं होता उनके लिए, अनुरोध शुरू करने वाले के डोमेन को माना जाता है. जैसे, ServiceWorker से शुरू किए गए अनुरोध.
-
initiatorDomains
string[] ज़रूरी नहीं है
Chrome 101 या इसके बाद के वर्शनयह नियम, सिर्फ़
initiatorDomainsकी सूची से जनरेट होने वाले नेटवर्क अनुरोधों से मैच करेगा. अगर सूची को शामिल नहीं किया जाता है, तो नियम सभी डोमेन से किए गए अनुरोधों पर लागू होता है. खाली सूची की अनुमति नहीं है.ध्यान दें:
- "a.example.com" जैसे सब-डोमेन का भी इस्तेमाल किया जा सकता है.
- एंट्री में सिर्फ़ ASCII वर्ण होने चाहिए.
- अंतरराष्ट्रीय डोमेन के लिए, प्यूनीकोड एन्कोडिंग का इस्तेमाल करें.
- यह अनुरोध करने वाले व्यक्ति से मैच करता है, न कि अनुरोध करने वाले यूआरएल से.
- सूची में शामिल डोमेन के सब-डोमेन भी मैच किए जाते हैं.
-
isUrlFilterCaseSensitive
boolean ज़रूरी नहीं है
urlFilterयाregexFilter(जो भी तय किया गया है) केस-सेंसिटिव है या नहीं. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होता है. -
regexFilter
string ज़रूरी नहीं है
नेटवर्क के अनुरोध के यूआरएल से मेल खाने के लिए रेगुलर एक्सप्रेशन. यह RE2 सिंटैक्स के मुताबिक है.
ध्यान दें:
urlFilterयाregexFilterमें से सिर्फ़ एक की जानकारी दी जा सकती है.ध्यान दें:
regexFilterमें सिर्फ़ ASCII वर्ण होने चाहिए. इसे ऐसे यूआरएल से मैच किया जाता है जिसमें होस्ट को punycode फ़ॉर्मैट में कोड में बदला गया हो (अंतरराष्ट्रीय डोमेन के मामले में) और किसी भी अन्य नॉन-ASCII वर्ण को UTF-8 में यूआरएल के तौर पर कोड में बदला गया हो. -
requestDomains
string[] ज़रूरी नहीं है
Chrome 101 या इसके बाद के वर्शनयह नियम, नेटवर्क के अनुरोधों से सिर्फ़ तब मैच होगा, जब डोमेन,
requestDomainsकी सूची में मौजूद किसी डोमेन से मैच होता हो. अगर सूची को शामिल नहीं किया जाता है, तो नियम सभी डोमेन से किए गए अनुरोधों पर लागू होता है. खाली सूची की अनुमति नहीं है.ध्यान दें:
- "a.example.com" जैसे सब-डोमेन का भी इस्तेमाल किया जा सकता है.
- एंट्री में सिर्फ़ ASCII वर्ण होने चाहिए.
- अंतरराष्ट्रीय डोमेन के लिए, प्यूनीकोड एन्कोडिंग का इस्तेमाल करें.
- सूची में शामिल डोमेन के सब-डोमेन भी मैच किए जाते हैं.
-
requestMethods
RequestMethod[] optional
Chrome 91 या इसके बाद के वर्शनएचटीटीपी अनुरोध के उन तरीकों की सूची जिनसे नियम मेल खा सकता है. खाली सूची की अनुमति नहीं है.
ध्यान दें:
requestMethodsनियम की शर्त तय करने पर, बिना एचटीटीपी(एस) वाले अनुरोध भी शामिल नहीं किए जाएंगे. हालांकि,excludedRequestMethodsतय करने पर ऐसा नहीं होगा. -
resourceTypes
ResourceType[] optional
संसाधन टाइप की सूची, जिनसे नियम मैच कर सकता है. खाली सूची की अनुमति नहीं है.
ध्यान दें: इसे
allowAllRequestsनियमों के लिए तय करना ज़रूरी है. इसमें सिर्फ़sub_frameऔरmain_frameसंसाधन टाइप शामिल हो सकते हैं. -
responseHeaders
HeaderInfo[] optional
Chrome 128 या इसके बाद के वर्शनअगर अनुरोध, इस सूची में दी गई किसी भी रिस्पॉन्स हेडर की शर्त से मेल खाता है, तो नियम मैच करता है. हालांकि, ऐसा तब होता है, जब शर्त दी गई हो.
-
tabIds
number[] ज़रूरी नहीं
Chrome 92 या इसके बाद का वर्शनtabs.Tab.idकी सूची, जिससे नियम मेल खाना चाहिए.tabs.TAB_ID_NONEका आईडी, उन अनुरोधों से मैच करता है जो किसी टैब से नहीं किए गए हैं. खाली सूची की अनुमति नहीं है. यह सुविधा सिर्फ़ सेशन के स्कोप वाले नियमों के लिए उपलब्ध है. -
topDomains
string[] ज़रूरी नहीं है
Chrome 145 या इसके बाद के वर्शनयह नियम सिर्फ़ तब नेटवर्क अनुरोधों से मैच करेगा, जब इससे जुड़े टॉप-लेवल फ़्रेम का डोमेन,
topDomainsकी सूची में मौजूद किसी डोमेन से मैच करता हो. अगर सूची शामिल नहीं की जाती है, तो यह नियम सभी टॉप-लेवल फ़्रेम डोमेन से जुड़े अनुरोधों पर लागू होता है. खाली सूची की अनुमति नहीं है.ध्यान दें:
- "a.example.com" जैसे सब-डोमेन का भी इस्तेमाल किया जा सकता है.
- एंट्री में सिर्फ़ ASCII वर्ण होने चाहिए.
- अंतरराष्ट्रीय डोमेन के लिए, प्यूनीकोड एन्कोडिंग का इस्तेमाल करें.
- सूची में शामिल डोमेन के सब-डोमेन भी मैच किए जाते हैं.
- जिन अनुरोधों से कोई टॉप-लेवल फ़्रेम जुड़ा नहीं होता उनके लिए, अनुरोध शुरू करने वाले के डोमेन को माना जाता है. जैसे, ServiceWorker से शुरू किए गए अनुरोध.
-
urlFilter
string ज़रूरी नहीं है
यह पैटर्न, नेटवर्क अनुरोध के यूआरएल से मैच किया जाता है. इस्तेमाल किए जा सकने वाले कंस्ट्रक्ट:
'*' : वाइल्डकार्ड: यह किसी भी संख्या के वर्णों से मेल खाता है.
'|' : लेफ्ट/राइट ऐंकर: अगर इसका इस्तेमाल पैटर्न के किसी भी एक छोर पर किया जाता है, तो यह यूआरएल की शुरुआत/आखिर को दिखाता है.
'||' : डोमेन नेम ऐंकर: अगर इसका इस्तेमाल पैटर्न की शुरुआत में किया जाता है, तो यह यूआरएल के (सब-)डोमेन की शुरुआत के बारे में बताता है.
'^' : सेपरेटर वर्ण: यह अक्षर, अंक या इनमें से किसी एक के अलावा किसी भी वर्ण से मेल खाता है:
_,-,.या%. यह यूआरएल के आखिरी हिस्से से भी मैच करता है.इसलिए,
urlFilterमें ये हिस्से शामिल होते हैं: (लेफ़्ट ऐंकर/डोमेन नाम ऐंकर, यह ज़रूरी नहीं है) + पैटर्न + (राइट ऐंकर, यह ज़रूरी नहीं है).अगर इसे शामिल नहीं किया जाता है, तो सभी यूआरएल मैच किए जाते हैं. खाली स्ट्रिंग की अनुमति नहीं है.
||*से शुरू होने वाले पैटर्न की अनुमति नहीं है. इसके बजाय,*का इस्तेमाल करें.ध्यान दें:
urlFilterयाregexFilterमें से सिर्फ़ एक की जानकारी दी जा सकती है.ध्यान दें:
urlFilterमें सिर्फ़ ASCII वर्ण होने चाहिए. इसे ऐसे यूआरएल से मैच किया जाता है जिसमें होस्ट को punycode फ़ॉर्मैट में कोड में बदला गया हो (अंतरराष्ट्रीय डोमेन के मामले में) और किसी भी अन्य नॉन-ASCII वर्ण को UTF-8 में यूआरएल के तौर पर कोड में बदला गया हो. उदाहरण के लिए, जब अनुरोध किया गया यूआरएल http://abc.рф?q=ф होता है, तबurlFilterकी तुलना http://abc.xn--p1ai/?q=%D1%84 यूआरएल से की जाएगी.
RuleConditionKeys
Enum
"urlFilter"
"regexFilter"
"isUrlFilterCaseSensitive"
"initiatorDomains"
"excludedInitiatorDomains"
"requestDomains"
"excludedRequestDomains"
"topDomains"
"excludedTopDomains"
"domains"
"excludedDomains"
"resourceTypes"
"excludedResourceTypes"
"requestMethods"
"excludedRequestMethods"
"domainType"
"tabIds"
"excludedTabIds"
"responseHeaders"
"excludedResponseHeaders"
Ruleset
प्रॉपर्टी
-
चालू किया गया
बूलियन
यह बताता है कि नियमों का सेट डिफ़ॉल्ट रूप से चालू है या नहीं.
-
id
स्ट्रिंग
यह एक ऐसी स्ट्रिंग होती है जिसमें कुछ न कुछ वैल्यू मौजूद होती है. इससे नियमों के सेट की यूनीक तरीके से पहचान की जाती है. '_' से शुरू होने वाले आईडी, इंटरनल इस्तेमाल के लिए रिज़र्व किए जाते हैं.
-
पाथ
स्ट्रिंग
एक्सटेंशन डायरेक्ट्री के हिसाब से JSON नियमों के सेट का पाथ.
RulesMatchedDetails
प्रॉपर्टी
-
rulesMatchedInfo
दिए गए फ़िल्टर से मेल खाने वाले नियम.
TabActionCountUpdate
प्रॉपर्टी
-
अधिक
संख्या
टैब पर की गई कार्रवाई की संख्या में बढ़ोतरी करने के लिए इस्तेमाल की जाने वाली वैल्यू. नेगेटिव वैल्यू से गिनती कम हो जाएगी.
-
tabId
संख्या
वह टैब जिसके लिए ऐक्शन की संख्या अपडेट करनी है.
TestMatchOutcomeResult
प्रॉपर्टी
-
matchedRules
ऐसे नियम (अगर कोई हो) जो काल्पनिक अनुरोध से मेल खाते हैं.
TestMatchRequestDetails
प्रॉपर्टी
-
शुरू करने वाला
string ज़रूरी नहीं है
काल्पनिक अनुरोध के लिए, अनुरोध शुरू करने वाले का यूआरएल (अगर कोई हो).
-
तरीका
RequestMethod ज़रूरी नहीं है
काल्पनिक अनुरोध का स्टैंडर्ड एचटीटीपी तरीका. एचटीटीपी अनुरोधों के लिए, यह डिफ़ॉल्ट रूप से "get" पर सेट होता है. साथ ही, इसे गैर-एचटीटीपी अनुरोधों के लिए अनदेखा कर दिया जाता है.
-
responseHeaders
ऑब्जेक्ट ज़रूरी नहीं
Chrome 129 और इसके बाद के वर्शनअगर अनुरोध को भेजने से पहले ब्लॉक या रीडायरेक्ट नहीं किया जाता है, तो काल्पनिक जवाब से मिले हेडर. इसे एक ऑब्जेक्ट के तौर पर दिखाया जाता है. यह ऑब्जेक्ट, हेडर के नाम को स्ट्रिंग वैल्यू की सूची से मैप करता है. अगर यह तय नहीं किया जाता है, तो काल्पनिक जवाब में खाली रिस्पॉन्स हेडर दिखेंगे. ये ऐसे नियमों से मेल खा सकते हैं जो हेडर के मौजूद न होने पर मैच करते हैं. उदा.
{"content-type": ["text/html; charset=utf-8", "multipart/form-data"]} -
tabId
number optional
उस टैब का आईडी जिसमें हाइपोथेटिकल अनुरोध किया जाता है. इसका किसी असली टैब आईडी से मेल खाना ज़रूरी नहीं है. डिफ़ॉल्ट वैल्यू -1 होती है. इसका मतलब है कि अनुरोध किसी टैब से जुड़ा नहीं है.
-
topUrl
string ज़रूरी नहीं है
Chrome 145 या इसके बाद के वर्शनअनुरोध के लिए, जुड़ा हुआ टॉप-लेवल फ़्रेम यूआरएल (अगर कोई है).
-
टाइप
यह प्रॉपर्टी, काल्पनिक अनुरोध के संसाधन का टाइप दिखाती है.
-
url
स्ट्रिंग
काल्पनिक अनुरोध का यूआरएल.
UnsupportedRegexReason
इस फ़ील्ड में यह जानकारी होती है कि दिए गए रेगुलर एक्सप्रेशन का इस्तेमाल क्यों नहीं किया जा सकता.
Enum
"syntaxError"
रेगुलर एक्सप्रेशन का सिंटैक्स गलत है या इसमें ऐसी सुविधाओं का इस्तेमाल किया गया है जो RE2 सिंटैक्स में उपलब्ध नहीं हैं.
"memoryLimitExceeded"
रेगुलर एक्सप्रेशन, मेमोरी की तय सीमा से ज़्यादा है.
UpdateRuleOptions
प्रॉपर्टी
-
addRules
Rule[] optional
जोड़ने के लिए नियम.
-
removeRuleIds
number[] ज़रूरी नहीं
हटाए जाने वाले नियमों के आईडी. अमान्य आईडी को अनदेखा कर दिया जाएगा.
UpdateRulesetOptions
प्रॉपर्टी
UpdateStaticRulesOptions
प्रॉपर्टी
URLTransform
प्रॉपर्टी
-
फ़्रैगमेंट
string ज़रूरी नहीं है
अनुरोध के लिए नया फ़्रैगमेंट. यह खाली होना चाहिए. ऐसा होने पर, मौजूदा फ़्रैगमेंट मिट जाता है. इसके अलावा, यह '#' से शुरू होना चाहिए.
-
होस्ट
string ज़रूरी नहीं है
अनुरोध के लिए नया होस्ट.
-
पासवर्ड
string ज़रूरी नहीं है
अनुरोध के लिए नया पासवर्ड.
-
पाथ
string ज़रूरी नहीं है
अनुरोध के लिए नया पाथ. अगर यह खाली है, तो मौजूदा पाथ मिटा दिया जाता है.
-
पोर्ट
string ज़रूरी नहीं है
अनुरोध के लिए नया पोर्ट. अगर इसे खाली छोड़ा जाता है, तो मौजूदा पोर्ट को हटा दिया जाता है.
-
क्वेरी
string ज़रूरी नहीं है
अनुरोध के लिए नई क्वेरी. यह फ़ील्ड खाली होना चाहिए. ऐसा होने पर, मौजूदा क्वेरी मिटा दी जाती है. इसके अलावा, यह फ़ील्ड '?' से शुरू होना चाहिए.
-
queryTransform
QueryTransform ज़रूरी नहीं है
क्वेरी के की-वैल्यू पेयर जोड़ें, हटाएं या बदलें.
-
स्कीम
string ज़रूरी नहीं है
अनुरोध के लिए नई स्कीम. "http", "https", "ftp", और "chrome-extension" वैल्यू का इस्तेमाल किया जा सकता है.
-
उपयोगकर्ता नाम
string ज़रूरी नहीं है
अनुरोध के लिए नया उपयोगकर्ता नाम.
प्रॉपर्टी
DYNAMIC_RULESET_ID
एक्सटेंशन की ओर से जोड़े गए डाइनैमिक नियमों के लिए, नियमों के सेट का आईडी.
वैल्यू
"_dynamic"
GETMATCHEDRULES_QUOTA_INTERVAL
यह वह समयावधि होती है जिसके दौरान MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules कॉल किए जा सकते हैं. इसे मिनटों में तय किया जाता है. इसके बाद किए जाने वाले कॉल तुरंत फ़ेल हो जाएंगे और runtime.lastError सेट हो जाएगा. ध्यान दें: उपयोगकर्ता के जेस्चर से जुड़े getMatchedRules कॉल, कोटे से बाहर रखे जाते हैं.
वैल्यू
10
GUARANTEED_MINIMUM_STATIC_RULES
यह एक्सटेंशन के लिए, चालू किए गए स्टैटिक नियमों के सेट में कम से कम स्टैटिक नियमों की संख्या होती है. इस सीमा से ज़्यादा के सभी नियम, ग्लोबल स्टैटिक नियम की सीमा में गिने जाएंगे.
वैल्यू
30000
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL
GETMATCHEDRULES_QUOTA_INTERVAL की अवधि में, getMatchedRules को कितनी बार कॉल किया जा सकता है.
वैल्यू
20
MAX_NUMBER_OF_DYNAMIC_RULES
डाइनैमिक नियमों की ज़्यादा से ज़्यादा संख्या, जिन्हें एक्सटेंशन जोड़ सकता है.
वैल्यू
30000
MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
एक्सटेंशन, एक बार में ज़्यादा से ज़्यादा Rulesets स्टैटिक ऐसेट चालू कर सकता है.
वैल्यू
50
MAX_NUMBER_OF_REGEX_RULES
रेगुलर एक्सप्रेशन के नियमों की वह ज़्यादा से ज़्यादा संख्या जिसे कोई एक्सटेंशन जोड़ सकता है. यह सीमा, डाइनैमिक नियमों के सेट और नियम के संसाधन फ़ाइल में तय किए गए नियमों के लिए अलग-अलग तय की जाती है.
वैल्यू
1000
MAX_NUMBER_OF_SESSION_RULES
सेशन के दायरे वाले नियमों की ज़्यादा से ज़्यादा संख्या, जिन्हें एक्सटेंशन जोड़ सकता है.
वैल्यू
5000
MAX_NUMBER_OF_STATIC_RULESETS
एक्सटेंशन, "rule_resources" मेनिफ़ेस्ट कुंजी के हिस्से के तौर पर ज़्यादा से ज़्यादा Rulesets स्टैटिक इमेज तय कर सकता है.
वैल्यू
100
MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
एक्सटेंशन, ज़्यादा से ज़्यादा कितने "असुरक्षित" डाइनैमिक नियम जोड़ सकता है.
वैल्यू
5000
MAX_NUMBER_OF_UNSAFE_SESSION_RULES
सेशन के दायरे वाले "असुरक्षित" नियमों की ज़्यादा से ज़्यादा संख्या, जिन्हें एक्सटेंशन जोड़ सकता है.
वैल्यू
5000
SESSION_RULESET_ID
यह एक्सटेंशन के ज़रिए जोड़े गए सेशन के स्कोप वाले नियमों के लिए, नियमों के सेट का आईडी होता है.
वैल्यू
"_session"
तरीके
getAvailableStaticRuleCount()
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
callback?: function,
): Promise<number>
इससे यह पता चलता है कि एक्सटेंशन, स्टैटिक नियमों की ग्लोबल सीमा तक पहुंचने से पहले, कितने स्टैटिक नियमों को चालू कर सकता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं है
callbackपैरामीटर ऐसा दिखता है:(count: number) => void
-
सोलर पैनलों की संख्या
संख्या
-
रिटर्न
-
Promise<number>
Chrome 91 या इसके बाद के वर्शनप्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
getDisabledRuleIds()
chrome.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
callback?: function,
): Promise<number[]>
यह फ़ंक्शन, दिए गए Ruleset में मौजूद उन स्टैटिक नियमों की सूची दिखाता है जो फ़िलहाल बंद हैं.
पैरामीटर
-
विकल्प
क्वेरी करने के लिए नियमों का सेट तय करता है.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं है
callbackपैरामीटर ऐसा दिखता है:(disabledRuleIds: number[]) => void
-
disabledRuleIds
number[]
-
रिटर्न
-
Promise<number[]>
यह प्रॉमिस, उन आईडी की सूची के साथ रिज़ॉल्व होता है जो उस नियम सेट में बंद किए गए नियमों से मेल खाते हैं.
प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
getDynamicRules()
chrome.declarativeNetRequest.getDynamicRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
यह एक्सटेंशन के लिए, डाइनैमिक नियमों का मौजूदा सेट दिखाता है. कॉल करने वाले लोग, फ़ेच किए गए नियमों की सूची को फ़िल्टर कर सकते हैं. इसके लिए, उन्हें filter तय करना होगा.
पैरामीटर
-
फ़िल्टर
GetRulesFilter ज़रूरी नहीं
Chrome 111 या इसके बाद का वर्शनफ़ेच किए गए नियमों की सूची को फ़िल्टर करने के लिए ऑब्जेक्ट.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं है
callbackपैरामीटर ऐसा दिखता है:(rules: Rule[]) => void
-
नियम
Rule[]
-
रिटर्न
-
Promise<Rule[]>
Chrome 91 या इसके बाद के वर्शनऐसा प्रॉमिस जो डाइनैमिक नियमों के सेट के साथ रिज़ॉल्व होता है. सिस्टम में कुछ समय के लिए होने वाली गड़बड़ियों की वजह से, Promise को अस्वीकार किया जा सकता है.
प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
getEnabledRulesets()
chrome.declarativeNetRequest.getEnabledRulesets(
callback?: function,
): Promise<string[]>
यह फ़ंक्शन, चालू किए गए स्टैटिक नियमों के मौजूदा सेट के आईडी दिखाता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं है
callbackपैरामीटर ऐसा दिखता है:(rulesetIds: string[]) => void
-
rulesetIds
string[]
-
रिटर्न
-
Promise<string[]>
Chrome 91 या इसके बाद के वर्शनयह प्रॉमिस, आईडी की सूची के साथ पूरा होता है. इसमें हर आईडी, चालू किए गए स्टैटिक
Rulesetसे मेल खाता है.प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
getMatchedRules()
chrome.declarativeNetRequest.getMatchedRules(
filter?: MatchedRulesFilter,
callback?: function,
): Promise<RulesMatchedDetails>
यह एक्सटेंशन से मेल खाने वाले सभी नियमों को दिखाता है. कॉल करने वाले लोग, मैच किए गए नियमों की सूची को फ़िल्टर कर सकते हैं. इसके लिए, उन्हें filter तय करना होगा. यह तरीका सिर्फ़ उन एक्सटेंशन के लिए उपलब्ध है जिनके पास "declarativeNetRequestFeedback" अनुमति है या जिन्हें filter में बताए गए tabId के लिए "activeTab" अनुमति दी गई है. ध्यान दें: अगर कोई नियम किसी ऐसे दस्तावेज़ से नहीं जुड़ा है जो अभी खुला हुआ है और वह पांच मिनट से ज़्यादा समय पहले मैच हुआ था, तो उसे नहीं दिखाया जाएगा.
पैरामीटर
-
फ़िल्टर
MatchedRulesFilter ज़रूरी नहीं है
यह एक ऑब्जेक्ट है. इसका इस्तेमाल, मैच किए गए नियमों की सूची को फ़िल्टर करने के लिए किया जाता है.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं है
callbackपैरामीटर ऐसा दिखता है:(details: RulesMatchedDetails) => void
-
ब्यौरा
-
रिटर्न
-
Promise<RulesMatchedDetails>
Chrome 91 या इसके बाद के वर्शनयह एक प्रॉमिस है. मैच किए गए नियमों की सूची फ़ेच होने के बाद, इसे रिज़ॉल्व कर दिया जाता है. गड़बड़ी होने पर, Promise को अस्वीकार कर दिया जाएगा. ऐसा कई वजहों से हो सकता है. जैसे, ज़रूरी अनुमतियां न होना या कोटे से ज़्यादा इस्तेमाल करना.
प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
getSessionRules()
chrome.declarativeNetRequest.getSessionRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
यह एक्सटेंशन के लिए, सेशन के दायरे वाले नियमों का मौजूदा सेट दिखाता है. कॉल करने वाले लोग, फ़ेच किए गए नियमों की सूची को फ़िल्टर कर सकते हैं. इसके लिए, उन्हें filter तय करना होगा.
पैरामीटर
-
फ़िल्टर
GetRulesFilter ज़रूरी नहीं
Chrome 111 या इसके बाद का वर्शनफ़ेच किए गए नियमों की सूची को फ़िल्टर करने के लिए ऑब्जेक्ट.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं है
callbackपैरामीटर ऐसा दिखता है:(rules: Rule[]) => void
-
नियम
Rule[]
-
रिटर्न
-
Promise<Rule[]>
Chrome 91 या इसके बाद के वर्शनयह प्रॉमिस, सेशन के स्कोप वाले नियमों के सेट के साथ रिज़ॉल्व होता है.
प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
isRegexSupported()
chrome.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
callback?: function,
): Promise<IsRegexSupportedResult>
इस फ़ंक्शन से यह पता चलता है कि दिया गया रेगुलर एक्सप्रेशन, regexFilter नियम की शर्त के तौर पर इस्तेमाल किया जा सकता है या नहीं.
पैरामीटर
-
regexOptions
जांच करने के लिए रेगुलर एक्सप्रेशन.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं है
callbackपैरामीटर ऐसा दिखता है:(result: IsRegexSupportedResult) => void
-
नतीजा
-
रिटर्न
-
Promise<IsRegexSupportedResult>
Chrome 91 या इसके बाद के वर्शनयह प्रॉमिस, रेगुलर एक्सप्रेशन के काम करने से जुड़ी जानकारी देता है. इसमें यह बताया जाता है कि रेगुलर एक्सप्रेशन काम करता है या नहीं. अगर काम नहीं करता, तो इसकी वजह भी बताई जाती है.
प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
setExtensionActionOptions()
chrome.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
callback?: function,
): Promise<void>
यह कुकी कॉन्फ़िगर करती है कि टैब के लिए कार्रवाई की संख्या को एक्सटेंशन ऐक्शन के बैज टेक्स्ट के तौर पर दिखाया जाना चाहिए या नहीं. साथ ही, यह कार्रवाई की संख्या को बढ़ाने का तरीका भी उपलब्ध कराती है.
पैरामीटर
-
विकल्प
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं है
Chrome 89 या इसके बाद का वर्शनcallbackपैरामीटर ऐसा दिखता है:() => void
रिटर्न
-
Promise<void>
Chrome 91 या इसके बाद के वर्शनप्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
testMatchOutcome()
chrome.declarativeNetRequest.testMatchOutcome(
request: TestMatchRequestDetails,
callback?: function,
): Promise<TestMatchOutcomeResult>
यह फ़ंक्शन जांच करता है कि एक्सटेंशन के declarativeNetRequest नियमों में से कोई नियम, काल्पनिक अनुरोध से मेल खाता है या नहीं. ध्यान दें: यह सुविधा सिर्फ़ अनपैक किए गए एक्सटेंशन के लिए उपलब्ध है, क्योंकि इसका इस्तेमाल सिर्फ़ एक्सटेंशन डेवलपमेंट के दौरान किया जाना चाहिए.
पैरामीटर
-
CANNOT TRANSLATE
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं है
callbackपैरामीटर ऐसा दिखता है:(result: TestMatchOutcomeResult) => void
-
नतीजा
-
रिटर्न
-
Promise<TestMatchOutcomeResult>
यह प्रॉमिस, मैच किए गए नियमों की जानकारी के साथ पूरा होता है.
प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
updateDynamicRules()
chrome.declarativeNetRequest.updateDynamicRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
यह एक्सटेंशन के लिए, डाइनैमिक नियमों के मौजूदा सेट में बदलाव करता है. options.removeRuleIds में दिए गए आईडी वाले नियमों को पहले हटाया जाता है. इसके बाद, options.addRules में दिए गए नियमों को जोड़ा जाता है. ध्यान दें:
- यह अपडेट एक ही ऐटॉमिक ऑपरेशन के तौर पर होता है: या तो तय किए गए सभी नियम जोड़े और हटाए जाते हैं या गड़बड़ी का मैसेज दिखता है.
- ये नियम, ब्राउज़र सेशन और एक्सटेंशन अपडेट के दौरान बने रहते हैं.
- एक्सटेंशन पैकेज के हिस्से के तौर पर तय किए गए स्टैटिक नियमों को इस फ़ंक्शन का इस्तेमाल करके नहीं हटाया जा सकता.
MAX_NUMBER_OF_DYNAMIC_RULES, डाइनैमिक नियमों की वह ज़्यादा से ज़्यादा संख्या है जिसे कोई एक्सटेंशन जोड़ सकता है. सुरक्षित नहीं मानी जाने वाली शर्तों की संख्याMAX_NUMBER_OF_UNSAFE_DYNAMIC_RULESसे ज़्यादा नहीं होनी चाहिए.
पैरामीटर
-
विकल्पChrome 87 या इसके बाद का वर्शन
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं है
callbackपैरामीटर ऐसा दिखता है:() => void
रिटर्न
-
Promise<void>
Chrome 91 या इसके बाद के वर्शनअपडेट पूरा होने के बाद, यह प्रॉमिस पूरा हो जाता है. गड़बड़ी होने पर, प्रॉमिस को अस्वीकार कर दिया जाएगा और नियम के सेट में कोई बदलाव नहीं किया जाएगा. ऐसा कई वजहों से हो सकता है. जैसे, नियम का फ़ॉर्मैट अमान्य होना, डुप्लीकेट नियम आईडी, नियमों की संख्या की सीमा पार हो जाना, सिस्टम की गड़बड़ियां वगैरह.
प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
updateEnabledRulesets()
chrome.declarativeNetRequest.updateEnabledRulesets(
options: UpdateRulesetOptions,
callback?: function,
): Promise<void>
यह एक्सटेंशन के लिए, चालू किए गए स्टैटिक नियमों के सेट को अपडेट करता है. सबसे पहले, options.disableRulesetIds में दिए गए आईडी वाले नियम सेट हटाए जाते हैं. इसके बाद, options.enableRulesetIds में दिए गए नियम सेट जोड़े जाते हैं.
ध्यान दें कि चालू की गई स्टैटिक रूलसेट का सेट, अलग-अलग सेशन में बना रहता है.हालांकि, एक्सटेंशन अपडेट होने पर ऐसा नहीं होता. इसका मतलब है कि rule_resources मेनिफ़ेस्ट कुंजी, हर एक्सटेंशन अपडेट पर चालू की गई स्टैटिक रूलसेट का सेट तय करेगी.
पैरामीटर
-
विकल्पChrome 87 या इसके बाद का वर्शन
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं है
callbackपैरामीटर ऐसा दिखता है:() => void
रिटर्न
-
Promise<void>
Chrome 91 या इसके बाद के वर्शनअपडेट पूरा होने के बाद, यह प्रॉमिस पूरा हो जाता है. गड़बड़ी होने पर, प्रॉमिस को अस्वीकार कर दिया जाएगा. साथ ही, चालू की गई नियम सेट की सूची में कोई बदलाव नहीं किया जाएगा. ऐसा कई वजहों से हो सकता है. जैसे, नियमों के सेट के अमान्य आईडी, नियमों की संख्या की सीमा पार हो गई हो या सिस्टम में गड़बड़ियां हों.
प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
updateSessionRules()
chrome.declarativeNetRequest.updateSessionRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
यह एक्सटेंशन के लिए, सेशन के स्कोप वाले नियमों के मौजूदा सेट में बदलाव करता है. options.removeRuleIds में दिए गए आईडी वाले नियमों को पहले हटाया जाता है. इसके बाद, options.addRules में दिए गए नियमों को जोड़ा जाता है. ध्यान दें:
- यह अपडेट एक ही बार में होता है: या तो तय किए गए सभी नियम जोड़ दिए जाते हैं और हटा दिए जाते हैं या गड़बड़ी का मैसेज दिखता है.
- ये नियम, सेशन के दौरान बने रहते हैं और मेमोरी में सेव होते हैं.
MAX_NUMBER_OF_SESSION_RULES, सेशन के नियमों की वह ज़्यादा से ज़्यादा संख्या है जिसे कोई एक्सटेंशन जोड़ सकता है.
पैरामीटर
-
विकल्प
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं है
callbackपैरामीटर ऐसा दिखता है:() => void
रिटर्न
-
Promise<void>
Chrome 91 या इसके बाद के वर्शनअपडेट पूरा होने के बाद, यह प्रॉमिस पूरा हो जाता है. गड़बड़ी होने पर, प्रॉमिस को अस्वीकार कर दिया जाएगा और नियम के सेट में कोई बदलाव नहीं किया जाएगा. ऐसा कई वजहों से हो सकता है. जैसे, नियम का फ़ॉर्मैट अमान्य होना, नियम का आईडी डुप्लीकेट होना, नियमों की संख्या की सीमा से ज़्यादा होना वगैरह.
प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
updateStaticRules()
chrome.declarativeNetRequest.updateStaticRules(
options: UpdateStaticRulesOptions,
callback?: function,
): Promise<void>
इस विकल्प की मदद से, Ruleset में मौजूद अलग-अलग स्टैटिक नियमों को बंद और चालू किया जा सकता है. बंद किए गए Ruleset से जुड़े नियमों में किए गए बदलाव, अगली बार चालू होने पर लागू होंगे.
पैरामीटर
-
विकल्प
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं है
callbackपैरामीटर ऐसा दिखता है:() => void
रिटर्न
-
Promise<void>
अपडेट पूरा होने पर, यह प्रॉमिस रिज़ॉल्व हो जाता है. गड़बड़ी होने पर, प्रॉमिस को अस्वीकार कर दिया जाएगा. साथ ही, चालू किए गए स्टैटिक नियमों में कोई बदलाव नहीं किया जाएगा.
प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
इवेंट
onRuleMatchedDebug
chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
callback: function,
)
यह इवेंट तब ट्रिगर होता है, जब कोई नियम किसी अनुरोध से मैच होता है. यह सुविधा सिर्फ़ अनपैक किए गए एक्सटेंशन के लिए उपलब्ध है. इसके लिए, "declarativeNetRequestFeedback" अनुमति होना ज़रूरी है, क्योंकि इसका इस्तेमाल सिर्फ़ डीबग करने के लिए किया जाता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:(info: MatchedRuleInfoDebug) => void
-
जानकारी
-