বিবরণ
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এর মধ্যে একটি নির্দিষ্ট করা যেতে পারে।Note: The
urlFiltermust be composed of only ASCII characters. This is matched against a url where the host is encoded in the punycode format (in case of internationalized domains) and any other non-ascii characters are url encoded in utf-8. For example, when the request url is http://abc.рф?q=ф, theurlFilterwill be matched against the url http://abc.xn--p1ai/?q=%D1%84.
RuleConditionKeys
এনাম
"ইউআরএল ফিল্টার" "regexFilter" "ইউআরএলফিল্টারকেস সংবেদনশীল" "ইনিশিয়েটারডোমেইন" "বহির্ভূত ইনিশিয়েটারডোমেইন" "অনুরোধ ডোমেন" "বহির্ভূত অনুরোধডোমেইন" "শীর্ষ ডোমেন" "বহির্ভূতটপডোমেইন" "ডোমেইন" "বাদ দেওয়া ডোমেন" "রিসোর্সের ধরণ" "বহির্ভূত রিসোর্স টাইপ" "অনুরোধ পদ্ধতি" "বহির্ভূত অনুরোধ পদ্ধতি" "ডোমেন টাইপ" "ট্যাবআইডি" "বাদ দেওয়া ট্যাবআইডি" "প্রতিক্রিয়া শিরোনাম" "বহির্ভূত প্রতিক্রিয়াশিরোনাম"
Ruleset
বৈশিষ্ট্য
- সক্রিয়
বুলিয়ান
নিয়ম সেটটি ডিফল্টরূপে সক্রিয় কিনা।
- আইডি
স্ট্রিং
একটি খালি নয় এমন স্ট্রিং যা রুলসেটকে অনন্যভাবে শনাক্ত করে। '_' দিয়ে শুরু হওয়া আইডিগুলি অভ্যন্তরীণ ব্যবহারের জন্য সংরক্ষিত।
- পথ
স্ট্রিং
এক্সটেনশন ডিরেক্টরির সাপেক্ষে JSON রুলসেটের পথ।
RulesMatchedDetails
বৈশিষ্ট্য
- নিয়ম মিলিত তথ্য
প্রদত্ত ফিল্টারের সাথে মিলিত নিয়ম।
TabActionCountUpdate
বৈশিষ্ট্য
- বৃদ্ধি
সংখ্যা
ট্যাবের অ্যাকশন কাউন্ট কত পরিমাণে বাড়াতে হবে। ঋণাত্মক মান কাউন্ট কমাবে।
- ট্যাবআইডি
সংখ্যা
যে ট্যাবের জন্য অ্যাকশন কাউন্ট আপডেট করতে হবে।
TestMatchOutcomeResult
বৈশিষ্ট্য
- মিলে যাওয়া নিয়ম
ম্যাচডরুল []
কাল্পনিক অনুরোধের সাথে মেলে এমন নিয়ম (যদি থাকে)।
TestMatchRequestDetails
বৈশিষ্ট্য
- সূচনাকারী
স্ট্রিং ঐচ্ছিক
কাল্পনিক অনুরোধের জন্য ইনিশিয়েটর URL (যদি থাকে)।
- পদ্ধতি
অনুরোধ পদ্ধতি ঐচ্ছিক
কাল্পনিক অনুরোধের স্ট্যান্ডার্ড HTTP পদ্ধতি। HTTP অনুরোধের জন্য ডিফল্ট "get" থাকে এবং নন-HTTP অনুরোধের জন্য উপেক্ষা করা হয়।
- প্রতিক্রিয়া শিরোনাম
ঐচ্ছিক বস্তু
ক্রোম ১২৯+যদি অনুরোধটি পাঠানোর আগে ব্লক বা পুনঃনির্দেশিত না হয়, তাহলে একটি কাল্পনিক প্রতিক্রিয়া দ্বারা প্রদত্ত হেডারগুলি। একটি অবজেক্ট হিসাবে প্রতিনিধিত্ব করা হয় যা একটি হেডারের নামকে স্ট্রিং মানের তালিকায় ম্যাপ করে। যদি নির্দিষ্ট না করা হয়, তাহলে কাল্পনিক প্রতিক্রিয়াটি খালি প্রতিক্রিয়া হেডারগুলি ফিরিয়ে দেবে, যা হেডারের অস্তিত্বের সাথে মেলে এমন নিয়মগুলির সাথে মেলে। যেমন
{"content-type": ["text/html; charset=utf-8", "multipart/form-data"]} - ট্যাবআইডি
সংখ্যা ঐচ্ছিক
যে ট্যাবে কাল্পনিক অনুরোধটি করা হচ্ছে তার আইডি। এটিকে আসল ট্যাব আইডির সাথে সঙ্গতিপূর্ণ হতে হবে না। ডিফল্ট হল -1, অর্থাৎ অনুরোধটি কোনও ট্যাবের সাথে সম্পর্কিত নয়।
- শীর্ষস্থানীয় ইউআরএল
স্ট্রিং ঐচ্ছিক
মুলতুবিঅনুরোধের জন্য সংশ্লিষ্ট শীর্ষ-স্তরের ফ্রেম URL (যদি থাকে)।
- টাইপ করুন
কাল্পনিক অনুরোধের রিসোর্সের ধরণ।
- ইউআরএল
স্ট্রিং
কাল্পনিক অনুরোধের URL।
UnsupportedRegexReason
একটি প্রদত্ত নিয়মিত অভিব্যক্তি কেন সমর্থিত নয় তার কারণ বর্ণনা করে।
এনাম
"সিনট্যাক্স ত্রুটি" "স্মৃতিসীমা অতিক্রম করেছে"
রেগুলার এক্সপ্রেশনটি সিনট্যাক্সিকভাবে ভুল, অথবা RE2 সিনট্যাক্সে উপলব্ধ নয় এমন বৈশিষ্ট্য ব্যবহার করে।
রেগুলার এক্সপ্রেশন মেমরি সীমা অতিক্রম করে।
UpdateRuleOptions
বৈশিষ্ট্য
- নিয়ম যোগ করুন
নিয়ম [] ঐচ্ছিক
যোগ করার নিয়ম।
- নিয়ম আইডি অপসারণ করুন
সংখ্যা[] ঐচ্ছিক
সরানোর নিয়মের আইডি। যেকোনো অবৈধ আইডি উপেক্ষা করা হবে।
UpdateRulesetOptions
বৈশিষ্ট্য
UpdateStaticRulesOptions
বৈশিষ্ট্য
URLTransform
বৈশিষ্ট্য
- খণ্ড
স্ট্রিং ঐচ্ছিক
অনুরোধের জন্য নতুন অংশটি। হয় খালি থাকা উচিত, সেক্ষেত্রে বিদ্যমান অংশটি সাফ করা হবে; অথবা '#' দিয়ে শুরু হওয়া উচিত।
- হোস্ট
স্ট্রিং ঐচ্ছিক
অনুরোধের জন্য নতুন হোস্ট।
- পাসওয়ার্ড
স্ট্রিং ঐচ্ছিক
অনুরোধের জন্য নতুন পাসওয়ার্ড।
- পথ
স্ট্রিং ঐচ্ছিক
অনুরোধের জন্য নতুন পথ। খালি থাকলে, বিদ্যমান পথটি সাফ করা হবে।
- বন্দর
স্ট্রিং ঐচ্ছিক
অনুরোধের জন্য নতুন পোর্ট। খালি থাকলে, বিদ্যমান পোর্টটি সাফ করা হবে।
- প্রশ্ন
স্ট্রিং ঐচ্ছিক
অনুরোধের জন্য নতুন কোয়েরি। হয় খালি থাকা উচিত, সেক্ষেত্রে বিদ্যমান কোয়েরিটি সাফ করা হবে; অথবা '?' দিয়ে শুরু হওয়া উচিত।
- ক্যোয়ারিট্রান্সফর্ম
QueryTransform ঐচ্ছিক
কোয়েরি কী-মান জোড়া যোগ করুন, সরান বা প্রতিস্থাপন করুন।
- পরিকল্পনা
স্ট্রিং ঐচ্ছিক
অনুরোধের জন্য নতুন স্কিম। অনুমোদিত মানগুলি হল "http", "https", "ftp" এবং "chrome-extension"।
- ব্যবহারকারীর নাম
স্ট্রিং ঐচ্ছিক
অনুরোধের জন্য নতুন ব্যবহারকারীর নাম।
বৈশিষ্ট্য
DYNAMIC_RULESET_ID
এক্সটেনশন দ্বারা যোগ করা গতিশীল নিয়মের জন্য নিয়ম সেট আইডি।
মূল্য
"_গতিশীল"
GETMATCHEDRULES_QUOTA_INTERVAL
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules কল করার সময়সীমা মিনিটে উল্লেখ করা হয়েছে। অতিরিক্ত কলগুলি অবিলম্বে ব্যর্থ হবে এবং runtime.lastError সেট করবে। দ্রষ্টব্য: ব্যবহারকারীর অঙ্গভঙ্গির সাথে যুক্ত getMatchedRules কলগুলি কোটা থেকে বাদ দেওয়া হয়।
মূল্য
১০
GUARANTEED_MINIMUM_STATIC_RULES
একটি এক্সটেনশনের জন্য তার সক্রিয় স্ট্যাটিক রুলসেট জুড়ে গ্যারান্টিযুক্ত ন্যূনতম স্ট্যাটিক রুলের সংখ্যা। এই সীমার উপরে থাকা যেকোনো নিয়ম বিশ্বব্যাপী স্ট্যাটিক রুলের সীমার জন্য গণনা করা হবে।
মূল্য
৩০০০০
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL
GETMATCHEDRULES_QUOTA_INTERVAL এর একটি নির্দিষ্ট সময়ের মধ্যে getMatchedRules কতবার কল করা যেতে পারে।
মূল্য
২০
MAX_NUMBER_OF_DYNAMIC_RULES
একটি এক্সটেনশন সর্বোচ্চ কতগুলি গতিশীল নিয়ম যোগ করতে পারে।
মূল্য
৩০০০০
MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
একটি এক্সটেনশন যেকোনো সময়ে সর্বোচ্চ কতগুলি স্ট্যাটিক Rulesets সক্ষম করতে পারে।
মূল্য
৫০
MAX_NUMBER_OF_REGEX_RULES
একটি এক্সটেনশন সর্বোচ্চ কতগুলি রেগুলার এক্সপ্রেশন নিয়ম যোগ করতে পারে। এই সীমাটি ডায়নামিক নিয়মের সেট এবং নিয়ম রিসোর্স ফাইলে নির্দিষ্ট করা নিয়মগুলির জন্য আলাদাভাবে মূল্যায়ন করা হয়।
মূল্য
১০০০
MAX_NUMBER_OF_SESSION_RULES
একটি এক্সটেনশন সর্বোচ্চ কতগুলি সেশন স্কোপড নিয়ম যোগ করতে পারে।
মূল্য
৫০০০
MAX_NUMBER_OF_STATIC_RULESETS
"rule_resources" ম্যানিফেস্ট কী-এর অংশ হিসেবে একটি এক্সটেনশন সর্বোচ্চ কতগুলি স্ট্যাটিক Rulesets নির্দিষ্ট করতে পারে।
মূল্য
১০০
MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
একটি এক্সটেনশন সর্বোচ্চ কত সংখ্যক "অনিরাপদ" ডায়নামিক নিয়ম যোগ করতে পারে।
মূল্য
৫০০০
MAX_NUMBER_OF_UNSAFE_SESSION_RULES
একটি এক্সটেনশন সর্বোচ্চ কত সংখ্যক "অনিরাপদ" সেশন স্কোপড নিয়ম যোগ করতে পারে।
মূল্য
৫০০০
SESSION_RULESET_ID
এক্সটেনশন দ্বারা যোগ করা সেশন-স্কোপযুক্ত নিয়মের জন্য নিয়ম সেট আইডি।
মূল্য
"_সেশন"
পদ্ধতি
getAvailableStaticRuleCount()
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
callback?: function,
): Promise<number>
গ্লোবাল স্ট্যাটিক নিয়ম সীমায় পৌঁছানোর আগে একটি এক্সটেনশন কতগুলি স্ট্যাটিক নিয়ম সক্ষম করতে পারে তা ফেরত দেয়।
পরামিতি
- কলব্যাক
ঐচ্ছিক ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:(count: number) => void
- গণনা
সংখ্যা
রিটার্নস
প্রতিশ্রুতি <সংখ্যা>
ক্রোম ৯১+প্রতিশ্রুতিগুলি কেবল ম্যানিফেস্ট V3 এবং পরবর্তী সংস্করণগুলির জন্য সমর্থিত, অন্যান্য প্ল্যাটফর্মগুলিকে কলব্যাক ব্যবহার করতে হবে।
getDisabledRuleIds()
chrome.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
callback?: function,
): Promise<number[]>
প্রদত্ত Ruleset স্ট্যাটিক রুলের তালিকা প্রদান করে যা বর্তমানে নিষ্ক্রিয় করা আছে।
পরামিতি
- বিকল্পগুলি
কোয়েরির নিয়ম সেট নির্দিষ্ট করে।
- কলব্যাক
ঐচ্ছিক ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:(disabledRuleIds: number[]) => void
- অক্ষম নিয়ম আইডি
সংখ্যা[]
রিটার্নস
প্রতিশ্রুতি<সংখ্যা[]>
প্রতিশ্রুতি যা সেই নিয়মসেটের অক্ষম নিয়মের সাথে সঙ্গতিপূর্ণ আইডিগুলির একটি তালিকা দিয়ে সমাধান করে।
প্রতিশ্রুতিগুলি কেবল ম্যানিফেস্ট V3 এবং পরবর্তী সংস্করণগুলির জন্য সমর্থিত, অন্যান্য প্ল্যাটফর্মগুলিকে কলব্যাক ব্যবহার করতে হবে।
getDynamicRules()
chrome.declarativeNetRequest.getDynamicRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
এক্সটেনশনের জন্য বর্তমান গতিশীল নিয়মের সেটটি ফেরত পাঠায়। কলাররা ঐচ্ছিকভাবে একটি filter নির্দিষ্ট করে আনা নিয়মের তালিকা ফিল্টার করতে পারে।
পরামিতি
- ফিল্টার
GetRulesFilter ঐচ্ছিক
ক্রোম ১১১+আনা নিয়মের তালিকা ফিল্টার করার জন্য একটি অবজেক্ট।
- কলব্যাক
ঐচ্ছিক ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:(rules: Rule[]) => void
- নিয়ম
নিয়ম []
রিটার্নস
প্রতিশ্রুতি< নিয়ম []>
ক্রোম ৯১+প্রতিশ্রুতি যা গতিশীল নিয়মের সেট দিয়ে সমাধান করা হয়। ক্ষণস্থায়ী অভ্যন্তরীণ ত্রুটির ক্ষেত্রে প্রতিশ্রুতি প্রত্যাখ্যান করা যেতে পারে।
প্রতিশ্রুতিগুলি কেবল ম্যানিফেস্ট V3 এবং পরবর্তী সংস্করণগুলির জন্য সমর্থিত, অন্যান্য প্ল্যাটফর্মগুলিকে কলব্যাক ব্যবহার করতে হবে।
getEnabledRulesets()
chrome.declarativeNetRequest.getEnabledRulesets(
callback?: function,
): Promise<string[]>
বর্তমান সক্রিয় স্ট্যাটিক রুলসেটের সেটের আইডি ফেরত পাঠায়।
পরামিতি
- কলব্যাক
ঐচ্ছিক ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:(rulesetIds: string[]) => void
- নিয়ম সেট আইডি
স্ট্রিং[]
রিটার্নস
প্রতিশ্রুতি<স্ট্রিং[]>
ক্রোম ৯১+প্রতিশ্রুতি যা আইডির একটি তালিকা দিয়ে সমাধান করে, যেখানে প্রতিটি আইডি একটি সক্রিয় স্ট্যাটিক
Rulesetসাথে সম্পর্কিত।প্রতিশ্রুতিগুলি কেবল ম্যানিফেস্ট V3 এবং পরবর্তী সংস্করণগুলির জন্য সমর্থিত, অন্যান্য প্ল্যাটফর্মগুলিকে কলব্যাক ব্যবহার করতে হবে।
getMatchedRules()
chrome.declarativeNetRequest.getMatchedRules(
filter?: MatchedRulesFilter,
callback?: function,
): Promise<RulesMatchedDetails>
এক্সটেনশনের সাথে মিলে যাওয়া সমস্ত নিয়ম ফেরত পাঠায়। কলাররা ঐচ্ছিকভাবে একটি filter নির্দিষ্ট করে মিলে যাওয়া নিয়মের তালিকা ফিল্টার করতে পারেন। এই পদ্ধতিটি শুধুমাত্র "declarativeNetRequestFeedback" অনুমতি সহ এক্সটেনশনগুলির জন্য উপলব্ধ অথবা filter নির্দিষ্ট tabId এর জন্য "activeTab" অনুমতি রয়েছে। দ্রষ্টব্য: পাঁচ মিনিটেরও বেশি সময় আগে মিলে যাওয়া সক্রিয় নথির সাথে সম্পর্কিত নয় এমন নিয়মগুলি ফেরত দেওয়া হবে না।
পরামিতি
- ফিল্টার
মিলিত নিয়ম ফিল্টার ঐচ্ছিক
মিলে যাওয়া নিয়মের তালিকা ফিল্টার করার জন্য একটি বস্তু।
- কলব্যাক
ঐচ্ছিক ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:(details: RulesMatchedDetails) => void
- বিস্তারিত
রিটার্নস
প্রতিশ্রুতি< নিয়ম মিলেছেবিস্তারিত >
ক্রোম ৯১+মিলিত নিয়মের তালিকা আনার পরে যে প্রতিশ্রুতিটি সমাধান হয়ে যায়। কোনও ত্রুটির ক্ষেত্রে, প্রতিশ্রুতিটি প্রত্যাখ্যান করা হবে। এটি একাধিক কারণে ঘটতে পারে, যেমন অপর্যাপ্ত অনুমতি, অথবা কোটা অতিক্রম করা।
প্রতিশ্রুতিগুলি কেবল ম্যানিফেস্ট V3 এবং পরবর্তী সংস্করণগুলির জন্য সমর্থিত, অন্যান্য প্ল্যাটফর্মগুলিকে কলব্যাক ব্যবহার করতে হবে।
getSessionRules()
chrome.declarativeNetRequest.getSessionRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
এক্সটেনশনের জন্য বর্তমান সেশন স্কোপড নিয়মের সেটটি ফেরত পাঠায়। কলাররা ঐচ্ছিকভাবে একটি filter নির্দিষ্ট করে আনা নিয়মের তালিকা ফিল্টার করতে পারেন।
পরামিতি
- ফিল্টার
GetRulesFilter ঐচ্ছিক
ক্রোম ১১১+আনা নিয়মের তালিকা ফিল্টার করার জন্য একটি অবজেক্ট।
- কলব্যাক
ঐচ্ছিক ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:(rules: Rule[]) => void
- নিয়ম
নিয়ম []
রিটার্নস
প্রতিশ্রুতি< নিয়ম []>
ক্রোম ৯১+সেশন স্কোপড নিয়মের সেটের সাথে সমাধান করা প্রতিশ্রুতি।
প্রতিশ্রুতিগুলি কেবল ম্যানিফেস্ট V3 এবং পরবর্তী সংস্করণগুলির জন্য সমর্থিত, অন্যান্য প্ল্যাটফর্মগুলিকে কলব্যাক ব্যবহার করতে হবে।
isRegexSupported()
chrome.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
callback?: function,
): Promise<IsRegexSupportedResult>
প্রদত্ত রেগুলার এক্সপ্রেশনটি regexFilter নিয়ম শর্ত হিসেবে সমর্থিত হবে কিনা তা পরীক্ষা করে।
পরামিতি
- regexOptions সম্পর্কে
চেক করার জন্য রেগুলার এক্সপ্রেশন।
- কলব্যাক
ঐচ্ছিক ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:(result: IsRegexSupportedResult) => void
- ফলাফল
রিটার্নস
প্রতিশ্রুতি< IsRegexSupportedResult >
ক্রোম ৯১+রেগুলার এক্সপ্রেশনটি সমর্থিত কিনা এবং না হলে কারণ সহ বিশদ সহ সমাধান করা প্রতিশ্রুতি।
প্রতিশ্রুতিগুলি কেবল ম্যানিফেস্ট V3 এবং পরবর্তী সংস্করণগুলির জন্য সমর্থিত, অন্যান্য প্ল্যাটফর্মগুলিকে কলব্যাক ব্যবহার করতে হবে।
setExtensionActionOptions()
chrome.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
callback?: function,
): Promise<void>
ট্যাবগুলির জন্য অ্যাকশন কাউন্ট এক্সটেনশন অ্যাকশনের ব্যাজ টেক্সট হিসেবে প্রদর্শিত হবে কিনা তা কনফিগার করে এবং সেই অ্যাকশন কাউন্ট বাড়ানোর জন্য একটি উপায় প্রদান করে।
পরামিতি
- বিকল্পগুলি
- কলব্যাক
ঐচ্ছিক ফাংশন
ক্রোম ৮৯+callbackপ্যারামিটারটি দেখতে এরকম:() => void
রিটার্নস
প্রতিশ্রুতি<অকার্যকর>
ক্রোম ৯১+প্রতিশ্রুতিগুলি কেবল ম্যানিফেস্ট V3 এবং পরবর্তী সংস্করণগুলির জন্য সমর্থিত, অন্যান্য প্ল্যাটফর্মগুলিকে কলব্যাক ব্যবহার করতে হবে।
testMatchOutcome()
chrome.declarativeNetRequest.testMatchOutcome(
request: TestMatchRequestDetails,
callback?: function,
): Promise<TestMatchOutcomeResult>
এক্সটেনশনের declarativeNetRequest নিয়মগুলির কোনওটি একটি কাল্পনিক অনুরোধের সাথে মেলে কিনা তা পরীক্ষা করে। দ্রষ্টব্য: শুধুমাত্র আনপ্যাক করা এক্সটেনশনের জন্য উপলব্ধ কারণ এটি শুধুমাত্র এক্সটেনশন ডেভেলপমেন্টের সময় ব্যবহারের উদ্দেশ্যে তৈরি।
পরামিতি
- অনুরোধ
- কলব্যাক
ঐচ্ছিক ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:(result: TestMatchOutcomeResult) => void
- ফলাফল
রিটার্নস
প্রতিশ্রুতি< টেস্টম্যাচআউটকামরেজাল্ট >
মিলে যাওয়া নিয়মের বিবরণ দিয়ে সমাধান করা প্রতিশ্রুতি।
প্রতিশ্রুতিগুলি কেবল ম্যানিফেস্ট V3 এবং পরবর্তী সংস্করণগুলির জন্য সমর্থিত, অন্যান্য প্ল্যাটফর্মগুলিকে কলব্যাক ব্যবহার করতে হবে।
updateDynamicRules()
chrome.declarativeNetRequest.updateDynamicRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
এক্সটেনশনের জন্য বর্তমান গতিশীল নিয়মের সেট পরিবর্তন করে। options.removeRuleIds এ তালিকাভুক্ত ID সহ নিয়মগুলি প্রথমে সরানো হয়, এবং তারপর options.addRules এ প্রদত্ত নিয়মগুলি যোগ করা হয়। নোট:
- এই আপডেটটি একটি একক পারমাণবিক ক্রিয়াকলাপ হিসাবে ঘটে: হয় সমস্ত নির্দিষ্ট নিয়ম যোগ করা হয় এবং সরানো হয়, অথবা একটি ত্রুটি ফেরত দেওয়া হয়।
- এই নিয়মগুলি ব্রাউজার সেশন এবং এক্সটেনশন আপডেট জুড়ে বজায় থাকে।
- এই ফাংশন ব্যবহার করে এক্সটেনশন প্যাকেজের অংশ হিসেবে নির্দিষ্ট স্ট্যাটিক নিয়মগুলি সরানো যাবে না।
- একটি এক্সটেনশন সর্বোচ্চ যতগুলি ডায়নামিক নিয়ম যোগ করতে পারে তা হল
MAX_NUMBER_OF_DYNAMIC_RULES। অনিরাপদ নিয়মের সংখ্যাMAX_NUMBER_OF_UNSAFE_DYNAMIC_RULESবেশি হওয়া উচিত নয়।
পরামিতি
- বিকল্পগুলিক্রোম ৮৭+
- কলব্যাক
ঐচ্ছিক ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:() => void
রিটার্নস
প্রতিশ্রুতি<অকার্যকর>
ক্রোম ৯১+আপডেট সম্পূর্ণ হওয়ার পরে যে প্রতিশ্রুতিটি সমাধান হয়ে যায়। কোনও ত্রুটির ক্ষেত্রে, প্রতিশ্রুতিটি প্রত্যাখ্যান করা হবে এবং নিয়ম সেটে কোনও পরিবর্তন করা হবে না। এটি একাধিক কারণে ঘটতে পারে, যেমন অবৈধ নিয়ম বিন্যাস, ডুপ্লিকেট নিয়ম আইডি, নিয়ম গণনার সীমা অতিক্রম করা, অভ্যন্তরীণ ত্রুটি এবং অন্যান্য।
প্রতিশ্রুতিগুলি কেবল ম্যানিফেস্ট V3 এবং পরবর্তী সংস্করণগুলির জন্য সমর্থিত, অন্যান্য প্ল্যাটফর্মগুলিকে কলব্যাক ব্যবহার করতে হবে।
updateEnabledRulesets()
chrome.declarativeNetRequest.updateEnabledRulesets(
options: UpdateRulesetOptions,
callback?: function,
): Promise<void>
এক্সটেনশনের জন্য সক্রিয় স্ট্যাটিক রুলসেটের সেট আপডেট করে। options.disableRulesetIds এ তালিকাভুক্ত ID সহ রুলসেটগুলি প্রথমে সরানো হয়, এবং তারপর options.enableRulesetIds এ তালিকাভুক্ত রুলসেটগুলি যোগ করা হয়। মনে রাখবেন যে সক্রিয় স্ট্যাটিক রুলসেটের সেটটি সেশন জুড়ে স্থায়ী হয় কিন্তু এক্সটেনশন আপডেট জুড়ে নয়, অর্থাৎ rule_resources ম্যানিফেস্ট কী প্রতিটি এক্সটেনশন আপডেটে সক্রিয় স্ট্যাটিক রুলসেটের সেট নির্ধারণ করবে।
পরামিতি
- বিকল্পগুলিক্রোম ৮৭+
- কলব্যাক
ঐচ্ছিক ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:() => void
রিটার্নস
প্রতিশ্রুতি<অকার্যকর>
ক্রোম ৯১+আপডেট সম্পূর্ণ হওয়ার পরে যে প্রতিশ্রুতিটি সমাধান হয়ে যায়। কোনও ত্রুটির ক্ষেত্রে, প্রতিশ্রুতিটি প্রত্যাখ্যান করা হবে এবং সক্রিয় নিয়ম সেটের সেটে কোনও পরিবর্তন করা হবে না। এটি একাধিক কারণে ঘটতে পারে, যেমন অবৈধ নিয়ম সেট আইডি, নিয়ম গণনার সীমা অতিক্রম করা, অথবা অভ্যন্তরীণ ত্রুটি।
প্রতিশ্রুতিগুলি কেবল ম্যানিফেস্ট V3 এবং পরবর্তী সংস্করণগুলির জন্য সমর্থিত, অন্যান্য প্ল্যাটফর্মগুলিকে কলব্যাক ব্যবহার করতে হবে।
updateSessionRules()
chrome.declarativeNetRequest.updateSessionRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
এক্সটেনশনের জন্য বর্তমান সেশন স্কোপড নিয়মের সেট পরিবর্তন করে। options.removeRuleIds এ তালিকাভুক্ত ID সহ নিয়মগুলি প্রথমে সরানো হয়, এবং তারপর options.addRules এ প্রদত্ত নিয়মগুলি যোগ করা হয়। নোট:
- এই আপডেটটি একটি একক পারমাণবিক ক্রিয়াকলাপ হিসাবে ঘটে: হয় সমস্ত নির্দিষ্ট নিয়ম যোগ করা হয় এবং সরানো হয়, অথবা একটি ত্রুটি ফেরত দেওয়া হয়।
- এই নিয়মগুলি সেশন জুড়ে টিকে থাকে না এবং মেমরিতে সংরক্ষণ করা হয়।
- একটি এক্সটেনশন সর্বোচ্চ কতগুলি সেশন নিয়ম যোগ করতে পারে তা হল
MAX_NUMBER_OF_SESSION_RULES।
পরামিতি
- বিকল্পগুলি
- কলব্যাক
ঐচ্ছিক ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:() => void
রিটার্নস
প্রতিশ্রুতি<অকার্যকর>
ক্রোম ৯১+আপডেট সম্পূর্ণ হওয়ার পরে যে প্রতিশ্রুতিটি সমাধান হয়ে যায়। কোনও ত্রুটির ক্ষেত্রে, প্রতিশ্রুতিটি প্রত্যাখ্যান করা হবে এবং নিয়ম সেটে কোনও পরিবর্তন করা হবে না। এটি একাধিক কারণে ঘটতে পারে, যেমন অবৈধ নিয়ম ফর্ম্যাট, ডুপ্লিকেট নিয়ম আইডি, নিয়ম গণনার সীমা অতিক্রম করা এবং অন্যান্য।
প্রতিশ্রুতিগুলি কেবল ম্যানিফেস্ট V3 এবং পরবর্তী সংস্করণগুলির জন্য সমর্থিত, অন্যান্য প্ল্যাটফর্মগুলিকে কলব্যাক ব্যবহার করতে হবে।
updateStaticRules()
chrome.declarativeNetRequest.updateStaticRules(
options: UpdateStaticRulesOptions,
callback?: function,
): Promise<void>
একটি Ruleset এ পৃথক স্ট্যাটিক নিয়মগুলিকে অক্ষম এবং সক্রিয় করে। একটি অক্ষম Ruleset এর অন্তর্গত নিয়মগুলিতে পরিবর্তনগুলি পরবর্তী সময়ে সক্রিয় হওয়ার সাথে সাথে কার্যকর হবে।
পরামিতি
- বিকল্পগুলি
- কলব্যাক
ঐচ্ছিক ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:() => void
রিটার্নস
প্রতিশ্রুতি<অকার্যকর>
আপডেট সম্পূর্ণ হলে যে প্রতিশ্রুতিটি সমাধান হয়ে যায়। কোনও ত্রুটির ক্ষেত্রে, প্রতিশ্রুতিটি প্রত্যাখ্যান করা হবে এবং সক্রিয় স্ট্যাটিক নিয়মগুলিতে কোনও পরিবর্তন করা হবে না।
প্রতিশ্রুতিগুলি কেবল ম্যানিফেস্ট V3 এবং পরবর্তী সংস্করণগুলির জন্য সমর্থিত, অন্যান্য প্ল্যাটফর্মগুলিকে কলব্যাক ব্যবহার করতে হবে।
ইভেন্টগুলি
onRuleMatchedDebug
chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
callback: function,
)
কোনও নিয়ম কোনও অনুরোধের সাথে মিলে গেলে এটি চালু করা হয়। শুধুমাত্র "declarativeNetRequestFeedback" অনুমতি সহ আনপ্যাক করা এক্সটেনশনের জন্য উপলব্ধ কারণ এটি শুধুমাত্র ডিবাগিংয়ের উদ্দেশ্যে ব্যবহার করার উদ্দেশ্যে তৈরি।
পরামিতি
- কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:(info: MatchedRuleInfoDebug) => void