বিবরণ
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 অবজেক্ট ব্যবহার করা হয়, যাতে সক্রিয় বা নিষ্ক্রিয় করার জন্য নিয়মের ID গুলির অ্যারে থাকে। Ruleset অভিধানের "id" কী ব্যবহার করে ID গুলি সংজ্ঞায়িত করা হয়।
স্ট্যাটিক রুলসেট সক্রিয় বা নিষ্ক্রিয় করতে, updateEnabledRulesets() কল করুন। এই পদ্ধতিতে একটি UpdateRulesetOptions অবজেক্ট ব্যবহার করা হয়, যাতে রুলসেটের আইডিগুলির অ্যারে থাকে যা সক্রিয় বা নিষ্ক্রিয় করতে ব্যবহৃত হয়। Ruleset অভিধানের "id" কী ব্যবহার করে আইডিগুলি সংজ্ঞায়িত করা হয়।
নিয়ম তৈরি করুন
ধরণ যাই হোক না কেন, একটি নিয়ম নীচে দেখানো চারটি ক্ষেত্র দিয়ে শুরু হয়। "id" এবং "priority" কীগুলি একটি সংখ্যা নেয়, "action" এবং "condition" কীগুলি বেশ কয়েকটি ব্লকিং এবং পুনঃনির্দেশনা শর্ত প্রদান করতে পারে। নিম্নলিখিত নিয়মটি "foo.com" থেকে "abc" সাবস্ট্রিং সহ যেকোনো URL-এ উদ্ভূত সমস্ত স্ক্রিপ্ট অনুরোধগুলিকে ব্লক করে।
{
"id" : 1,
"priority": 1,
"action" : { "type" : "block" },
"condition" : {
"urlFilter" : "abc",
"initiatorDomains" : ["foo.com"],
"resourceTypes" : ["script"]
}
}
url মিলে যাওয়া অক্ষর ফিল্টার করুন
একটি নিয়মের "condition" কী একটি নির্দিষ্ট ডোমেনের অধীনে URL গুলিতে কাজ করার জন্য একটি "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://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
-
যদি একাধিক নিয়ম মিলে যায়, তাহলে সাম্প্রতিক ইনস্টল করা এক্সটেনশনটি অগ্রাধিকার পাবে।
নিয়ম সীমা
ব্রাউজারে নিয়ম লোড এবং মূল্যায়ন করার জন্য একটি পারফরম্যান্স ওভারহেড থাকে, তাই API ব্যবহার করার সময় কিছু সীমা প্রযোজ্য। সীমাগুলি আপনি যে ধরণের নিয়ম ব্যবহার করছেন তার উপর নির্ভর করে।
স্থির নিয়ম
স্ট্যাটিক নিয়ম হলো ম্যানিফেস্ট ফাইলে ঘোষিত নিয়ম ফাইলে নির্দিষ্ট করা নিয়ম। একটি এক্সটেনশন "rule_resources" ম্যানিফেস্ট কী-এর অংশ হিসেবে ৫০টি পর্যন্ত স্ট্যাটিক নিয়ম সেট নির্দিষ্ট করতে পারে, কিন্তু এই নিয়ম সেটগুলির মধ্যে মাত্র ১০টি একবারে সক্রিয় করা সম্ভব। পরবর্তীটিকে MAX_NUMBER_OF_ENABLED_STATIC_RULESETS বলা হয়। সামগ্রিকভাবে, এই নিয়ম সেটগুলি কমপক্ষে ৩০,০০০ নিয়ম নিশ্চিত করে। এটিকে GUARANTEED_MINIMUM_STATIC_RULES বলা হয়।
এরপর কতগুলি নিয়ম উপলব্ধ হবে তা নির্ভর করে ব্যবহারকারীর ব্রাউজারে ইনস্টল করা সমস্ত এক্সটেনশন কতগুলি নিয়ম সক্রিয় করেছে তার উপর। রানটাইমে আপনি getAvailableStaticRuleCount() এ কল করে এই নম্বরটি খুঁজে পেতে পারেন। আপনি কোড উদাহরণের অধীনে এর একটি উদাহরণ দেখতে পারেন।
গতিশীল এবং অধিবেশন নিয়ম
ডায়নামিক এবং সেশন নিয়মের ক্ষেত্রে প্রযোজ্য সীমা স্ট্যাটিক নিয়মের চেয়ে সহজ। উভয়ের মোট সংখ্যা 5000 এর বেশি হতে পারে না। এটিকে MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES বলা হয়।
রেজেক্স ব্যবহারের নিয়ম
সকল ধরণের নিয়ম নিয়মিত এক্সপ্রেশন ব্যবহার করতে পারে; তবে, প্রতিটি ধরণের রেজেক্স নিয়মের মোট সংখ্যা ১০০০ এর বেশি হতে পারে না। এটিকে MAX_NUMBER_OF_REGEX_RULES বলা হয়।
অতিরিক্তভাবে, প্রতিটি নিয়ম একবার কম্পাইল করার পরে 2KB এর কম হতে হবে। এটি মোটামুটি নিয়মের জটিলতার সাথে সম্পর্কিত। যদি আপনি এমন একটি নিয়ম লোড করার চেষ্টা করেন যা এই সীমা অতিক্রম করে, তাহলে আপনি নীচের মতো একটি সতর্কতা দেখতে পাবেন এবং নিয়মটি উপেক্ষা করা হবে।
rules_1.json: Rule with id 1 specified a more complext 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);
}
নিয়মের উদাহরণ
নিচের উদাহরণগুলি দেখায় যে Chrome কীভাবে একটি এক্সটেনশনে নিয়মগুলিকে অগ্রাধিকার দেয়। সেগুলি পর্যালোচনা করার সময়, আপনি একটি পৃথক উইন্ডোতে অগ্রাধিকার নিয়মগুলি খুলতে চাইতে পারেন।
"অগ্রাধিকার" চাবিকাঠি
এই উদাহরণগুলির জন্য *://*.example.com/* এ হোস্টের অনুমতি প্রয়োজন।
একটি নির্দিষ্ট URL-এর অগ্রাধিকার নির্ধারণ করতে, (ডেভেলপার-সংজ্ঞায়িত) "priority" কী, "action" কী এবং "urlFilter" কী দেখুন। এই উদাহরণগুলি নীচে দেখানো উদাহরণ নিয়ম ফাইলের উল্লেখ করে।
- https://google.com-এ নেভিগেট করুন
- এই URL-এর জন্য দুটি নিয়ম প্রযোজ্য: ১ এবং ৪ নম্বর আইডি সহ নিয়ম। ১ নম্বর আইডি সহ নিয়ম প্রযোজ্য কারণ
"block"অ্যাকশনগুলি"redirect"অ্যাকশনের চেয়ে বেশি অগ্রাধিকার পায়। বাকি নিয়মগুলি প্রযোজ্য নয় কারণ এগুলি দীর্ঘ URL-এর জন্য। - https://google.com/1234-এ নেভিগেট করুন
- লম্বা URL এর কারণে, ID 2 এর নিয়মটি এখন ID 1 এবং 4 এর নিয়মের সাথে মিলে যায়। ID 2 এর নিয়মটি প্রযোজ্য কারণ
"allow"এর অগ্রাধিকার"block"এবং"redirect"এর চেয়ে বেশি। - https://google.com/12345-এ নেভিগেট করুন
- চারটি নিয়মই এই URL-এর সাথে মিলে যায়। ID 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 হল আপনার এক্সটেনশনের ID। এটি কাজ করার জন্য ম্যানিফেস্টকে /a.jpg কে একটি ওয়েব অ্যাক্সেসযোগ্য রিসোর্স হিসাবে ঘোষণা করতে হবে।
{
"id": 1,
"priority": 1,
"action": { "type": "redirect", "redirect": { "extensionPath": "/a.jpg" } },
"condition": {
"urlFilter": "https://www.example.com",
"resourceTypes": ["main_frame"]
}
}
নিম্নলিখিতটি example.com এর একটি সাবডোমেইন পুনঃনির্দেশিত করতে "transform" কী ব্যবহার করে। এটি example.com এর যেকোনো স্কিমের অনুরোধ আটকাতে একটি ডোমেন নাম অ্যাঙ্কর ("||") ব্যবহার করে। "transform" এর "scheme" কীটি নির্দিষ্ট করে যে সাবডোমেইন পুনঃনির্দেশিত করার সময় সর্বদা "https" ব্যবহার করা হবে।
{
"id": 1,
"priority": 1,
"action": {
"type": "redirect",
"redirect": {
"transform": { "scheme": "https", "host": "new.example.com" }
}
},
"condition": {
"urlFilter": "||example.com",
"resourceTypes": ["main_frame"]
}
}
নিম্নলিখিত উদাহরণে https://www.abc.xyz.com/path থেকে https://abc.xyz.com/path এ পুনঃনির্দেশিত করার জন্য নিয়মিত এক্সপ্রেশন ব্যবহার করা হয়েছে। "regexFilter" কীতে, লক্ষ্য করুন কিভাবে পিরিয়ডগুলি এস্কেপ করা হয় এবং ক্যাপচারিং গ্রুপ "abc" অথবা "def" নির্বাচন করে। "regexSubstitution" কী "\1" ব্যবহার করে নিয়মিত এক্সপ্রেশনের প্রথম ফেরত মিল নির্দিষ্ট করে। এই ক্ষেত্রে, "abc" পুনঃনির্দেশিত URL থেকে ক্যাপচার করা হয় এবং প্রতিস্থাপনে স্থাপন করা হয়।
{
"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
বৈশিষ্ট্য
- ডিসপ্লেঅ্যাকশনকাউন্টআজব্যাজটেক্সট
বুলিয়ান ঐচ্ছিক
কোনও পৃষ্ঠার জন্য অ্যাকশন গণনা স্বয়ংক্রিয়ভাবে এক্সটেনশনের ব্যাজ টেক্সট হিসেবে প্রদর্শন করা হবে কিনা। এই পছন্দটি সেশন জুড়ে বহাল থাকে।
- ট্যাব আপডেট
ট্যাবঅ্যাকশনকাউন্টআপডেট ঐচ্ছিক
ক্রোম ৮৯+ট্যাবের অ্যাকশন কাউন্ট কীভাবে সামঞ্জস্য করা উচিত তার বিশদ বিবরণ।
GetDisabledRuleIdsOptions
বৈশিষ্ট্য
- নিয়ম সেট আইডি
স্ট্রিং
একটি স্ট্যাটিক
Rulesetসাথে সম্পর্কিত আইডি।
GetRulesFilter
বৈশিষ্ট্য
- নিয়ম আইডি
সংখ্যা[] ঐচ্ছিক
যদি নির্দিষ্ট করা থাকে, তাহলে শুধুমাত্র মিলিত আইডি সহ নিয়মগুলি অন্তর্ভুক্ত করা হবে।
HeaderInfo
বৈশিষ্ট্য
- বাদ দেওয়া মান
স্ট্রিং[] ঐচ্ছিক
যদি নির্দিষ্ট করা থাকে, তাহলে এই শর্তটি মিলবে না যদি হেডারটি বিদ্যমান থাকে কিন্তু এর মানটিতে এই তালিকায় কমপক্ষে একটি উপাদান থাকে। এটি
valuesমতো একই মিল প্যাটার্ন সিনট্যাক্স ব্যবহার করে। - হেডার
স্ট্রিং
হেডারের নাম। এই শর্তটি শুধুমাত্র তখনই নামের সাথে মিলে যায় যদি
valuesএবংexcludedValuesউভয়ই নির্দিষ্ট না থাকে। - মান
স্ট্রিং[] ঐচ্ছিক
যদি নির্দিষ্ট করা থাকে, তাহলে এই শর্তটি মিলবে যদি হেডারের মান এই তালিকার কমপক্ষে একটি প্যাটার্নের সাথে মেলে। এটি কেস-ইনসেনসিটিভ হেডার মান ম্যাচিং এবং নিম্নলিখিত গঠনগুলিকে সমর্থন করে:
'*' : যেকোনো সংখ্যক অক্ষরের সাথে মিল করে।
'?' : শূন্য অথবা একটি অক্ষরের সাথে মেলে।
'*' এবং '?' কে ব্যাকস্ল্যাশ দিয়ে এস্কেপ করা যেতে পারে, যেমন '\*' এবং '\?'
HeaderOperation
এটি "modifyHeaders" নিয়মের সম্ভাব্য ক্রিয়াকলাপগুলি বর্ণনা করে।
এনাম
"সংযোজন" "সেট" "সরান"
নির্দিষ্ট হেডারের জন্য একটি নতুন এন্ট্রি যোগ করে। একটি অনুরোধের হেডার পরিবর্তন করার সময়, এই ক্রিয়াকলাপটি শুধুমাত্র নির্দিষ্ট হেডারের জন্য সমর্থিত।
নির্দিষ্ট হেডারের জন্য একটি নতুন মান সেট করে, একই নামের যেকোনো বিদ্যমান হেডার সরিয়ে দেয়।
নির্দিষ্ট হেডারের জন্য সমস্ত এন্ট্রি সরিয়ে দেয়।
IsRegexSupportedResult
বৈশিষ্ট্য
- সমর্থিত
বুলিয়ান
- কারণ
অসমর্থিতRegexReason ঐচ্ছিক
রেগুলার এক্সপ্রেশন কেন সমর্থিত নয় তার কারণ উল্লেখ করে। শুধুমাত্র যদি
isSupportedমিথ্যা হয় তবেই প্রদান করা হবে।
MatchedRule
বৈশিষ্ট্য
- নিয়ম আইডি
সংখ্যা
একটি মিলে যাওয়া নিয়মের আইডি।
- নিয়ম সেট আইডি
স্ট্রিং
এই নিয়মটি যে নিয়ম
Rulesetঅন্তর্গত তার আইডি। গতিশীল নিয়মের সেট থেকে উদ্ভূত একটি নিয়মের জন্য, এটিDYNAMIC_RULESET_IDএর সমান হবে।
MatchedRuleInfo
বৈশিষ্ট্য
- নিয়ম
- ট্যাবআইডি
সংখ্যা
যদি ট্যাবটি এখনও সক্রিয় থাকে, তাহলে যে ট্যাব থেকে অনুরোধটি এসেছে তার ট্যাবআইডি। অন্যথায় -1.
- টাইমস্ট্যাম্প
সংখ্যা
নিয়মটি মেলানোর সময়। টাইমস্ট্যাম্পগুলি জাভাস্ক্রিপ্ট কনভেনশনের সাথে সময়ের জন্য মিলবে, অর্থাৎ যুগের পর থেকে মিলিসেকেন্ডের সংখ্যা।
MatchedRuleInfoDebug
বৈশিষ্ট্য
- অনুরোধ
যে অনুরোধের জন্য নিয়মটি মিলেছে তার বিশদ বিবরণ।
- নিয়ম
MatchedRulesFilter
বৈশিষ্ট্য
- মিনটাইমস্ট্যাম্প
সংখ্যা ঐচ্ছিক
যদি নির্দিষ্ট করা থাকে, তবে প্রদত্ত টাইমস্ট্যাম্পের পরে শুধুমাত্র নিয়মগুলির সাথে মেলে।
- ট্যাবআইডি
সংখ্যা ঐচ্ছিক
যদি নির্দিষ্ট করা থাকে, তবে শুধুমাত্র প্রদত্ত ট্যাবের জন্য নিয়মগুলি মিলবে। যদি -1 তে সেট করা থাকে তবে কোনও সক্রিয় ট্যাবের সাথে সম্পর্কিত নয় এমন নিয়মগুলি মিলবে।
ModifyHeaderInfo
বৈশিষ্ট্য
- হেডার
স্ট্রিং
যে হেডারটি পরিবর্তন করা হবে তার নাম।
- অপারেশন
একটি হেডারে সঞ্চালিত অপারেশন।
- মূল্য
স্ট্রিং ঐচ্ছিক
হেডারের জন্য নতুন মান।
appendএবংsetঅপারেশনের জন্য নির্দিষ্ট করতে হবে।
QueryKeyValue
বৈশিষ্ট্য
- চাবি
স্ট্রিং
- শুধুমাত্র প্রতিস্থাপন করুন
বুলিয়ান ঐচ্ছিক
ক্রোম ৯৪+যদি সত্য হয়, তাহলে কোয়েরি কীটি শুধুমাত্র তখনই প্রতিস্থাপন করা হবে যদি এটি ইতিমধ্যেই উপস্থিত থাকে। অন্যথায়, যদি এটি অনুপস্থিত থাকে তবে কীটিও যোগ করা হবে। ডিফল্টভাবে মিথ্যা।
- মূল্য
স্ট্রিং
QueryTransform
বৈশিষ্ট্য
- অ্যাডঅররেপ্লেসপ্যারাম
QueryKeyValue [] ঐচ্ছিক
যোগ বা প্রতিস্থাপনের জন্য কোয়েরি কী-মান জোড়ার তালিকা।
- প্যারামিটারগুলি সরান
স্ট্রিং[] ঐচ্ছিক
অপসারণের জন্য কোয়েরি কীগুলির তালিকা।
Redirect
বৈশিষ্ট্য
- এক্সটেনশনপথ
স্ট্রিং ঐচ্ছিক
এক্সটেনশন ডিরেক্টরির সাথে সম্পর্কিত পথ। '/' দিয়ে শুরু হওয়া উচিত।
- regexSubstitution সম্পর্কে
স্ট্রিং ঐচ্ছিক
regexFilterনির্দিষ্ট করে এমন নিয়মের জন্য প্রতিস্থাপন প্যাটার্ন। url-এর মধ্যেregexFilterএর প্রথম মিলটি এই প্যাটার্ন দিয়ে প্রতিস্থাপিত হবে।regexSubstitutionমধ্যে, ব্যাকস্ল্যাশ-এস্কেপ করা সংখ্যা (\1 থেকে \9) ব্যবহার করে সংশ্লিষ্ট ক্যাপচার গ্রুপগুলি সন্নিবেশ করানো যেতে পারে। \0 সম্পূর্ণ মিলিত পাঠ্যকে বোঝায়। - রূপান্তর করা
URLTransform ঐচ্ছিক
সম্পাদন করার জন্য ইউআরএল রূপান্তর।
- ইউআরএল
স্ট্রিং ঐচ্ছিক
পুনঃনির্দেশ URL। জাভাস্ক্রিপ্ট URL-এ পুনঃনির্দেশ অনুমোদিত নয়।
RegexOptions
বৈশিষ্ট্য
- কেস সংবেদনশীল
বুলিয়ান ঐচ্ছিক
নির্দিষ্ট
regexকেস সংবেদনশীল কিনা। ডিফল্ট হল সত্য। - রেজেক্স
স্ট্রিং
নিয়মিত এক্সপ্রেসন চেক করতে হবে।
- রিকুইরক্যাপচারিং
বুলিয়ান ঐচ্ছিক
নির্দিষ্ট
regexক্যাপচার করার প্রয়োজন আছে কিনা। ক্যাপচারিং শুধুমাত্র রিডাইরেক্ট নিয়মের জন্য প্রয়োজন যা একটিregexSubstitionঅ্যাকশন নির্দিষ্ট করে। ডিফল্ট হল মিথ্যা।
RequestDetails
বৈশিষ্ট্য
- ডকুমেন্ট আইডি
স্ট্রিং ঐচ্ছিক
ক্রোম ১০৬+যদি এই অনুরোধটি একটি ফ্রেমের জন্য হয়, তাহলে ফ্রেমের ডকুমেন্টের জন্য অনন্য শনাক্তকারী।
- ডকুমেন্টলাইফসাইকেল
ডকুমেন্ট লাইফসাইকেল ঐচ্ছিক
ক্রোম ১০৬+যদি এই অনুরোধটি একটি ফ্রেমের জন্য হয়, তাহলে ফ্রেমের ডকুমেন্টের জীবনচক্র।
- ফ্রেম আইডি
সংখ্যা
মান ০ নির্দেশ করে যে অনুরোধটি মূল ফ্রেমে ঘটে; একটি ধনাত্মক মান একটি সাবফ্রেমের আইডি নির্দেশ করে যেখানে অনুরোধটি ঘটে। যদি একটি (সাব-)ফ্রেমের ডকুমেন্ট লোড করা হয় (
typeহলmain_frameবাsub_frame), তাহলেframeIdএই ফ্রেমের আইডি নির্দেশ করে, বাইরের ফ্রেমের আইডি নয়। ফ্রেম আইডিগুলি একটি ট্যাবের মধ্যে অনন্য। - ফ্রেম টাইপ
ফ্রেমটাইপ ঐচ্ছিক
ক্রোম ১০৬+যদি এই অনুরোধটি একটি ফ্রেমের জন্য হয়, তাহলে ফ্রেমের ধরণ।
- সূচনাকারী
স্ট্রিং ঐচ্ছিক
যে উৎস থেকে অনুরোধটি শুরু করা হয়েছিল। পুনঃনির্দেশের মাধ্যমে এটি পরিবর্তন হয় না। যদি এটি একটি অস্বচ্ছ উৎস হয়, তাহলে 'null' স্ট্রিংটি ব্যবহার করা হবে।
- পদ্ধতি
স্ট্রিং
স্ট্যান্ডার্ড HTTP পদ্ধতি।
- প্যারেন্ট ডকুমেন্ট আইডি
স্ট্রিং ঐচ্ছিক
ক্রোম ১০৬+ফ্রেমের প্যারেন্ট ডকুমেন্টের জন্য অনন্য শনাক্তকারী, যদি এই অনুরোধটি একটি ফ্রেমের জন্য হয় এবং এর একটি প্যারেন্ট থাকে।
- প্যারেন্টফ্রেমআইডি
সংখ্যা
যে ফ্রেমটি অনুরোধটি পাঠিয়েছে সেটিকে মোড়ানো ফ্রেমের আইডি। যদি কোনও প্যারেন্ট ফ্রেম না থাকে তবে -1 তে সেট করুন।
- অনুরোধ আইডি
স্ট্রিং
অনুরোধের আইডি। অনুরোধ আইডিগুলি একটি ব্রাউজার সেশনের মধ্যে অনন্য।
- ট্যাবআইডি
সংখ্যা
যে ট্যাবে অনুরোধটি করা হচ্ছে তার আইডি। যদি অনুরোধটি কোনও ট্যাবের সাথে সম্পর্কিত না হয় তবে -1 তে সেট করুন।
- আদর্শ
অনুরোধের রিসোর্সের ধরণ।
- ইউআরএল
স্ট্রিং
অনুরোধের URL।
RequestMethod
এটি একটি নেটওয়ার্ক অনুরোধের HTTP অনুরোধ পদ্ধতি বর্ণনা করে।
এনাম
"সংযোগ" "মুছে ফেলা" "পাও" "মাথা" "বিকল্প" "প্যাচ" "পোস্ট" "রাখা" "অন্যান্য"
ResourceType
এটি নেটওয়ার্ক অনুরোধের রিসোর্সের ধরণ বর্ণনা করে।
এনাম
"প্রধান_ফ্রেম" "সাব_ফ্রেম" "স্টাইলশিট" "লিপি" "ছবি" "ফন্ট" "বস্তু" "xmlhttprequest" "পিং" "csp_report" "মিডিয়া" "ওয়েবসকেট" "ওয়েব পরিবহন" "ওয়েববান্ডেল" "অন্যান্য"
Rule
বৈশিষ্ট্য
- কর্ম
এই নিয়মটি মিলে গেলে কী ব্যবস্থা নিতে হবে।
- অবস্থা
যে শর্তে এই নিয়ম কার্যকর করা হয়।
- আইডি
সংখ্যা
একটি আইডি যা একটি নিয়মকে অনন্যভাবে শনাক্ত করে। বাধ্যতামূলক এবং >= 1 হওয়া উচিত।
- অগ্রাধিকার
সংখ্যা ঐচ্ছিক
নিয়মের অগ্রাধিকার। ডিফল্ট হিসেবে ১। নির্দিষ্ট করা হলে, >= ১ হওয়া উচিত।
RuleAction
বৈশিষ্ট্য
- পুনঃনির্দেশ
পুনঃনির্দেশ ঐচ্ছিক
পুনঃনির্দেশ কীভাবে করা উচিত তা বর্ণনা করে। শুধুমাত্র পুনঃনির্দেশ নিয়মের জন্য বৈধ।
- অনুরোধ শিরোনাম
ModifyHeaderInfo [] ঐচ্ছিক
ক্রোম ৮৬+অনুরোধের জন্য সংশোধন করার জন্য অনুরোধের শিরোনাম। শুধুমাত্র RuleActionType "modifyHeaders" হলেই বৈধ।
- প্রতিক্রিয়া শিরোনাম
ModifyHeaderInfo [] ঐচ্ছিক
ক্রোম ৮৬+অনুরোধের জন্য পরিবর্তন করার জন্য প্রতিক্রিয়া শিরোনাম। শুধুমাত্র যদি RuleActionType "modifyHeaders" হয় তবেই বৈধ।
- আদর্শ
যে ধরণের কর্ম সম্পাদন করতে হবে।
RuleActionType
একটি প্রদত্ত RuleCondition মিলে গেলে কী ধরণের পদক্ষেপ নিতে হবে তা বর্ণনা করে।
এনাম
"ব্লক" "পুনঃনির্দেশ" "অনুমতি দিন" "আপগ্রেডস্কিম" "শিরোনাম পরিবর্তন করুন" "সকল অনুরোধের অনুমতি দিন"
নেটওয়ার্ক অনুরোধ ব্লক করুন।
নেটওয়ার্ক অনুরোধটি পুনঃনির্দেশ করুন।
নেটওয়ার্ক অনুরোধটি মঞ্জুর করুন। যদি কোনও অনুমতি নিয়ম থাকে যা এর সাথে মেলে তবে অনুরোধটি আটকানো হবে না।
যদি অনুরোধটি http অথবা ftp হয়, তাহলে নেটওয়ার্ক অনুরোধ url এর স্কিমটি https তে আপগ্রেড করুন।
নেটওয়ার্ক অনুরোধ থেকে অনুরোধ/প্রতিক্রিয়া শিরোনাম পরিবর্তন করুন।
ফ্রেম অনুক্রমের মধ্যে সমস্ত অনুরোধের অনুমতি দিন, ফ্রেম অনুরোধ নিজেই সহ।
RuleCondition
বৈশিষ্ট্য
- ডোমেইন টাইপ
ডোমেন টাইপ ঐচ্ছিক
নেটওয়ার্ক অনুরোধটি যে ডোমেন থেকে এসেছে তার প্রথম পক্ষ নাকি তৃতীয় পক্ষ তা নির্দিষ্ট করে। বাদ দিলে, সমস্ত অনুরোধ গৃহীত হবে।
- ডোমেইন
স্ট্রিং[] ঐচ্ছিক
Chrome 101 থেকে বন্ধ করা হয়েছেপরিবর্তে
initiatorDomainsব্যবহার করুনএই নিয়মটি শুধুমাত্র
domainsতালিকা থেকে উদ্ভূত নেটওয়ার্ক অনুরোধগুলির সাথে মিলবে। - বাদ দেওয়া ডোমেইন
স্ট্রিং[] ঐচ্ছিক
Chrome 101 থেকে বন্ধ করা হয়েছেপরিবর্তে
excludedInitiatorDomainsব্যবহার করুনএই নিয়মটি
excludedDomainsএর তালিকা থেকে উদ্ভূত নেটওয়ার্ক অনুরোধগুলির সাথে মেলে না। - বাদ দেওয়া ইনিশিয়েটারডোমেইন
স্ট্রিং[] ঐচ্ছিক
ক্রোম ১০১+এই নিয়মটি
excludedInitiatorDomainsএর তালিকা থেকে উদ্ভূত নেটওয়ার্ক অনুরোধগুলির সাথে মেলে না। যদি তালিকাটি খালি থাকে বা বাদ দেওয়া হয়, তাহলে কোনও ডোমেন বাদ দেওয়া হবে না। এটিinitiatorDomainsএর চেয়ে অগ্রাধিকার পায়।নোট:
- "a.example.com" এর মতো সাব-ডোমেনগুলিও অনুমোদিত।
- এন্ট্রিগুলিতে কেবল ascii অক্ষর থাকতে হবে।
- আন্তর্জাতিকীকৃত ডোমেনের জন্য punycode এনকোডিং ব্যবহার করুন।
- এটি অনুরোধের url এর সাথে নয়, অনুরোধের সূচনাকারীর সাথে মিলে যায়।
- তালিকাভুক্ত ডোমেনগুলির সাব-ডোমেনগুলিও বাদ দেওয়া হয়েছে।
- বাদ দেওয়া অনুরোধ ডোমেইন
স্ট্রিং[] ঐচ্ছিক
ক্রোম ১০১+যখন ডোমেনগুলি
excludedRequestDomainsতালিকা থেকে একটির সাথে মিলে যায়, তখন নিয়মটি নেটওয়ার্ক অনুরোধগুলির সাথে মিলবে না। যদি তালিকাটি খালি থাকে বা বাদ দেওয়া হয়, তাহলে কোনও ডোমেন বাদ দেওয়া হয় না। এটিrequestDomainsএর চেয়ে প্রাধান্য পায়।নোট:
- "a.example.com" এর মতো সাব-ডোমেনগুলিও অনুমোদিত।
- এন্ট্রিগুলিতে কেবল ascii অক্ষর থাকতে হবে।
- আন্তর্জাতিকীকৃত ডোমেনের জন্য punycode এনকোডিং ব্যবহার করুন।
- তালিকাভুক্ত ডোমেনগুলির সাব-ডোমেনগুলিও বাদ দেওয়া হয়েছে।
- বাদ দেওয়া অনুরোধ পদ্ধতি
অনুরোধ পদ্ধতি [] ঐচ্ছিক
ক্রোম ৯১+যেসব অনুরোধ পদ্ধতির সাথে নিয়মটি মিলছে না তার তালিকা। শুধুমাত্র
requestMethodsএবংexcludedRequestMethodsএর মধ্যে একটি নির্দিষ্ট করতে হবে। যদি এগুলির কোনওটিই নির্দিষ্ট না করা থাকে, তাহলে সমস্ত অনুরোধ পদ্ধতি মিলবে। - বাদ দেওয়া রিসোর্সটাইপস
রিসোর্সটাইপ [] ঐচ্ছিক
নিয়মটি যে ধরণের রিসোর্সের সাথে মেলে না তার তালিকা। শুধুমাত্র একটি
resourceTypesএবংexcludedResourceTypesনির্দিষ্ট করতে হবে। যদি এগুলির কোনওটিই নির্দিষ্ট না করা থাকে, তাহলে "main_frame" ছাড়া সমস্ত রিসোর্সের ধরণ ব্লক করা হবে। - বাদ দেওয়া রেসপন্সহেডার
হেডারইনফো [] ঐচ্ছিক
ক্রোম ১২৮+যদি অনুরোধটি এই তালিকার (যদি উল্লেখ করা থাকে) কোনও প্রতিক্রিয়া শিরোনামের শর্তের সাথে মেলে তবে নিয়মটি মিলবে না। যদি
excludedResponseHeadersএবংresponseHeadersউভয়ই নির্দিষ্ট করা থাকে, তাহলেexcludedResponseHeadersসম্পত্তিটি প্রাধান্য পাবে। - বাদ দেওয়া ট্যাবআইডি
সংখ্যা[] ঐচ্ছিক
ক্রোম ৯২+tabs.Tab.idতালিকা, যেগুলো নিয়মের সাথে মেলে না।tabs.TAB_ID_NONE-এর একটি আইডি এমন অনুরোধ বাদ দেয় যা ট্যাব থেকে আসে না। শুধুমাত্র সেশন-স্কোপড নিয়মের জন্য সমর্থিত। - বাদ দেওয়া হয়েছেটপডোমেইন
স্ট্রিং[] ঐচ্ছিক
মুলতুবিসংশ্লিষ্ট শীর্ষ-স্তরের ফ্রেমের ডোমেন যখন
excludedTopDomainsতালিকার একটির সাথে মিলে যায়, তখন নিয়মটি নেটওয়ার্ক অনুরোধের সাথে মিলবে না। যদি তালিকাটি খালি থাকে বা বাদ দেওয়া হয়, তাহলে কোনও ডোমেন বাদ দেওয়া হয় না। এটিtopDomainsএর চেয়ে অগ্রাধিকার পায়।নোট:
- "a.example.com" এর মতো সাব-ডোমেনগুলিও অনুমোদিত।
- এন্ট্রিগুলিতে কেবল ascii অক্ষর থাকতে হবে।
- আন্তর্জাতিকীকৃত ডোমেনের জন্য punycode এনকোডিং ব্যবহার করুন।
- তালিকাভুক্ত ডোমেনগুলির সাব-ডোমেনগুলিও বাদ দেওয়া হয়েছে।
- যেসব অনুরোধের সাথে কোনও শীর্ষ-স্তরের ফ্রেম যুক্ত নেই (যেমন ServiceWorker দ্বারা শুরু করা অনুরোধ), তাদের পরিবর্তে অনুরোধকারীর ডোমেন বিবেচনা করা হয়।
- initiatorডোমেইন
স্ট্রিং[] ঐচ্ছিক
ক্রোম ১০১+এই নিয়মটি শুধুমাত্র
initiatorDomainsএর তালিকা থেকে উদ্ভূত নেটওয়ার্ক অনুরোধগুলির সাথে মিলবে। যদি তালিকাটি বাদ দেওয়া হয়, তাহলে নিয়মটি সমস্ত ডোমেনের অনুরোধগুলিতে প্রয়োগ করা হবে। খালি তালিকা অনুমোদিত নয়।নোট:
- "a.example.com" এর মতো সাব-ডোমেনগুলিও অনুমোদিত।
- এন্ট্রিগুলিতে কেবল ascii অক্ষর থাকতে হবে।
- আন্তর্জাতিকীকৃত ডোমেনের জন্য punycode এনকোডিং ব্যবহার করুন।
- এটি অনুরোধের url এর সাথে নয়, অনুরোধের সূচনাকারীর সাথে মিলে যায়।
- তালিকাভুক্ত ডোমেনগুলির সাব-ডোমেনগুলিও মিলে গেছে।
- isUrlFilterCaseSensitive সম্পর্কে
বুলিয়ান ঐচ্ছিক
urlFilterনাকিregexFilter(যেটি নির্দিষ্ট করা আছে) কেস সেনসিটিভ কিনা। ডিফল্ট হল false। - regexFilter সম্পর্কে
স্ট্রিং ঐচ্ছিক
নেটওয়ার্ক অনুরোধের url এর সাথে মেলানোর জন্য রেগুলার এক্সপ্রেশন। এটি RE2 সিনট্যাক্স অনুসরণ করে।
দ্রষ্টব্য: শুধুমাত্র
urlFilterঅথবাregexFilterএর মধ্যে একটি নির্দিষ্ট করা যেতে পারে।দ্রষ্টব্য:
regexFilterঅবশ্যই শুধুমাত্র ASCII অক্ষর দিয়ে তৈরি হতে হবে। এটি এমন একটি url এর সাথে মিলিত হয় যেখানে হোস্টটি punycode ফর্ম্যাটে এনকোড করা থাকে (আন্তর্জাতিক ডোমেনের ক্ষেত্রে) এবং অন্য যেকোনো নন-ascii অক্ষর utf-8 এ এনকোড করা থাকে। - অনুরোধ ডোমেইন
স্ট্রিং[] ঐচ্ছিক
ক্রোম ১০১+এই নিয়মটি কেবল তখনই নেটওয়ার্ক অনুরোধগুলির সাথে মিলবে যখন ডোমেনটি
requestDomainsতালিকা থেকে একটির সাথে মিলবে। যদি তালিকাটি বাদ দেওয়া হয়, তাহলে নিয়মটি সমস্ত ডোমেনের অনুরোধগুলিতে প্রয়োগ করা হবে। খালি তালিকা অনুমোদিত নয়।নোট:
- "a.example.com" এর মতো সাব-ডোমেনগুলিও অনুমোদিত।
- এন্ট্রিগুলিতে কেবল ascii অক্ষর থাকতে হবে।
- আন্তর্জাতিকীকৃত ডোমেনের জন্য punycode এনকোডিং ব্যবহার করুন।
- তালিকাভুক্ত ডোমেনগুলির সাব-ডোমেনগুলিও মিলে গেছে।
- অনুরোধ পদ্ধতি
অনুরোধ পদ্ধতি [] ঐচ্ছিক
ক্রোম ৯১+HTTP অনুরোধ পদ্ধতির তালিকা যা নিয়মটি মেলাতে পারে। খালি তালিকা অনুমোদিত নয়।
দ্রষ্টব্য: একটি
requestMethodsনিয়ম শর্ত উল্লেখ করলে নন-HTTP(গুলি) অনুরোধগুলিও বাদ যাবে, যেখানেexcludedRequestMethodsউল্লেখ করলে তা বাদ যাবে না। - রিসোর্সের ধরণ
রিসোর্সটাইপ [] ঐচ্ছিক
নিয়ম অনুসারে মিলতে পারে এমন রিসোর্সের তালিকা। খালি তালিকা অনুমোদিত নয়।
দ্রষ্টব্য: এটি
allowAllRequestsনিয়মের জন্য নির্দিষ্ট করতে হবে এবং এতে কেবলsub_frameএবংmain_frameরিসোর্সের ধরণ অন্তর্ভুক্ত থাকতে পারে। - প্রতিক্রিয়া শিরোনাম
হেডারইনফো [] ঐচ্ছিক
ক্রোম ১২৮+যদি অনুরোধটি এই তালিকার (যদি নির্দিষ্ট করা থাকে) কোনও প্রতিক্রিয়া শিরোনামের শর্তের সাথে মেলে, তাহলে নিয়মটি মিলবে।
- ট্যাবআইডি
সংখ্যা[] ঐচ্ছিক
ক্রোম ৯২+tabs.Tab.idতালিকা যা নিয়মের সাথে মেলে।tabs.TAB_ID_NONEএকটি আইডি এমন অনুরোধের সাথে মেলে যা কোনও ট্যাব থেকে আসে না। খালি তালিকা অনুমোদিত নয়। শুধুমাত্র সেশন-স্কোপযুক্ত নিয়মের জন্য সমর্থিত। - শীর্ষ ডোমেইন
স্ট্রিং[] ঐচ্ছিক
মুলতুবিএই নিয়মটি কেবল তখনই নেটওয়ার্ক অনুরোধগুলির সাথে মিলবে যখন সংশ্লিষ্ট শীর্ষ-স্তরের ফ্রেমের ডোমেন
topDomainsতালিকার একটির সাথে মিলবে। যদি তালিকাটি বাদ দেওয়া হয়, তাহলে নিয়মটি সমস্ত শীর্ষ-স্তরের ফ্রেম ডোমেনের সাথে সম্পর্কিত অনুরোধগুলিতে প্রয়োগ করা হবে। খালি তালিকা অনুমোদিত নয়।নোট:
- "a.example.com" এর মতো সাব-ডোমেনগুলিও অনুমোদিত।
- এন্ট্রিগুলিতে কেবল ascii অক্ষর থাকতে হবে।
- আন্তর্জাতিকীকৃত ডোমেনের জন্য punycode এনকোডিং ব্যবহার করুন।
- তালিকাভুক্ত ডোমেনগুলির সাব-ডোমেনগুলিও মিলে গেছে।
- যেসব অনুরোধের সাথে কোনও শীর্ষ-স্তরের ফ্রেম যুক্ত নেই (যেমন ServiceWorker দ্বারা শুরু করা অনুরোধ), তাদের পরিবর্তে অনুরোধকারীর ডোমেন বিবেচনা করা হয়।
- urlFilter সম্পর্কে
স্ট্রিং ঐচ্ছিক
নেটওয়ার্ক অনুরোধের url এর সাথে মিলে যাওয়া প্যাটার্ন। সমর্থিত গঠন:
'*' : ওয়াইল্ডকার্ড: যেকোনো সংখ্যক অক্ষরের সাথে মেলে।
'|' : বাম/ডান অ্যাঙ্কর: যদি প্যাটার্নের উভয় প্রান্তে ব্যবহার করা হয়, তাহলে যথাক্রমে url এর শুরু/শেষ নির্দিষ্ট করে।
'||' : ডোমেইন নেম অ্যাঙ্কর: যদি প্যাটার্নের শুরুতে ব্যবহার করা হয়, তাহলে URL-এর একটি (সাব-)ডোমেনের শুরু নির্দিষ্ট করে।
'^' : বিভাজক অক্ষর: এটি একটি অক্ষর, একটি সংখ্যা, অথবা নিম্নলিখিতগুলির মধ্যে একটি ছাড়া অন্য যেকোনো কিছুর সাথে মেলে:
_,-,., অথবা%. এটি URL এর শেষের সাথেও মেলে।অতএব,
urlFilterনিম্নলিখিত অংশগুলি নিয়ে গঠিত: (ঐচ্ছিক বাম/ডোমেন নাম অ্যাঙ্কর) + প্যাটার্ন + (ঐচ্ছিক ডান অ্যাঙ্কর)।বাদ দেওয়া হলে, সমস্ত url মিলে যাবে। খালি স্ট্রিং অনুমোদিত নয়।
||*দিয়ে শুরু হওয়া প্যাটার্ন অনুমোদিত নয়। এর পরিবর্তে*ব্যবহার করুন।দ্রষ্টব্য: শুধুমাত্র
urlFilterঅথবাregexFilterএর মধ্যে একটি নির্দিষ্ট করা যেতে পারে।দ্রষ্টব্য:
urlFilterঅবশ্যই শুধুমাত্র ASCII অক্ষর দিয়ে তৈরি হতে হবে। এটি এমন একটি url এর সাথে মিলিত হবে যেখানে হোস্টটি punycode ফর্ম্যাটে এনকোড করা থাকে (আন্তর্জাতিক ডোমেনের ক্ষেত্রে) এবং অন্য যেকোনো নন-ascii অক্ষর utf-8 এ url এনকোড করা থাকে। উদাহরণস্বরূপ, যখন অনুরোধের url http://abc.рф?q=ф হয়, তখনurlFilterটি http://abc.xn--p1ai/?q=%D1%84 url এর সাথে মিলিত হবে।
RuleConditionKeys
এনাম
"ইউআরএল ফিল্টার" "regexFilter" "ইউআরএলফিল্টারকেস সংবেদনশীল" "ইনিশিয়েটারডোমেইন" "বহির্ভূত ইনিশিয়েটারডোমেইন" "অনুরোধ ডোমেন" "বহির্ভূত অনুরোধডোমেইন" "শীর্ষ ডোমেন" "বহির্ভূতটপডোমেইন" "ডোমেইন" "বাদ দেওয়া ডোমেন" "রিসোর্সের ধরণ" "বহির্ভূত রিসোর্স টাইপ" "অনুরোধ পদ্ধতি" "বহির্ভূত অনুরোধ পদ্ধতি" "ডোমেন টাইপ" "ট্যাবআইডি" "বাদ দেওয়া ট্যাবআইডি" "প্রতিক্রিয়া শিরোনাম" "বহির্ভূত প্রতিক্রিয়াশিরোনাম"
Ruleset
বৈশিষ্ট্য
- সক্রিয়
বুলিয়ান
নিয়ম সেটটি ডিফল্টরূপে সক্রিয় কিনা।
- আইডি
স্ট্রিং
একটি খালি নয় এমন স্ট্রিং যা রুলসেটকে অনন্যভাবে শনাক্ত করে। '_' দিয়ে শুরু হওয়া আইডিগুলি অভ্যন্তরীণ ব্যবহারের জন্য সংরক্ষিত।
- পথ
স্ট্রিং
এক্সটেনশন ডিরেক্টরির সাপেক্ষে JSON রুলসেটের পথ।
RulesMatchedDetails
বৈশিষ্ট্য
- নিয়ম মিলিত তথ্য
প্রদত্ত ফিল্টারের সাথে মিলিত নিয়ম।
TabActionCountUpdate
বৈশিষ্ট্য
- বৃদ্ধি
সংখ্যা
ট্যাবের অ্যাকশন কাউন্ট কত পরিমাণে বাড়াতে হবে। ঋণাত্মক মান কাউন্ট কমাবে।
- ট্যাবআইডি
সংখ্যা
যে ট্যাবের জন্য অ্যাকশন কাউন্ট আপডেট করতে হবে।
TestMatchOutcomeResult
বৈশিষ্ট্য
- মিলে যাওয়া নিয়ম
ম্যাচডরুল []
কাল্পনিক অনুরোধের সাথে মেলে এমন নিয়ম (যদি থাকে)।
TestMatchRequestDetails
বৈশিষ্ট্য
- সূচনাকারী
স্ট্রিং ঐচ্ছিক
কাল্পনিক অনুরোধের জন্য ইনিশিয়েটর URL (যদি থাকে)।
- পদ্ধতি
অনুরোধ পদ্ধতি ঐচ্ছিক
কাল্পনিক অনুরোধের স্ট্যান্ডার্ড HTTP পদ্ধতি। HTTP অনুরোধের জন্য ডিফল্ট "get" থাকে এবং নন-HTTP অনুরোধের জন্য উপেক্ষা করা হয়।
- প্রতিক্রিয়া শিরোনাম
ঐচ্ছিক বস্তু
ক্রোম ১২৯+যদি অনুরোধটি পাঠানোর আগে ব্লক বা পুনঃনির্দেশিত না হয়, তাহলে একটি কাল্পনিক প্রতিক্রিয়া দ্বারা প্রদত্ত হেডারগুলি। একটি অবজেক্ট হিসাবে প্রতিনিধিত্ব করা হয় যা একটি হেডারের নামকে স্ট্রিং মানের তালিকায় ম্যাপ করে। যদি নির্দিষ্ট না করা হয়, তাহলে কাল্পনিক প্রতিক্রিয়াটি খালি প্রতিক্রিয়া হেডারগুলি ফিরিয়ে দেবে, যা হেডারের অস্তিত্বের সাথে মেলে এমন নিয়মগুলির সাথে মেলে। যেমন
{"content-type": ["text/html; charset=utf-8", "multipart/form-data"]} - ট্যাবআইডি
সংখ্যা ঐচ্ছিক
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
মুলতুবিThe associated top-level frame URL (if any) for the request.
- আদর্শ
The resource type of the hypothetical request.
- url
স্ট্রিং
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
বৈশিষ্ট্য
- addRules
Rule [] optional
Rules to add.
- removeRuleIds
number[] optional
IDs of the rules to remove. Any invalid IDs will be ignored.
UpdateRulesetOptions
বৈশিষ্ট্য
UpdateStaticRulesOptions
বৈশিষ্ট্য
URLTransform
বৈশিষ্ট্য
- খণ্ড
string optional
The new fragment for the request. Should be either empty, in which case the existing fragment is cleared; or should begin with '#'.
- হোস্ট
string optional
The new host for the request.
- পাসওয়ার্ড
string optional
The new password for the request.
- path
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".
- ব্যবহারকারীর নাম
string optional
The new username for the request.
বৈশিষ্ট্য
DYNAMIC_RULESET_ID
Ruleset ID for the dynamic rules added by the extension.
মূল্য
"_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.
মূল্য
১০
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 .
মূল্য
30000
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL
The number of times getMatchedRules can be called within a period of GETMATCHEDRULES_QUOTA_INTERVAL .
মূল্য
২০
MAX_NUMBER_OF_DYNAMIC_RULES
The maximum number of dynamic rules that an extension can add.
মূল্য
30000
MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
The maximum number of static Rulesets an extension can enable at any one time.
মূল্য
৫০
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.
মূল্য
১০০০
MAX_NUMBER_OF_SESSION_RULES
The maximum number of session scoped rules that an extension can add.
মূল্য
৫০০০
MAX_NUMBER_OF_STATIC_RULESETS
The maximum number of static Rulesets an extension can specify as part of the "rule_resources" manifest key.
মূল্য
১০০
MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
The maximum number of "unsafe" dynamic rules that an extension can add.
মূল্য
৫০০০
MAX_NUMBER_OF_UNSAFE_SESSION_RULES
The maximum number of "unsafe" session scoped rules that an extension can add.
মূল্য
৫০০০
SESSION_RULESET_ID
Ruleset ID for the session-scoped rules added by the extension.
মূল্য
"_session"
পদ্ধতি
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.
পরামিতি
- callback
function optional
The
callbackparameter looks like:(count: number) => void
- count
সংখ্যা
রিটার্নস
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.
পরামিতি
- options
Specifies the ruleset to query.
- callback
function optional
The
callbackparameter looks like:(disabledRuleIds: number[]) => void
- disabledRuleIds
number[]
রিটার্নস
Promise<number[]>
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 .
পরামিতি
- filter
GetRulesFilter optional
Chrome 111+An object to filter the list of fetched rules.
- callback
function optional
The
callbackparameter looks like:(rules: Rule[]) => void
- নিয়ম
Rule []
রিটার্নস
Promise< Rule []>
Chrome 91+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.
পরামিতি
- callback
function optional
The
callbackparameter looks like:(rulesetIds: string[]) => void
- rulesetIds
string[]
রিটার্নস
Promise<string[]>
Chrome 91+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.
পরামিতি
- filter
MatchedRulesFilter optional
An object to filter the list of matched rules.
- callback
function optional
The
callbackparameter looks like:(details: RulesMatchedDetails) => void
- বিস্তারিত
রিটার্নস
Promise< RulesMatchedDetails >
Chrome 91+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 .
পরামিতি
- filter
GetRulesFilter optional
Chrome 111+An object to filter the list of fetched rules.
- callback
function optional
The
callbackparameter looks like:(rules: Rule[]) => void
- নিয়ম
Rule []
রিটার্নস
Promise< Rule []>
Chrome 91+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.
পরামিতি
- regexOptions
The regular expression to check.
- callback
function optional
The
callbackparameter looks like:(result: IsRegexSupportedResult) => void
- ফলাফল
রিটার্নস
Promise< IsRegexSupportedResult >
Chrome 91+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.
পরামিতি
- 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.
পরামিতি
- অনুরোধ
- callback
function optional
The
callbackparameter looks like:(result: TestMatchOutcomeResult) => void
- ফলাফল
রিটার্নস
Promise< TestMatchOutcomeResult >
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.
পরামিতি
- optionsChrome 87+
- callback
function optional
The
callbackparameter looks like:() => void
রিটার্নস
Promise<void>
Chrome 91+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.
পরামিতি
- optionsChrome 87+
- callback
function optional
The
callbackparameter looks like:() => void
রিটার্নস
Promise<void>
Chrome 91+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.
পরামিতি
- options
- callback
function optional
The
callbackparameter looks like:() => void
রিটার্নস
Promise<void>
Chrome 91+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.
পরামিতি
- options
- callback
function optional
The
callbackparameter looks like:() => void
রিটার্নস
Promise<void>
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.
পরামিতি
- callback
ফাংশন
The
callbackparameter looks like:(info: MatchedRuleInfoDebug) => void
- তথ্য