বর্ণনা
ডিক্লারেটিভ নিয়ম নির্দিষ্ট করার মাধ্যমে নেটওয়ার্ক রিকোয়েস্ট ব্লক বা পরিবর্তন করতে chrome.declarativeNetRequest API ব্যবহার করা হয়। এর ফলে এক্সটেনশনগুলো নেটওয়ার্ক রিকোয়েস্টকে বাধা না দিয়ে বা তার বিষয়বস্তু না দেখেই পরিবর্তন করতে পারে, যা আরও বেশি গোপনীয়তা নিশ্চিত করে।
অনুমতি
declarativeNetRequestdeclarativeNetRequestWithHostAccess declarativeNetRequestFeedback
host_permissions
প্রাপ্যতা
প্রকাশ
উপরে বর্ণিত অনুমতিগুলো ছাড়াও, নির্দিষ্ট ধরণের রুলসেট, বিশেষ করে স্ট্যাটিক রুলসেটের জন্য, "declarative_net_request" ম্যানিফেস্ট কী-টি ডিক্লেয়ার করা প্রয়োজন। এই কী-টি একটি ডিকশনারি হওয়া উচিত, যার মধ্যে "rule_resources" নামে একটিমাত্র কী থাকবে। এই কী-টি হলো Ruleset টাইপের ডিকশনারি ধারণকারী একটি অ্যারে, যা নিচে দেখানো হয়েছে। (উল্লেখ্য যে, 'Ruleset' নামটি ম্যানিফেস্টের JSON-এ দেখা যায় না, কারণ এটি শুধুমাত্র একটি অ্যারে।) এই ডকুমেন্টের পরবর্তী অংশে স্ট্যাটিক রুলসেট সম্পর্কে ব্যাখ্যা করা হয়েছে।
{
"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 ব্যবহার করতে, এক বা একাধিক রুলসেট নির্দিষ্ট করুন। একটি রুলসেটে নিয়মগুলির একটি অ্যারে থাকে। একটি একক নিয়ম নিম্নলিখিত কাজগুলির মধ্যে একটি করে থাকে:
- একটি নেটওয়ার্ক অনুরোধ ব্লক করুন।
- স্কিমা আপগ্রেড করুন (http থেকে https)।
- যেকোনো মিলে যাওয়া ব্লক করা নিয়মকে বাতিল করে কোনো অনুরোধকে ব্লক হওয়া থেকে প্রতিরোধ করুন।
- একটি নেটওয়ার্ক অনুরোধ পুনঃনির্দেশ করুন।
- অনুরোধ বা প্রতিক্রিয়ার হেডার পরিবর্তন করুন।
তিন ধরনের নিয়মাবলী রয়েছে, যেগুলো কিছুটা ভিন্ন উপায়ে পরিচালিত হয়।
- গতিশীল
- ব্রাউজার সেশন এবং এক্সটেনশন আপগ্রেডের পরেও এটি অপরিবর্তিত থাকে এবং এক্সটেনশনটি ব্যবহারের সময় জাভাস্ক্রিপ্ট ব্যবহার করে এটি পরিচালিত হয়।
- অধিবেশন
- ব্রাউজার বন্ধ হলে এবং এক্সটেনশনের নতুন সংস্করণ ইনস্টল করা হলে এটি মুছে যায়। এক্সটেনশনটি ব্যবহৃত হওয়ার সময় জাভাস্ক্রিপ্ট ব্যবহার করে সেশন নিয়মগুলো পরিচালনা করা হয়।
- স্থির
- যখন কোনো এক্সটেনশন ইনস্টল বা আপগ্রেড করা হয়, তখন এটি প্যাকেজ, ইনস্টল এবং আপডেট করা হয়। স্ট্যাটিক নিয়মগুলো JSON-ফরম্যাটের রুল ফাইলে সংরক্ষিত থাকে এবং ম্যানিফেস্ট ফাইলে তালিকাভুক্ত করা হয়।
পরবর্তী কয়েকটি বিভাগে রুলসেটের প্রকারভেদ বিস্তারিতভাবে ব্যাখ্যা করা হয়েছে।
গতিশীল এবং সেশন-স্কোপড নিয়মসেট
এক্সটেনশনটি ব্যবহারের সময় জাভাস্ক্রিপ্ট ব্যবহার করে ডাইনামিক ও সেশন রুলসেটগুলো পরিচালনা করা হয়।
- ডাইনামিক নিয়মগুলো ব্রাউজার সেশন এবং এক্সটেনশন আপগ্রেডের পরেও অপরিবর্তিত থাকে।
- ব্রাউজার বন্ধ হয়ে গেলে এবং এক্সটেনশনের নতুন সংস্করণ ইনস্টল করা হলে সেশন নিয়মগুলো মুছে যায়।
এই প্রতিটি রুলসেট টাইপের কেবল একটি করে সেট রয়েছে। একটি এক্সটেনশন 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" কী ব্যবহার করে আইডিগুলো সংজ্ঞায়িত করা হয়।
স্ট্যাটিক রুলসেটগুলো সক্রিয় বা নিষ্ক্রিয় করতে, updateEnabledRulesets() কল করুন। এই মেথডটি একটি UpdateRulesetOptions অবজেক্ট গ্রহণ করে, যেটিতে সক্রিয় বা নিষ্ক্রিয় করার জন্য রুলসেটগুলোর আইডি-র অ্যারে থাকে। Ruleset ডিকশনারির "id" কী ব্যবহার করে আইডিগুলো সংজ্ঞায়িত করা হয়।
নিয়মকানুন তৈরি করুন
ধরণ নির্বিশেষে, একটি নিয়ম নিচে দেখানো অনুযায়ী চারটি ফিল্ড দিয়ে শুরু হয়। "id" এবং "priority" কী-গুলো একটি সংখ্যা গ্রহণ করলেও, "action" এবং "condition" কী-গুলো একাধিক ব্লকিং এবং রিডাইরেক্টিং শর্ত প্রদান করতে পারে। নিম্নলিখিত নিয়মটি "foo.com" থেকে উদ্ভূত সমস্ত স্ক্রিপ্ট অনুরোধকে এমন যেকোনো URL-এ ব্লক করে, যেখানে সাবস্ট্রিং হিসেবে "abc" রয়েছে।
{
"id" : 1,
"priority": 1,
"action" : { "type" : "block" },
"condition" : {
"urlFilter" : "abc",
"initiatorDomains" : ["foo.com"],
"resourceTypes" : ["script"]
}
}
urlFilter মিলে যাওয়া অক্ষর
একটি নিয়মের "condition" কী-তে একটি "urlFilter" কী থাকে, যা একটি নির্দিষ্ট ডোমেইনের অধীনে থাকা URL-গুলোর উপর কাজ করতে ব্যবহৃত হয়। আপনি প্যাটার্ন ম্যাচিং টোকেন ব্যবহার করে প্যাটার্ন তৈরি করেন। নিচে কয়েকটি উদাহরণ দেখানো হলো।
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://baexample.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" ম্যানিফেস্ট কী-এর অংশ হিসেবে ৫০টি পর্যন্ত স্ট্যাটিক রুলসেট নির্দিষ্ট করতে পারে, কিন্তু এর মধ্যে থেকে একবারে মাত্র ১০টি রুলসেট সক্রিয় করা যায়। এই শেষোক্তটিকে বলা হয় MAX_NUMBER_OF_ENABLED_STATIC_RULESETS । সম্মিলিতভাবে, এই রুলসেটগুলোতে কমপক্ষে ৩০,০০০ রুল থাকার নিশ্চয়তা দেওয়া হয়। একে বলা হয় GUARANTEED_MINIMUM_STATIC_RULES ।
এরপর কতগুলো নিয়ম উপলব্ধ থাকবে তা নির্ভর করে ব্যবহারকারীর ব্রাউজারে ইনস্টল করা সমস্ত এক্সটেনশন দ্বারা কতগুলো নিয়ম সক্রিয় করা আছে তার উপর। আপনি রানটাইমে getAvailableStaticRuleCount() কল করে এই সংখ্যাটি জানতে পারবেন। এর একটি উদাহরণ আপনি কোড উদাহরণ অংশে দেখতে পারেন।
গতিশীল এবং সেশন নিয়ম
ডাইনামিক এবং সেশন রুলের ক্ষেত্রে প্রযোজ্য সীমাগুলো স্ট্যাটিক রুলের চেয়ে সরল। উভয়ের মোট সংখ্যা ৫০০০-এর বেশি হতে পারে না। একে MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES বলা হয়।
রেজেক্স ব্যবহার করে এমন নিয়ম
সব ধরনের নিয়মেই রেগুলার এক্সপ্রেশন ব্যবহার করা যায়; তবে, প্রতিটি ধরনের রেজেক্স নিয়মের মোট সংখ্যা ১০০০-এর বেশি হতে পারে না। একে MAX_NUMBER_OF_REGEX_RULES বলা হয়।
এছাড়াও, কম্পাইল করার পর প্রতিটি রুলের সাইজ অবশ্যই ২কেবি-র কম হতে হবে। এটি মোটামুটিভাবে রুলটির জটিলতার সাথে সম্পর্কিত। আপনি যদি এই সীমা অতিক্রমকারী কোনো রুল লোড করার চেষ্টা করেন, তাহলে আপনি নীচের মতো একটি সতর্কবার্তা দেখতে পাবেন এবং রুলটি উপেক্ষা করা হবে।
rules_1.json: Rule with id 1 specified a more complex regex than allowed
as part of the "regexFilter" key.
পরিষেবা কর্মীদের সাথে আলাপচারিতা
একটি declarativeNetRequest শুধুমাত্র সেইসব অনুরোধের ক্ষেত্রে প্রযোজ্য যা নেটওয়ার্ক স্ট্যাকে পৌঁছায়। এর মধ্যে HTTP ক্যাশে থেকে আসা প্রতিক্রিয়া অন্তর্ভুক্ত, কিন্তু সার্ভিস ওয়ার্কারের 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);
}
নিয়মের উদাহরণ
নিচের উদাহরণগুলো দেখায় যে ক্রোম কীভাবে একটি এক্সটেনশনের নিয়মগুলোকে অগ্রাধিকার দেয়। এগুলো পর্যালোচনা করার সময়, আপনি অগ্রাধিকারের নিয়মগুলো একটি আলাদা উইন্ডোতে খুলতে পারেন।
'অগ্রাধিকার' কী
এই উদাহরণগুলির জন্য *://*.example.com/* -এ হোস্ট পারমিশন প্রয়োজন।
কোনো নির্দিষ্ট URL-এর অগ্রাধিকার নির্ধারণ করতে, (ডেভেলপার-নির্ধারিত) "priority" কী, "action" কী এবং "urlFilter" কী দেখুন। এই উদাহরণগুলো নিচে দেখানো উদাহরণ রুল ফাইলটিকে নির্দেশ করে।
- https://google.com-এ নেভিগেশন
- এই URL-টির জন্য দুটি নিয়ম প্রযোজ্য: ১ এবং ৪ আইডি-বিশিষ্ট নিয়ম দুটি। ১ আইডি-বিশিষ্ট নিয়মটি প্রযোজ্য, কারণ
"block"অ্যাকশনের অগ্রাধিকার"redirect"অ্যাকশনের চেয়ে বেশি। বাকি নিয়মগুলো প্রযোজ্য নয়, কারণ সেগুলো আরও দীর্ঘ URL-এর জন্য। - https://google.com/1234-এ নেভিগেশন
- URL-টি দীর্ঘ হওয়ার কারণে, এখন ID 1 এবং 4 যুক্ত নিয়মগুলোর পাশাপাশি ID 2 যুক্ত নিয়মটিও মিলে যাচ্ছে। ID 2 যুক্ত নিয়মটি প্রযোজ্য হয় কারণ
"allow"অগ্রাধিকার"block"এবং"redirect"চেয়ে বেশি। - https://google.com/12345-এ নেভিগেশন
- চারটি নিয়মই এই URL-এর সাথে মেলে। ৩ নম্বর আইডিযুক্ত নিয়মটি প্রযোজ্য, কারণ ডেভেলপার-নির্ধারিত অগ্রাধিকারের দিক থেকে এটি এই গ্রুপের মধ্যে সর্বোচ্চ।
[
{
"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" ব্যবহার করে রেগুলার এক্সপ্রেশনের প্রথম প্রাপ্ত ম্যাচটিকে নির্দিষ্ট করে। এই ক্ষেত্রে, রিডাইরেক্ট করা URL থেকে "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) সেই ফ্রেমের ডোমেইনের সমান হয় যেখান থেকে অনুরোধটি উদ্ভূত হয়েছে।
এনাম
"প্রথম পক্ষ" "তৃতীয় পক্ষ"
নেটওয়ার্ক অনুরোধটি সেই ফ্রেমে প্রথম পক্ষ হিসেবে গণ্য হয়, যেখান থেকে এটি উদ্ভূত হয়েছে।
নেটওয়ার্ক অনুরোধটি যে ফ্রেমে উদ্ভূত হয়েছে, তার থেকে এটি একটি তৃতীয় পক্ষ।
ExtensionActionOptions
বৈশিষ্ট্য
- displayActionCountAsBadgeText
বুলিয়ান ঐচ্ছিক
কোনো পৃষ্ঠার অ্যাকশন সংখ্যাকে এক্সটেনশনের ব্যাজ টেক্সট হিসেবে স্বয়ংক্রিয়ভাবে প্রদর্শন করা হবে কিনা। এই পছন্দটি সেশন জুড়ে সংরক্ষিত থাকে।
- ট্যাবআপডেট
TabActionCountUpdate ঐচ্ছিক
ক্রোম ৮৯+ট্যাবের অ্যাকশন সংখ্যা কীভাবে সমন্বয় করা হবে তার বিবরণ।
GetDisabledRuleIdsOptions
বৈশিষ্ট্য
- নিয়মসেট আইডি
স্ট্রিং
একটি স্ট্যাটিক
Rulesetসাথে সম্পর্কিত আইডি।
GetRulesFilter
বৈশিষ্ট্য
- নিয়ম আইডি
সংখ্যা[] ঐচ্ছিক
নির্দিষ্ট করা থাকলে, শুধুমাত্র মিলে যাওয়া আইডিযুক্ত নিয়মগুলোই অন্তর্ভুক্ত করা হয়।
HeaderInfo
বৈশিষ্ট্য
- বাদ দেওয়া মানগুলি
স্ট্রিং[] ঐচ্ছিক
যদি নির্দিষ্ট করা থাকে, তবে এই শর্তটি মেলানো হয় না যদি হেডারটি বিদ্যমান থাকে কিন্তু তার ভ্যালুতে এই তালিকার অন্তত একটি উপাদান থাকে। এটি
valuesমতোই একই ম্যাচ প্যাটার্ন সিনট্যাক্স ব্যবহার করে। - হেডার
স্ট্রিং
হেডারের নাম। এই শর্তটি শুধুমাত্র নামের সাথে মেলে, যদি
valuesএবংexcludedValuesউভয়ই নির্দিষ্ট করা না থাকে। - মূল্যবোধ
স্ট্রিং[] ঐচ্ছিক
নির্দিষ্ট করা থাকলে, হেডারের মান এই তালিকার অন্তত একটি প্যাটার্নের সাথে মিলে গেলে এই শর্তটি মেলে। এটি কেস-ইনসেনসিটিভ হেডার ভ্যালু ম্যাচিং-এর পাশাপাশি নিম্নলিখিত গঠনগুলো সমর্থন করে:
'*' : যেকোনো সংখ্যক অক্ষরের সাথে মেলে।
'?' : শূন্য বা একটি অক্ষরের সাথে মেলে।
'*' এবং '?' কে ব্যাকস্ল্যাশ দিয়ে এস্কেপ করা যায়, যেমন '\*' এবং '\?'
HeaderOperation
এখানে 'modifyHeaders' রুলের সম্ভাব্য অপারেশনগুলো বর্ণনা করা হয়েছে।
এনাম
'সংযুক্ত করুন' "সেট" "অপসারণ করুন"
নির্দিষ্ট হেডারের জন্য একটি নতুন এন্ট্রি যোগ করে। কোনো রিকোয়েস্টের হেডার পরিবর্তন করার সময়, এই অপারেশনটি শুধুমাত্র নির্দিষ্ট কিছু হেডারের জন্য সমর্থিত।
নির্দিষ্ট হেডারের জন্য একটি নতুন মান নির্ধারণ করে এবং একই নামের বিদ্যমান হেডারগুলো মুছে দেয়।
নির্দিষ্ট হেডারের সমস্ত এন্ট্রি মুছে দেয়।
IsRegexSupportedResult
বৈশিষ্ট্য
- সমর্থিত
বুলিয়ান
- কারণ
UnsupportedRegexReason ঐচ্ছিক
রেগুলার এক্সপ্রেশনটি কেন সমর্থিত নয়, তার কারণ উল্লেখ করে। শুধুমাত্র
isSupportedমান false হলেই এটি প্রদান করা হয়।
MatchedRule
বৈশিষ্ট্য
- নিয়ম আইডি
সংখ্যা
একটি মিলে যাওয়া নিয়মের আইডি।
- নিয়মসেট আইডি
স্ট্রিং
এই নিয়মটি
Rulesetঅন্তর্গত, তার আইডি। ডাইনামিক রুলের সেট থেকে উদ্ভূত কোনো নিয়মের ক্ষেত্রে, এটিDYNAMIC_RULESET_IDএর সমান হবে।
MatchedRuleInfo
বৈশিষ্ট্য
- নিয়ম
- ট্যাবআইডি
সংখ্যা
অনুরোধটি যে ট্যাব থেকে এসেছে, সেই ট্যাবটির tabId, যদি ট্যাবটি এখনও সক্রিয় থাকে। অন্যথায় -১।
- টাইমস্ট্যাম্প
সংখ্যা
যে সময়ে নিয়মটি মিলে গিয়েছিল। টাইমস্ট্যাম্পগুলো জাভাস্ক্রিপ্টের সময় সংক্রান্ত প্রচলিত নিয়ম অনুযায়ী হবে, অর্থাৎ ইপক থেকে মিলিসেকেন্ডের সংখ্যা।
MatchedRuleInfoDebug
বৈশিষ্ট্য
- অনুরোধ
যে অনুরোধটির সাথে নিয়মটি মেলানো হয়েছে, সেটির বিবরণ।
- নিয়ম
MatchedRulesFilter
বৈশিষ্ট্য
- minTimeStamp
সংখ্যা ঐচ্ছিক
নির্দিষ্ট করা থাকলে, শুধুমাত্র প্রদত্ত টাইমস্ট্যাম্পের পরের নিয়মগুলোই মেলানো হবে।
- ট্যাবআইডি
সংখ্যা ঐচ্ছিক
নির্দিষ্ট করা থাকলে, এটি শুধুমাত্র প্রদত্ত ট্যাবের নিয়মগুলোই মেলাবে। -১ এ সেট করা হলে, এটি এমন নিয়মগুলোও মেলাবে যা কোনো সক্রিয় ট্যাবের সাথে যুক্ত নয়।
ModifyHeaderInfo
বৈশিষ্ট্য
- হেডার
স্ট্রিং
যে হেডারটি পরিবর্তন করতে হবে তার নাম।
- অপারেশন
হেডারের উপর যে অপারেশনটি সম্পাদন করতে হবে।
- মূল্য
স্ট্রিং ঐচ্ছিক
হেডারের নতুন মান।
appendএবংsetঅপারেশনের জন্য এটি অবশ্যই নির্দিষ্ট করতে হবে।
QueryKeyValue
বৈশিষ্ট্য
- চাবি
স্ট্রিং
- শুধুমাত্র প্রতিস্থাপন করুন
বুলিয়ান ঐচ্ছিক
ক্রোম ৯৪+যদি 'true' হয়, তাহলে কোয়েরি কী-টি শুধুমাত্র তখনই প্রতিস্থাপন করা হয় যখন সেটি আগে থেকেই উপস্থিত থাকে। অন্যথায়, কী-টি অনুপস্থিত থাকলে সেটি যোগও করা হয়। এর ডিফল্ট মান 'false'।
- মূল্য
স্ট্রিং
QueryTransform
বৈশিষ্ট্য
- addOrReplaceParams
QueryKeyValue [] ঐচ্ছিক
যোগ বা প্রতিস্থাপন করা হবে এমন কোয়েরি কী-ভ্যালু জোড়গুলোর তালিকা।
- removeParams
স্ট্রিং[] ঐচ্ছিক
যেসব কোয়েরি কী অপসারণ করা হবে, তার তালিকা।
Redirect
বৈশিষ্ট্য
- এক্সটেনশন পাথ
স্ট্রিং ঐচ্ছিক
এক্সটেনশন ডিরেক্টরির সাপেক্ষে পাথ। এটি অবশ্যই '/' দিয়ে শুরু হতে হবে।
- রেজেক্স প্রতিস্থাপন
স্ট্রিং ঐচ্ছিক
যেসব নিয়মে
regexFilterনির্দিষ্ট করা থাকে, সেগুলোর জন্য প্রতিস্থাপন প্যাটার্ন। url-এর মধ্যেregexFilterএর প্রথম মিলটি এই প্যাটার্ন দ্বারা প্রতিস্থাপিত হবে।regexSubstitutionমধ্যে, সংশ্লিষ্ট ক্যাপচার গ্রুপগুলো সন্নিবেশ করার জন্য ব্যাকস্ল্যাশ-এস্কেপড সংখ্যা (\1 থেকে \9) ব্যবহার করা যেতে পারে। \0 সম্পূর্ণ মিলে যাওয়া টেক্সটকে বোঝায়। - রূপান্তর করুন
URLTransform ঐচ্ছিক
সম্পাদন করার জন্য ইউআরএল রূপান্তরসমূহ।
- ইউআরএল
স্ট্রিং ঐচ্ছিক
রিডাইরেক্ট ইউআরএল। জাভাস্ক্রিপ্ট ইউআরএল-এ রিডাইরেক্ট করার অনুমতি নেই।
RegexOptions
বৈশিষ্ট্য
- কেস-সংবেদনশীল
বুলিয়ান ঐচ্ছিক
নির্দিষ্ট
regexকেস-সেনসিটিভ হবে কিনা। ডিফল্ট মান হলো ট্রু। - রেজেক্স
স্ট্রিং
যাচাই করার জন্য রেগুলার এক্সপ্রেশন।
- ক্যাপচারিং প্রয়োজন
বুলিয়ান ঐচ্ছিক
নির্দিষ্ট
regexক্যাপচারিং প্রয়োজন কিনা। শুধুমাত্র সেইসব রিডাইরেক্ট রুলের জন্য ক্যাপচারিং প্রয়োজন, যেগুলিতে একটিregexSubstitionঅ্যাকশন নির্দিষ্ট করা থাকে। এর ডিফল্ট মান হলো 'false'।
RequestDetails
বৈশিষ্ট্য
- ডকুমেন্ট আইডি
স্ট্রিং ঐচ্ছিক
ক্রোম ১০৬+এই অনুরোধটি যদি কোনো ফ্রেমের জন্য হয়, তবে এটি হলো ফ্রেমটির ডকুমেন্টের অনন্য শনাক্তকারী।
- ডকুমেন্ট লাইফসাইকেল
ডকুমেন্টলাইফসাইকেল ঐচ্ছিক
ক্রোম ১০৬+যদি এই অনুরোধটি কোনো ফ্রেমের জন্য হয়, তবে ফ্রেমটির ডকুমেন্টের জীবনচক্র।
- ফ্রেমআইডি
সংখ্যা
০ মানটি নির্দেশ করে যে অনুরোধটি মূল ফ্রেমে ঘটছে; একটি ধনাত্মক মান সেই সাবফ্রেমের আইডি নির্দেশ করে যেখানে অনুরোধটি ঘটছে। যদি কোনো (সাব-)ফ্রেমের ডকুমেন্ট লোড করা হয় (যার
typemain_frameবাsub_frame), তাহলেframeIdএই ফ্রেমের আইডি নির্দেশ করে, বাইরের ফ্রেমের আইডি নয়। একটি ট্যাবের মধ্যে ফ্রেম আইডিগুলো অনন্য হয়। - ফ্রেমটাইপ
ফ্রেমের ধরণ ঐচ্ছিক
ক্রোম ১০৬+ফ্রেমের ধরণ, যদি এই অনুরোধটি একটি ফ্রেমের জন্য হয়।
- উদ্যোগী
স্ট্রিং ঐচ্ছিক
যেখান থেকে অনুরোধটি শুরু করা হয়েছিল। রিডাইরেক্টের মাধ্যমে এটি পরিবর্তিত হয় না। যদি এটি একটি অস্বচ্ছ উৎস হয়, তাহলে 'null' স্ট্রিংটি ব্যবহার করা হবে।
- পদ্ধতি
স্ট্রিং
স্ট্যান্ডার্ড HTTP পদ্ধতি।
- প্যারেন্টডকুমেন্টআইডি
স্ট্রিং ঐচ্ছিক
ক্রোম ১০৬+ফ্রেমটির প্যারেন্ট ডকুমেন্টের অনন্য শনাক্তকারী, যদি এই অনুরোধটি কোনো ফ্রেমের জন্য হয় এবং তার একটি প্যারেন্ট থাকে।
- parentFrameId
সংখ্যা
যে ফ্রেমটি অনুরোধ পাঠিয়েছে, সেটিকে আবৃতকারী ফ্রেমের আইডি। কোনো প্যারেন্ট ফ্রেম না থাকলে এর মান -১ সেট করা হয়।
- অনুরোধ আইডি
স্ট্রিং
অনুরোধের আইডি। একটি ব্রাউজার সেশনের মধ্যে অনুরোধ আইডিগুলো অনন্য হয়।
- ট্যাবআইডি
সংখ্যা
যে ট্যাবে অনুরোধটি করা হয়েছে, তার আইডি। অনুরোধটি কোনো ট্যাবের সাথে সম্পর্কিত না হলে এর মান -১ সেট করা হবে।
- প্রকার
অনুরোধের রিসোর্স টাইপ।
- ইউআরএল
স্ট্রিং
অনুরোধটির URL।
RequestMethod
এখানে নেটওয়ার্ক অনুরোধের HTTP রিকোয়েস্ট মেথড বর্ণনা করা হয়েছে।
এনাম
"সংযোগ" "মুছে ফেলুন" "পাওয়া" "মাথা" "বিকল্প" "প্যাচ" "পোস্ট" "রাখা" "অন্যান্য"
ResourceType
এটি নেটওয়ার্ক অনুরোধের রিসোর্স টাইপ বর্ণনা করে।
এনাম
"প্রধান_ফ্রেম" "সাব_ফ্রেম" "স্টাইলশিট" "স্ক্রিপ্ট" "ছবি" "ফন্ট" "বস্তু" "xmlhttprequest" "পিং" "csp_report" "মিডিয়া" "ওয়েবসকেট" "ওয়েবট্রান্সপোর্ট" "ওয়েববান্ডেল" "অন্যান্য"
Rule
বৈশিষ্ট্য
- পদক্ষেপ
এই নিয়মটি মিলে গেলে যে পদক্ষেপ নিতে হবে।
- অবস্থা
যে পরিস্থিতিতে এই নিয়মটি সক্রিয় হয়।
- আইডি
সংখ্যা
একটি আইডি যা একটি নিয়মকে অনন্যভাবে শনাক্ত করে। এটি বাধ্যতামূলক এবং এর মান অবশ্যই ১ বা তার বেশি হতে হবে।
- অগ্রাধিকার
সংখ্যা ঐচ্ছিক
নিয়মের অগ্রাধিকার। ডিফল্ট মান হলো ১। নির্দিষ্ট করা হলে, এর মান অবশ্যই ১ বা তার বেশি হতে হবে।
RuleAction
বৈশিষ্ট্য
- পুনঃনির্দেশ
পুনর্নির্দেশ ঐচ্ছিক
রিডাইরেক্টটি কীভাবে সম্পাদন করা উচিত তা বর্ণনা করে। শুধুমাত্র রিডাইরেক্ট নিয়মের জন্য প্রযোজ্য।
- অনুরোধ হেডার
ModifyHeaderInfo [] ঐচ্ছিক
ক্রোম ৮৬+অনুরোধের জন্য পরিবর্তনযোগ্য হেডারসমূহ। শুধুমাত্র তখনই বৈধ হবে যখন RuleActionType হবে 'modifyHeaders'।
- প্রতিক্রিয়া হেডার
ModifyHeaderInfo [] ঐচ্ছিক
ক্রোম ৮৬+অনুরোধের জন্য পরিবর্তনযোগ্য রেসপন্স হেডারসমূহ। শুধুমাত্র তখনই বৈধ, যখন RuleActionType-এর মান 'modifyHeaders' হবে।
- প্রকার
সম্পাদন করার কাজের ধরণ।
RuleActionType
কোনো প্রদত্ত RuleCondition মিলে গেলে কী ধরনের পদক্ষেপ নিতে হবে তা বর্ণনা করে।
এনাম
'ব্লক' "পুনঃনির্দেশ" "অনুমতি দিন" "আপগ্রেড স্কিম" "হেডার পরিবর্তন করুন" "allowAllRequests"
নেটওয়ার্ক অনুরোধটি ব্লক করুন।
নেটওয়ার্ক অনুরোধটি পুনঃনির্দেশ করুন।
নেটওয়ার্ক অনুরোধটি অনুমোদন করুন। যদি এর সাথে মিলে যায় এমন কোনো অনুমোদনের নিয়ম থাকে, তবে অনুরোধটি বাধাগ্রস্ত হবে না।
অনুরোধটি http বা ftp হলে নেটওয়ার্ক অনুরোধ URL-এর স্কিমটি https-এ আপগ্রেড করুন।
নেটওয়ার্ক অনুরোধ থেকে অনুরোধ/প্রতিক্রিয়া হেডার পরিবর্তন করুন।
একটি ফ্রেম হায়ারার্কির অন্তর্গত সমস্ত অনুরোধের অনুমতি দিন, যার মধ্যে স্বয়ং ফ্রেম অনুরোধটিও অন্তর্ভুক্ত।
RuleCondition
বৈশিষ্ট্য
- ডোমেন টাইপ
ডোমেন টাইপ ঐচ্ছিক
নেটওয়ার্ক অনুরোধটি যে ডোমেইন থেকে এসেছে, তার জন্য এটি ফার্স্ট-পার্টি নাকি থার্ড-পার্টি, তা নির্দিষ্ট করে। এটি বাদ দিলে, সমস্ত অনুরোধ গৃহীত হয়।
- ডোমেইন
স্ট্রিং[] ঐচ্ছিক
ক্রোম ১০১ থেকে বাতিল করা হয়েছেএর পরিবর্তে
initiatorDomainsব্যবহার করুনএই নিয়মটি শুধুমাত্র তালিকাভুক্ত
domainsথেকে আসা নেটওয়ার্ক অনুরোধগুলোর সাথেই মিলবে। - বাদ দেওয়া ডোমেনগুলি
স্ট্রিং[] ঐচ্ছিক
ক্রোম ১০১ থেকে বাতিল করা হয়েছেএর পরিবর্তে
excludedInitiatorDomainsব্যবহার করুনএই নিয়মটি
excludedDomainsতালিকা থেকে আসা নেটওয়ার্ক অনুরোধগুলির সাথে মিলবে না। - বাদ দেওয়া সূচনাকারী ডোমেনগুলি
স্ট্রিং[] ঐচ্ছিক
ক্রোম ১০১+এই নিয়মটি
excludedInitiatorDomainsতালিকা থেকে আসা নেটওয়ার্ক অনুরোধগুলির সাথে মিলবে না। যদি তালিকাটি খালি থাকে বা বাদ দেওয়া হয়, তবে কোনো ডোমেইন বাদ দেওয়া হয় না। এটিinitiatorDomainsচেয়ে অগ্রাধিকার পায়।নোট:
- "a.example.com"-এর মতো সাব-ডোমেইনও অনুমোদিত।
- এন্ট্রিগুলোতে শুধুমাত্র ASCII অক্ষর থাকতে হবে।
- আন্তর্জাতিকীকৃত ডোমেইনগুলোর জন্য পুনিকোড এনকোডিং ব্যবহার করুন।
- এটি অনুরোধের ইউআরএল-এর সাথে নয়, বরং অনুরোধকারীর সাথে মেলানো হয়।
- তালিকাভুক্ত ডোমেইনগুলোর সাব-ডোমেইনগুলোও বাদ দেওয়া হয়েছে।
- বাদ দেওয়া অনুরোধ ডোমেনগুলি
স্ট্রিং[] ঐচ্ছিক
ক্রোম ১০১+যখন ডোমেইনটি
excludedRequestDomainsতালিকার কোনো একটির সাথে মিলে যায়, তখন এই নিয়মটি নেটওয়ার্ক অনুরোধগুলোর সাথে মিলবে না। যদি তালিকাটি খালি থাকে বা বাদ দেওয়া হয়, তবে কোনো ডোমেইনই বাদ দেওয়া হয় না। এটিrequestDomainsচেয়ে অগ্রাধিকার পায়।নোট:
- "a.example.com"-এর মতো সাব-ডোমেইনও অনুমোদিত।
- এন্ট্রিগুলোতে শুধুমাত্র ASCII অক্ষর থাকতে হবে।
- আন্তর্জাতিকীকৃত ডোমেইনগুলোর জন্য পুনিকোড এনকোডিং ব্যবহার করুন।
- তালিকাভুক্ত ডোমেইনগুলোর সাব-ডোমেইনগুলোও বাদ দেওয়া হয়েছে।
- বাদ দেওয়া অনুরোধ পদ্ধতি
অনুরোধ পদ্ধতি [] ঐচ্ছিক
ক্রোম ৯১+অনুরোধ পদ্ধতির তালিকা যা নিয়মটি মেলাবে না।
requestMethodsএবংexcludedRequestMethodsএর মধ্যে শুধুমাত্র একটি নির্দিষ্ট করতে হবে। যদি এদের কোনোটিই নির্দিষ্ট করা না হয়, তাহলে সমস্ত অনুরোধ পদ্ধতিই মেলানো হবে। - বাদ দেওয়া রিসোর্স প্রকারগুলি
রিসোর্স টাইপ [] ঐচ্ছিক
যেসব রিসোর্স টাইপের সাথে নিয়মটি মিলবে না, তার তালিকা।
resourceTypesএবংexcludedResourceTypesএর মধ্যে শুধুমাত্র একটি নির্দিষ্ট করতে হবে। যদি এদের কোনোটিই নির্দিষ্ট করা না থাকে, তাহলে "main_frame" ছাড়া বাকি সব রিসোর্স টাইপ ব্লক হয়ে যাবে। - বাদ দেওয়া প্রতিক্রিয়া হেডার
হেডার তথ্য [] ঐচ্ছিক
ক্রোম ১২৮+যদি অনুরোধটি এই তালিকার (যদি নির্দিষ্ট করা থাকে) কোনো রেসপন্স হেডার শর্তের সাথে মিলে যায়, তাহলে নিয়মটি মেলে না। যদি
excludedResponseHeadersএবংresponseHeadersউভয়ই নির্দিষ্ট করা থাকে, তাহলেexcludedResponseHeadersপ্রপার্টিটি অগ্রাধিকার পাবে। - বাদ দেওয়া ট্যাব আইডি
সংখ্যা[] ঐচ্ছিক
ক্রোম ৯২+tabs.Tab.id-এর তালিকা, যেগুলোর সাথে নিয়মটি মিলবে না।tabs.TAB_ID_NONEএর মতো একটি আইডি সেইসব অনুরোধকে বাদ দেয় যেগুলো কোনো ট্যাব থেকে উদ্ভূত হয়নি। শুধুমাত্র সেশন-স্কোপড নিয়মের জন্য সমর্থিত। - বাদ দেওয়া শীর্ষ ডোমেনগুলি
স্ট্রিং[] ঐচ্ছিক
ক্রোম ১৪৫+যখন সংশ্লিষ্ট টপ-লেভেল ফ্রেমের ডোমেইনটি
excludedTopDomainsতালিকার কোনো একটির সাথে মিলে যায়, তখন এই নিয়মটি নেটওয়ার্ক অনুরোধগুলোর সাথে মিলবে না। যদি তালিকাটি খালি থাকে বা বাদ দেওয়া হয়, তবে কোনো ডোমেইনই বাদ দেওয়া হয় না। এটিtopDomainsচেয়ে অগ্রাধিকার পায়।নোট:
- "a.example.com"-এর মতো সাব-ডোমেইনও অনুমোদিত।
- এন্ট্রিগুলোতে শুধুমাত্র ASCII অক্ষর থাকতে হবে।
- আন্তর্জাতিকীকৃত ডোমেইনগুলোর জন্য পুনিকোড এনকোডিং ব্যবহার করুন।
- তালিকাভুক্ত ডোমেইনগুলোর সাব-ডোমেইনগুলোও বাদ দেওয়া হয়েছে।
- যেসব অনুরোধের সাথে কোনো শীর্ষ-স্তরের ফ্রেম যুক্ত থাকে না (যেমন সার্ভিসওয়ার্কার দ্বারা শুরু করা অনুরোধ), সেগুলোর ক্ষেত্রে অনুরোধকারীর ডোমেইন বিবেচনা করা হয়।
- সূচনাকারী ডোমেইন
স্ট্রিং[] ঐচ্ছিক
ক্রোম ১০১+এই নিয়মটি শুধুমাত্র
initiatorDomainsএর তালিকা থেকে আসা নেটওয়ার্ক অনুরোধগুলোর সাথেই মিলবে। যদি তালিকাটি বাদ দেওয়া হয়, তবে নিয়মটি সমস্ত ডোমেইন থেকে আসা অনুরোধের ক্ষেত্রে প্রযোজ্য হবে। খালি তালিকা অনুমোদিত নয়।নোট:
- "a.example.com"-এর মতো সাব-ডোমেইনও অনুমোদিত।
- এন্ট্রিগুলোতে শুধুমাত্র ASCII অক্ষর থাকতে হবে।
- আন্তর্জাতিকীকৃত ডোমেইনগুলোর জন্য পুনিকোড এনকোডিং ব্যবহার করুন।
- এটি অনুরোধের ইউআরএল-এর সাথে নয়, বরং অনুরোধকারীর সাথে মেলানো হয়।
- তালিকাভুক্ত ডোমেইনগুলোর সাব-ডোমেইনগুলোও মেলানো হয়েছে।
- isUrlFilterCaseSensitive
বুলিয়ান ঐচ্ছিক
urlFilterবাregexFilter(যেটিই নির্দিষ্ট করা হোক না কেন) কেস-সেনসিটিভ হবে কিনা। ডিফল্ট মান হলো false। - রেজেক্সফিল্টার
স্ট্রিং ঐচ্ছিক
নেটওয়ার্ক রিকোয়েস্ট ইউআরএল-এর সাথে মেলানোর জন্য রেগুলার এক্সপ্রেশন। এটি RE2 সিনট্যাক্স অনুসরণ করে।
দ্রষ্টব্য:
urlFilterঅথবাregexFilterমধ্যে শুধুমাত্র একটি নির্দিষ্ট করা যাবে।দ্রষ্টব্য:
regexFilterঅবশ্যই শুধুমাত্র ASCII অক্ষর দ্বারা গঠিত হতে হবে। এটিকে এমন একটি ইউআরএল-এর সাথে মেলানো হয় যেখানে হোস্টটি পুনিকোড ফরম্যাটে এনকোড করা থাকে (আন্তর্জাতিক ডোমেনের ক্ষেত্রে) এবং অন্য যেকোনো নন-ASCII অক্ষর utf-8 ফরম্যাটে ইউআরএল এনকোড করা থাকে। - অনুরোধ ডোমেন
স্ট্রিং[] ঐচ্ছিক
ক্রোম ১০১+নিয়মটি শুধুমাত্র তখনই নেটওয়ার্ক অনুরোধগুলোর সাথে মিলবে, যখন ডোমেইনটি
requestDomainsতালিকার কোনো একটির সাথে মিলে যাবে। তালিকাটি বাদ দেওয়া হলে, নিয়মটি সব ডোমেইনের অনুরোধের ক্ষেত্রে প্রযোজ্য হবে। খালি তালিকা অনুমোদিত নয়।নোট:
- "a.example.com"-এর মতো সাব-ডোমেইনও অনুমোদিত।
- এন্ট্রিগুলোতে শুধুমাত্র ASCII অক্ষর থাকতে হবে।
- আন্তর্জাতিকীকৃত ডোমেইনগুলোর জন্য পুনিকোড এনকোডিং ব্যবহার করুন।
- তালিকাভুক্ত ডোমেইনগুলোর সাব-ডোমেইনগুলোও মেলানো হয়েছে।
- অনুরোধ পদ্ধতি
অনুরোধ পদ্ধতি [] ঐচ্ছিক
ক্রোম ৯১+HTTP অনুরোধ পদ্ধতিগুলোর তালিকা, যেগুলোর সাথে নিয়মটি মিলতে পারে। খালি তালিকা অনুমোদিত নয়।
দ্রষ্টব্য:
requestMethodsরুল কন্ডিশন নির্দিষ্ট করলে তা নন-HTTP(s) রিকোয়েস্টও বাদ দেবে, কিন্তুexcludedRequestMethodsনির্দিষ্ট করলে তা হবে না। - সম্পদের প্রকার
রিসোর্স টাইপ [] ঐচ্ছিক
রিসোর্স টাইপগুলোর তালিকা, যেগুলোর সাথে নিয়মটি মিলতে পারে। খালি তালিকা অনুমোদিত নয়।
দ্রষ্টব্য: এটি
allowAllRequestsনিয়মগুলির জন্য অবশ্যই নির্দিষ্ট করতে হবে এবং এতে শুধুমাত্রsub_frameএবংmain_frameরিসোর্স টাইপগুলি অন্তর্ভুক্ত থাকতে পারে। - প্রতিক্রিয়া হেডার
হেডার তথ্য [] ঐচ্ছিক
ক্রোম ১২৮+যদি অনুরোধটি এই তালিকার (যদি নির্দিষ্ট করা থাকে) কোনো রেসপন্স হেডার শর্তের সাথে মিলে যায়, তবে নিয়মটি মিলে যাবে।
- ট্যাবআইডি
সংখ্যা[] ঐচ্ছিক
ক্রোম ৯২+tabs.Tab.id-র তালিকা, যার সাথে নিয়মটি মিলবে।tabs.TAB_ID_NONEআইডিটি সেইসব অনুরোধের সাথে মেলে যা কোনো ট্যাব থেকে উদ্ভূত নয়। একটি খালি তালিকা অনুমোদিত নয়। শুধুমাত্র সেশন-স্কোপড নিয়মের জন্য সমর্থিত। - শীর্ষ ডোমেইন
স্ট্রিং[] ঐচ্ছিক
ক্রোম ১৪৫+এই নিয়মটি শুধুমাত্র তখনই নেটওয়ার্ক অনুরোধগুলোর সাথে মিলবে, যখন সংশ্লিষ্ট শীর্ষ-স্তরের ফ্রেমের ডোমেইনটি '
topDomains' তালিকার কোনো একটির সাথে মিলে যাবে। যদি তালিকাটি বাদ দেওয়া হয়, তবে নিয়মটি সমস্ত শীর্ষ-স্তরের ফ্রেম ডোমেইনের সাথে যুক্ত অনুরোধগুলোর ক্ষেত্রে প্রযোজ্য হবে। একটি খালি তালিকা অনুমোদিত নয়।নোট:
- "a.example.com"-এর মতো সাব-ডোমেইনও অনুমোদিত।
- এন্ট্রিগুলোতে শুধুমাত্র ASCII অক্ষর থাকতে হবে।
- আন্তর্জাতিকীকৃত ডোমেইনগুলোর জন্য পুনিকোড এনকোডিং ব্যবহার করুন।
- তালিকাভুক্ত ডোমেইনগুলোর সাব-ডোমেইনগুলোও মেলানো হয়েছে।
- যেসব অনুরোধের সাথে কোনো শীর্ষ-স্তরের ফ্রেম যুক্ত থাকে না (যেমন সার্ভিসওয়ার্কার দ্বারা শুরু করা অনুরোধ), সেগুলোর ক্ষেত্রে অনুরোধকারীর ডোমেইন বিবেচনা করা হয়।
- ইউআরএল ফিল্টার
স্ট্রিং ঐচ্ছিক
যে প্যাটার্নটি নেটওয়ার্ক অনুরোধের ইউআরএল-এর সাথে মেলানো হয়। সমর্থিত গঠনসমূহ:
'*' : ওয়াইল্ডকার্ড: যেকোনো সংখ্যক অক্ষরের সাথে মেলে।
'|' : বাম/ডান অ্যাঙ্কর: প্যাটার্নের যেকোনো প্রান্তে ব্যবহৃত হলে, এটি যথাক্রমে ইউআরএল-এর শুরু/শেষ নির্দেশ করে।
'||' : ডোমেইন নেম অ্যাঙ্কর: প্যাটার্নের শুরুতে ব্যবহৃত হলে, এটি URL-এর একটি (সাব-)ডোমেইনের শুরু নির্দেশ করে।
'^' : বিভাজক অক্ষর: এটি অক্ষর, সংখ্যা বা
_,-,., বা%ছাড়া অন্য যেকোনো কিছুর সাথে মেলে। এটি URL-এর শেষের সাথেও মেলে।সুতরাং
urlFilterনিম্নলিখিত অংশগুলি নিয়ে গঠিত: (ঐচ্ছিক বাম/ডোমেইন নামের অ্যাঙ্কর) + প্যাটার্ন + (ঐচ্ছিক ডান অ্যাঙ্কর)।বাদ দেওয়া হলে, সমস্ত ইউআরএল মেলানো হবে। খালি স্ট্রিং অনুমোদিত নয়।
||*দিয়ে শুরু হওয়া কোনো প্যাটার্ন অনুমোদিত নয়। এর পরিবর্তে*ব্যবহার করুন।দ্রষ্টব্য:
urlFilterঅথবাregexFilterমধ্যে শুধুমাত্র একটি নির্দিষ্ট করা যাবে।দ্রষ্টব্য:
urlFilterটি অবশ্যই শুধুমাত্র ASCII অক্ষর দ্বারা গঠিত হতে হবে। এটিকে এমন একটি URL-এর সাথে মেলানো হয় যেখানে হোস্টটি পুনিকোড ফরম্যাটে এনকোড করা থাকে (আন্তর্জাতিক ডোমেনের ক্ষেত্রে) এবং অন্য যেকোনো নন-ASCII অক্ষর utf-8 ফরম্যাটে ইউআরএল এনকোড করা থাকে। উদাহরণস্বরূপ, যখন অনুরোধের URL হবে http://abc.рф?q=ф, তখনurlFilterhttp://abc.xn--p1ai/?q=%D1%84 এই URL-টির সাথে মেলানো হবে।
RuleConditionKeys
এনাম
"ইউআরএল ফিল্টার" "regexFilter" "isUrlFilterCaseSensitive" "initiatorDomains" "বর্জিত ইনিশিয়েটর ডোমেইন" "অনুরোধ ডোমেইন" "বর্জিত অনুরোধ ডোমেন" "শীর্ষ ডোমেইন" "বর্জিত শীর্ষ ডোমেইন" 'ডোমেইন' "বর্জিত ডোমেইন" "রিসোর্সটাইপস" "বর্জিত রিসোর্স টাইপ" "অনুরোধ পদ্ধতি" "বর্জিত অনুরোধ পদ্ধতি" 'ডোমেইনটাইপ' "ট্যাবআইডি" "বর্জিত ট্যাব আইডি" "প্রতিক্রিয়া হেডার" "বর্জিত প্রতিক্রিয়া হেডার"
Ruleset
বৈশিষ্ট্য
- সক্ষম
বুলিয়ান
নিয়মাবলীটি ডিফল্টরূপে সক্রিয় আছে কিনা।
- আইডি
স্ট্রিং
একটি অ-খালি স্ট্রিং যা রুলসেটটিকে অনন্যভাবে শনাক্ত করে। '_' দিয়ে শুরু হওয়া আইডিগুলো অভ্যন্তরীণ ব্যবহারের জন্য সংরক্ষিত।
- পথ
স্ট্রিং
এক্সটেনশন ডিরেক্টরির সাপেক্ষে JSON রুলসেটের পাথ।
RulesMatchedDetails
বৈশিষ্ট্য
- নিয়ম মিলেছে তথ্য
প্রদত্ত ফিল্টারের সাথে মেলে এমন নিয়মাবলী।
TabActionCountUpdate
বৈশিষ্ট্য
- বৃদ্ধি
সংখ্যা
ট্যাবের অ্যাকশন সংখ্যা যে পরিমাণে বাড়ানো হবে। ঋণাত্মক মান সংখ্যাটি কমিয়ে দেবে।
- ট্যাবআইডি
সংখ্যা
যে ট্যাবের জন্য অ্যাকশন সংখ্যা আপডেট করতে হবে।
TestMatchOutcomeResult
বৈশিষ্ট্য
- মিলে যাওয়া নিয়ম
MatchedRule []
যে নিয়মগুলো (যদি থাকে) কাল্পনিক অনুরোধটির সাথে মেলে।
TestMatchRequestDetails
বৈশিষ্ট্য
- উদ্যোগী
স্ট্রিং ঐচ্ছিক
অনুমানমূলক অনুরোধটির সূচনাকারী ইউআরএল (যদি থাকে)।
- পদ্ধতি
অনুরোধ পদ্ধতি ঐচ্ছিক
কাল্পনিক অনুরোধের স্ট্যান্ডার্ড HTTP মেথড। HTTP অনুরোধের জন্য এটি ডিফল্টরূপে 'get' হয় এবং নন-HTTP অনুরোধের ক্ষেত্রে উপেক্ষা করা হয়।
- প্রতিক্রিয়া হেডার
বস্তু ঐচ্ছিক
ক্রোম ১২৯+The headers provided by a hypothetical response if the request does not get blocked or redirected before it is sent. Represented as an object which maps a header name to a list of string values. If not specified, the hypothetical response would return empty response headers, which can match rules which match on the non-existence of headers. Eg
{"content-type": ["text/html; charset=utf-8", "multipart/form-data"]} - tabId
number optional
The ID of the tab in which the hypothetical request takes place. Does not need to correspond to a real tab ID. Default is -1, meaning that the request isn't related to a tab.
- topUrl
string optional
Chrome 145+The associated top-level frame URL (if any) for the request.
- প্রকার
The resource type of the hypothetical request.
- url
string
The URL of the hypothetical request.
UnsupportedRegexReason
Describes the reason why a given regular expression isn't supported.
Enum
"syntaxError" "memoryLimitExceeded"
The regular expression is syntactically incorrect, or uses features not available in the RE2 syntax .
The regular expression exceeds the memory limit.
UpdateRuleOptions
Properties
- addRules
Rule [] optional
Rules to add.
- removeRuleIds
number[] optional
IDs of the rules to remove. Any invalid IDs will be ignored.
UpdateRulesetOptions
Properties
UpdateStaticRulesOptions
Properties
URLTransform
Properties
- fragment
string optional
The new fragment for the request. Should be either empty, in which case the existing fragment is cleared; or should begin with '#'.
- host
string optional
The new host for the request.
- পাসওয়ার্ড
string optional
The new password for the request.
- পথ
string optional
The new path for the request. If empty, the existing path is cleared.
- port
string optional
The new port for the request. If empty, the existing port is cleared.
- query
string optional
The new query for the request. Should be either empty, in which case the existing query is cleared; or should begin with '?'.
- queryTransform
QueryTransform optional
Add, remove or replace query key-value pairs.
- scheme
string optional
The new scheme for the request. Allowed values are "http", "https", "ftp" and "chrome-extension".
- username
string optional
The new username for the request.
Properties
DYNAMIC_RULESET_ID
Ruleset ID for the dynamic rules added by the extension.
Value
"_dynamic"
GETMATCHEDRULES_QUOTA_INTERVAL
Time interval within which MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules calls can be made, specified in minutes. Additional calls will fail immediately and set runtime.lastError . Note: getMatchedRules calls associated with a user gesture are exempt from the quota.
Value
১০
GUARANTEED_MINIMUM_STATIC_RULES
The minimum number of static rules guaranteed to an extension across its enabled static rulesets. Any rules above this limit will count towards the global static rule limit .
Value
30000
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL
The number of times getMatchedRules can be called within a period of GETMATCHEDRULES_QUOTA_INTERVAL .
Value
২০
MAX_NUMBER_OF_DYNAMIC_RULES
The maximum number of dynamic rules that an extension can add.
Value
30000
MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
The maximum number of static Rulesets an extension can enable at any one time.
Value
৫০
MAX_NUMBER_OF_REGEX_RULES
The maximum number of regular expression rules that an extension can add. This limit is evaluated separately for the set of dynamic rules and those specified in the rule resources file.
Value
১০০০
MAX_NUMBER_OF_SESSION_RULES
The maximum number of session scoped rules that an extension can add.
Value
5000
MAX_NUMBER_OF_STATIC_RULESETS
The maximum number of static Rulesets an extension can specify as part of the "rule_resources" manifest key.
Value
১০০
MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
The maximum number of "unsafe" dynamic rules that an extension can add.
Value
5000
MAX_NUMBER_OF_UNSAFE_SESSION_RULES
The maximum number of "unsafe" session scoped rules that an extension can add.
Value
5000
SESSION_RULESET_ID
Ruleset ID for the session-scoped rules added by the extension.
Value
"_session"
Methods
getAvailableStaticRuleCount()
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
callback?: function,
): Promise<number>
Returns the number of static rules an extension can enable before the global static rule limit is reached.
Parameters
- callback
function optional
The
callbackparameter looks like:(count: number) => void
- count
number
ফেরত
Promise<number>
Chrome 91+Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.
getDisabledRuleIds()
chrome.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
callback?: function,
): Promise<number[]>
Returns the list of static rules in the given Ruleset that are currently disabled.
Parameters
- options
Specifies the ruleset to query.
- callback
function optional
The
callbackparameter looks like:(disabledRuleIds: number[]) => void
- disabledRuleIds
number[]
ফেরত
Promise<number[]>
Promise that resolves with a list of ids that correspond to the disabled rules in that ruleset.
Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.
getDynamicRules()
chrome.declarativeNetRequest.getDynamicRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
Returns the current set of dynamic rules for the extension. Callers can optionally filter the list of fetched rules by specifying a filter .
Parameters
- ফিল্টার
GetRulesFilter optional
Chrome 111+An object to filter the list of fetched rules.
- callback
function optional
The
callbackparameter looks like:(rules: Rule[]) => void
- rules
Rule []
ফেরত
Promise< Rule []>
Chrome 91+Promise that resolves with the set of dynamic rules. The Promise may be rejected in case of transient internal errors.
Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.
getEnabledRulesets()
chrome.declarativeNetRequest.getEnabledRulesets(
callback?: function,
): Promise<string[]>
Returns the ids for the current set of enabled static rulesets.
Parameters
- callback
function optional
The
callbackparameter looks like:(rulesetIds: string[]) => void
- rulesetIds
string[]
ফেরত
Promise<string[]>
Chrome 91+Promise that resolves with a list of ids, where each id corresponds to an enabled static
Ruleset.Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.
getMatchedRules()
chrome.declarativeNetRequest.getMatchedRules(
filter?: MatchedRulesFilter,
callback?: function,
): Promise<RulesMatchedDetails>
Returns all rules matched for the extension. Callers can optionally filter the list of matched rules by specifying a filter . This method is only available to extensions with the "declarativeNetRequestFeedback" permission or having the "activeTab" permission granted for the tabId specified in filter . Note: Rules not associated with an active document that were matched more than five minutes ago will not be returned.
Parameters
- ফিল্টার
MatchedRulesFilter optional
An object to filter the list of matched rules.
- callback
function optional
The
callbackparameter looks like:(details: RulesMatchedDetails) => void
- details
ফেরত
Promise< RulesMatchedDetails >
Chrome 91+Promise that resolves once the list of matched rules has been fetched. In case of an error, the Promise will be rejected. This can happen for multiple reasons, such as insufficient permissions, or exceeding the quota.
Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.
getSessionRules()
chrome.declarativeNetRequest.getSessionRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
Returns the current set of session scoped rules for the extension. Callers can optionally filter the list of fetched rules by specifying a filter .
Parameters
- ফিল্টার
GetRulesFilter optional
Chrome 111+An object to filter the list of fetched rules.
- callback
function optional
The
callbackparameter looks like:(rules: Rule[]) => void
- rules
Rule []
ফেরত
Promise< Rule []>
Chrome 91+Promise that resolves with the set of session scoped rules.
Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.
isRegexSupported()
chrome.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
callback?: function,
): Promise<IsRegexSupportedResult>
Checks if the given regular expression will be supported as a regexFilter rule condition.
Parameters
- regexOptions
The regular expression to check.
- callback
function optional
The
callbackparameter looks like:(result: IsRegexSupportedResult) => void
- result
ফেরত
Promise< IsRegexSupportedResult >
Chrome 91+Promise that resolves with details consisting of whether the regular expression is supported and the reason if not.
Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.
setExtensionActionOptions()
chrome.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
callback?: function,
): Promise<void>
Configures if the action count for tabs should be displayed as the extension action's badge text and provides a way for that action count to be incremented.
Parameters
- options
- callback
function optional
Chrome 89+The
callbackparameter looks like:() => void
ফেরত
Promise<void>
Chrome 91+Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.
testMatchOutcome()
chrome.declarativeNetRequest.testMatchOutcome(
request: TestMatchRequestDetails,
callback?: function,
): Promise<TestMatchOutcomeResult>
Checks if any of the extension's declarativeNetRequest rules would match a hypothetical request. Note: Only available for unpacked extensions as this is only intended to be used during extension development.
Parameters
- অনুরোধ
- callback
function optional
The
callbackparameter looks like:(result: TestMatchOutcomeResult) => void
- result
ফেরত
Promise< TestMatchOutcomeResult >
Promise that resolves with the details of matched rules.
Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.
updateDynamicRules()
chrome.declarativeNetRequest.updateDynamicRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
Modifies the current set of dynamic rules for the extension. The rules with IDs listed in options.removeRuleIds are first removed, and then the rules given in options.addRules are added. Notes:
- This update happens as a single atomic operation: either all specified rules are added and removed, or an error is returned.
- These rules are persisted across browser sessions and across extension updates.
- Static rules specified as part of the extension package can not be removed using this function.
-
MAX_NUMBER_OF_DYNAMIC_RULESis the maximum number of dynamic rules an extension can add. The number of unsafe rules must not exceedMAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES.
Parameters
- optionsChrome 87+
- callback
function optional
The
callbackparameter looks like:() => void
ফেরত
Promise<void>
Chrome 91+Promise that resolves once the update is complete. In case of an error, the promise will be rejected and no change will be made to the rule set. This can happen for multiple reasons, such as invalid rule format, duplicate rule ID, rule count limit exceeded, internal errors, and others.
Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.
updateEnabledRulesets()
chrome.declarativeNetRequest.updateEnabledRulesets(
options: UpdateRulesetOptions,
callback?: function,
): Promise<void>
Updates the set of enabled static rulesets for the extension. The rulesets with IDs listed in options.disableRulesetIds are first removed, and then the rulesets listed in options.enableRulesetIds are added. Note that the set of enabled static rulesets is persisted across sessions but not across extension updates, ie the rule_resources manifest key will determine the set of enabled static rulesets on each extension update.
Parameters
- optionsChrome 87+
- callback
function optional
The
callbackparameter looks like:() => void
ফেরত
Promise<void>
Chrome 91+Promise that resolves once the update is complete. In case of an error, the promise will be rejected and no change will be made to the set of enabled rulesets. This can happen for multiple reasons, such as invalid ruleset IDs, rule count limit exceeded, or internal errors.
Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.
updateSessionRules()
chrome.declarativeNetRequest.updateSessionRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
Modifies the current set of session scoped rules for the extension. The rules with IDs listed in options.removeRuleIds are first removed, and then the rules given in options.addRules are added. Notes:
- This update happens as a single atomic operation: either all specified rules are added and removed, or an error is returned.
- These rules are not persisted across sessions and are backed in memory.
-
MAX_NUMBER_OF_SESSION_RULESis the maximum number of session rules an extension can add.
Parameters
- options
- callback
function optional
The
callbackparameter looks like:() => void
ফেরত
Promise<void>
Chrome 91+Promise that resolves once the update is complete. In case of an error, the promise will be rejected and no change will be made to the rule set. This can happen for multiple reasons, such as invalid rule format, duplicate rule ID, rule count limit exceeded, and others.
Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.
updateStaticRules()
chrome.declarativeNetRequest.updateStaticRules(
options: UpdateStaticRulesOptions,
callback?: function,
): Promise<void>
Disables and enables individual static rules in a Ruleset . Changes to rules belonging to a disabled Ruleset will take effect the next time that it becomes enabled.
Parameters
- options
- callback
function optional
The
callbackparameter looks like:() => void
ফেরত
Promise<void>
Promise that resolves when the update is complete. In case of an error, the promise will be rejected and no change will be made to the enabled static rules.
Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.
ইভেন্টগুলি
onRuleMatchedDebug
chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
callback: function,
)
Fired when a rule is matched with a request. Only available for unpacked extensions with the "declarativeNetRequestFeedback" permission as this is intended to be used for debugging purposes only.
Parameters
- callback
ফাংশন
The
callbackparameter looks like:(info: MatchedRuleInfoDebug) => void
- info