chrome.declarativeNetRequest

বিবরণ

chrome.declarativeNetRequest API ঘোষণামূলক নিয়ম নির্দিষ্ট করে নেটওয়ার্ক অনুরোধগুলিকে ব্লক বা সংশোধন করতে ব্যবহৃত হয়। এটি এক্সটেনশনগুলিকে নেটওয়ার্ক অনুরোধগুলিকে বাধা না দিয়ে এবং তাদের সামগ্রী না দেখে পরিবর্তন করতে দেয়, ফলে আরও গোপনীয়তা প্রদান করে।

অনুমতিসমূহ

declarativeNetRequest
declarativeNetRequestWithHostAccess

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

নিয়ম অগ্রাধিকার

ওয়েব পৃষ্ঠাগুলি থেকে পাঠানো অনুরোধের মাধ্যমে নিয়মগুলি ট্রিগার করা হয়। যদি একাধিক নিয়ম একটি নির্দিষ্ট অনুরোধের সাথে মিলে যায়, তাহলে নিয়মগুলিকে অগ্রাধিকার দিতে হবে। এই বিভাগে ব্যাখ্যা করা হয়েছে কিভাবে তাদের অগ্রাধিকার দেওয়া হয়। অগ্রাধিকার নির্ধারণ দুটি পর্যায়ে সম্পন্ন হয়।

  1. একটি এক্সটেনশনের মধ্যে থাকা নিয়মগুলির জন্য অগ্রাধিকার নির্ধারিত হয়।
  2. যদি একাধিক এক্সটেনশন একটি অনুরোধে একটি নিয়ম প্রয়োগ করতে পারে, তাহলে একটি নির্দিষ্ট অনুরোধের সাথে মেলে এমন সমস্ত এক্সটেনশনের জন্য অগ্রাধিকার নির্ধারণ করা হয়।

এইভাবে মেলানোর কথা ভাবছি: একটি নির্দিষ্ট এক্সটেনশন যে নিয়মকেই অগ্রাধিকার দেবে, তাকে অন্যান্য এক্সটেনশনের নিয়মের বিপরীতে অগ্রাধিকার দেওয়া হবে।

একটি এক্সটেনশনের মধ্যে নিয়ম অগ্রাধিকার নির্ধারণ

একটি একক এক্সটেনশনের মধ্যে, নিম্নলিখিত প্রক্রিয়া ব্যবহার করে অগ্রাধিকার নির্ধারণ করা হয়:

  1. সর্বোচ্চ ডেভেলপার-সংজ্ঞায়িত অগ্রাধিকার (অন্য কথায়, "priority" ক্ষেত্র) সহ নিয়মটি ফেরত পাঠানো হয়।
  2. যদি ডেভেলপার-সংজ্ঞায়িত সর্বোচ্চ অগ্রাধিকার সহ একাধিক নিয়ম থাকে, তাহলে নিম্নলিখিত ক্রমে "action" ক্ষেত্র ব্যবহার করে নিয়মগুলিকে অগ্রাধিকার দেওয়া হয়:

    1. allow
    2. allowAllRequests
    3. block
    4. upgradeScheme
    5. redirect
  3. যদি অ্যাকশনের ধরণটি block বা redirect না হয়, তাহলে যেকোনো মিলিত modifyHeaders নিয়ম মূল্যায়ন করা হয়। মনে রাখবেন যে যদি এমন কোনও নিয়ম থাকে যার ডেভেলপার-সংজ্ঞায়িত অগ্রাধিকার allow এবং allowAllRequests এর জন্য নির্দিষ্ট অগ্রাধিকারের চেয়ে কম থাকে, তাহলে সেই নিয়মগুলি উপেক্ষা করা হয়।

  4. যদি একাধিক নিয়ম একই শিরোনাম পরিবর্তন করে, তাহলে পরিবর্তনটি বিকাশকারী-সংজ্ঞায়িত "priority" ক্ষেত্র এবং নির্দিষ্ট ক্রিয়াকলাপ দ্বারা নির্ধারিত হয়।

    • যদি কোনও নিয়ম একটি হেডারের সাথে যুক্ত করা হয়, তাহলে নিম্ন অগ্রাধিকার নিয়মগুলি কেবল সেই হেডারের সাথে যুক্ত করতে পারে। সেট এবং অপসারণ ক্রিয়াকলাপ অনুমোদিত নয়।
    • যদি কোন নিয়ম একটি হেডার সেট করে, তাহলে নিম্ন অগ্রাধিকার নিয়মগুলি কেবল সেই হেডারে যুক্ত করতে পারে। অন্য কোন পরিবর্তন অনুমোদিত নয়।
    • যদি কোনও নিয়ম একটি হেডার সরিয়ে দেয়, তাহলে নিম্ন অগ্রাধিকারের নিয়মগুলি হেডারটিকে আরও পরিবর্তন করতে পারবে না।

এক্সটেনশনগুলির মধ্যে নিয়ম অগ্রাধিকার নির্ধারণ

যদি শুধুমাত্র একটি এক্সটেনশনের একটি নিয়ম থাকে যা একটি অনুরোধের সাথে মেলে, তাহলে সেই নিয়মটি প্রয়োগ করা হয়। কিন্তু যদি একাধিক এক্সটেনশন একটি অনুরোধের সাথে মেলে, তাহলে নিম্নলিখিত প্রক্রিয়াটি ব্যবহার করা হয়:

  1. "action" ক্ষেত্রটি ব্যবহার করে নিয়মগুলিকে অগ্রাধিকার দেওয়া হয়, নিম্নলিখিত ক্রমে:

    1. block
    2. redirect বা upgradeScheme
    3. allow অথবা allowAllRequests
  2. যদি একাধিক নিয়ম মিলে যায়, তাহলে সাম্প্রতিক ইনস্টল করা এক্সটেনশনটি অগ্রাধিকার পাবে।

নিয়ম সীমা

ব্রাউজারে নিয়ম লোড এবং মূল্যায়ন করার জন্য একটি পারফরম্যান্স ওভারহেড থাকে, তাই 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

ক্রোম ৮৭+

বৈশিষ্ট্য

  • সমর্থিত

    বুলিয়ান

  • কারণ

    রেগুলার এক্সপ্রেশন কেন সমর্থিত নয় তার কারণ উল্লেখ করে। শুধুমাত্র যদি 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 -এর একটি আইডি এমন অনুরোধ বাদ দেয় যা ট্যাব থেকে আসে না। শুধুমাত্র সেশন-স্কোপড নিয়মের জন্য সমর্থিত।

  • 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 একটি আইডি এমন অনুরোধের সাথে মেলে যা কোনও ট্যাব থেকে আসে না। খালি তালিকা অনুমোদিত নয়। শুধুমাত্র সেশন-স্কোপযুক্ত নিয়মের জন্য সমর্থিত।

  • 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 ​​এর সাথে মিলিত হবে।

Ruleset

বৈশিষ্ট্য

  • সক্রিয়

    বুলিয়ান

    নিয়ম সেটটি ডিফল্টরূপে সক্রিয় কিনা।

  • আইডি

    স্ট্রিং

    একটি খালি নয় এমন স্ট্রিং যা রুলসেটকে অনন্যভাবে শনাক্ত করে। '_' দিয়ে শুরু হওয়া আইডিগুলি অভ্যন্তরীণ ব্যবহারের জন্য সংরক্ষিত।

  • পথ

    স্ট্রিং

    এক্সটেনশন ডিরেক্টরির সাপেক্ষে JSON রুলসেটের পথ।

RulesMatchedDetails

বৈশিষ্ট্য

TabActionCountUpdate

ক্রোম ৮৯+

বৈশিষ্ট্য

  • বৃদ্ধি

    সংখ্যা

    ট্যাবের অ্যাকশন কাউন্ট কত পরিমাণে বাড়াতে হবে। ঋণাত্মক মান কাউন্ট কমাবে।

  • ট্যাবআইডি

    সংখ্যা

    যে ট্যাবের জন্য অ্যাকশন কাউন্ট আপডেট করতে হবে।

TestMatchOutcomeResult

ক্রোম ১০৩+

বৈশিষ্ট্য

  • মিলে যাওয়া নিয়ম

    কাল্পনিক অনুরোধের সাথে মেলে এমন নিয়ম (যদি থাকে)।

TestMatchRequestDetails

ক্রোম ১০৩+

বৈশিষ্ট্য

  • সূচনাকারী

    স্ট্রিং ঐচ্ছিক

    কাল্পনিক অনুরোধের জন্য ইনিশিয়েটর URL (যদি থাকে)।

  • পদ্ধতি

    কাল্পনিক অনুরোধের স্ট্যান্ডার্ড HTTP পদ্ধতি। HTTP অনুরোধের জন্য ডিফল্ট "get" থাকে এবং নন-HTTP অনুরোধের জন্য উপেক্ষা করা হয়।

  • প্রতিক্রিয়া শিরোনাম

    ঐচ্ছিক বস্তু

    ক্রোম ১২৯+

    যদি অনুরোধটি পাঠানোর আগে ব্লক বা পুনঃনির্দেশিত না হয়, তাহলে একটি কাল্পনিক প্রতিক্রিয়া দ্বারা প্রদত্ত হেডারগুলি। একটি অবজেক্ট হিসাবে প্রতিনিধিত্ব করা হয় যা একটি হেডারের নামকে স্ট্রিং মানের তালিকায় ম্যাপ করে। যদি নির্দিষ্ট না করা হয়, তাহলে কাল্পনিক প্রতিক্রিয়াটি খালি প্রতিক্রিয়া হেডারগুলি ফিরিয়ে দেবে, যা হেডারের অস্তিত্বের সাথে মেলে এমন নিয়মগুলির সাথে মেলে। যেমন {"content-type": ["text/html; charset=utf-8", "multipart/form-data"]}

  • ট্যাবআইডি

    সংখ্যা ঐচ্ছিক

    যে ট্যাবে কাল্পনিক অনুরোধটি করা হচ্ছে তার আইডি। এটিকে আসল ট্যাব আইডির সাথে সঙ্গতিপূর্ণ হতে হবে না। ডিফল্ট হল -1, অর্থাৎ অনুরোধটি কোনও ট্যাবের সাথে সম্পর্কিত নয়।

  • কাল্পনিক অনুরোধের রিসোর্সের ধরণ।

  • ইউআরএল

    স্ট্রিং

    কাল্পনিক অনুরোধের URL।

UnsupportedRegexReason

ক্রোম ৮৭+

একটি প্রদত্ত নিয়মিত অভিব্যক্তি কেন সমর্থিত নয় তার কারণ বর্ণনা করে।

এনাম

"সিনট্যাক্স ত্রুটি"
রেগুলার এক্সপ্রেশনটি সিনট্যাক্সিকভাবে ভুল, অথবা RE2 সিনট্যাক্সে উপলব্ধ নয় এমন বৈশিষ্ট্য ব্যবহার করে।

"স্মৃতিসীমা অতিক্রম করেছে"
রেগুলার এক্সপ্রেশন মেমরি সীমা অতিক্রম করে।

UpdateRuleOptions

ক্রোম ৮৭+

বৈশিষ্ট্য

  • নিয়ম যোগ করুন

    নিয়ম [] ঐচ্ছিক

    যোগ করার নিয়ম।

  • নিয়ম আইডি অপসারণ করুন

    সংখ্যা[] ঐচ্ছিক

    সরানোর নিয়মের আইডি। যেকোনো অবৈধ আইডি উপেক্ষা করা হবে।

UpdateRulesetOptions

ক্রোম ৮৭+

বৈশিষ্ট্য

  • নিষ্ক্রিয় নিয়ম সেট আইডি

    স্ট্রিং[] ঐচ্ছিক

    একটি স্ট্যাটিক Ruleset সাথে সম্পর্কিত আইডির সেট যা নিষ্ক্রিয় করা উচিত।

  • নিয়ম সেট আইডি সক্রিয় করুন

    স্ট্রিং[] ঐচ্ছিক

    একটি স্ট্যাটিক Ruleset সাথে সম্পর্কিত আইডির সেট যা সক্রিয় করা উচিত।

UpdateStaticRulesOptions

ক্রোম ১১১+

বৈশিষ্ট্য

  • নিষ্ক্রিয় নিয়ম আইডি

    সংখ্যা[] ঐচ্ছিক

    নিষ্ক্রিয় করার জন্য Ruleset নিয়মের সাথে সম্পর্কিত আইডির সেট।

  • বিধি আইডি সক্রিয় করুন

    সংখ্যা[] ঐচ্ছিক

    সক্রিয় করার জন্য Ruleset নিয়মের সাথে সম্পর্কিত আইডির সেট।

  • নিয়ম সেট আইডি

    স্ট্রিং

    একটি স্ট্যাটিক Ruleset সাথে সম্পর্কিত আইডি।

URLTransform

বৈশিষ্ট্য

  • খণ্ড

    স্ট্রিং ঐচ্ছিক

    অনুরোধের জন্য নতুন অংশটি। হয় খালি থাকা উচিত, সেক্ষেত্রে বিদ্যমান অংশটি সাফ করা হবে; অথবা '#' দিয়ে শুরু হওয়া উচিত।

  • হোস্ট

    স্ট্রিং ঐচ্ছিক

    অনুরোধের জন্য নতুন হোস্ট।

  • পাসওয়ার্ড

    স্ট্রিং ঐচ্ছিক

    অনুরোধের জন্য নতুন পাসওয়ার্ড।

  • পথ

    স্ট্রিং ঐচ্ছিক

    অনুরোধের জন্য নতুন পথ। খালি থাকলে, বিদ্যমান পথটি সাফ করা হবে।

  • বন্দর

    স্ট্রিং ঐচ্ছিক

    অনুরোধের জন্য নতুন পোর্ট। খালি থাকলে, বিদ্যমান পোর্টটি সাফ করা হবে।

  • প্রশ্ন

    স্ট্রিং ঐচ্ছিক

    অনুরোধের জন্য নতুন কোয়েরি। হয় খালি থাকা উচিত, সেক্ষেত্রে বিদ্যমান কোয়েরিটি সাফ করা হবে; অথবা '?' দিয়ে শুরু হওয়া উচিত।

  • ক্যোয়ারিট্রান্সফর্ম

    QueryTransform ঐচ্ছিক

    কোয়েরি কী-মান জোড়া যোগ করুন, সরান বা প্রতিস্থাপন করুন।

  • পরিকল্পনা

    স্ট্রিং ঐচ্ছিক

    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

Chrome 89+

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 .

মূল্য

৩০০০০

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.

মূল্য

৩০০০০

MAX_NUMBER_OF_ENABLED_STATIC_RULESETS

Chrome 94+

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

Chrome 120+

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

Chrome 120+

The maximum number of "unsafe" dynamic rules that an extension can add.

মূল্য

৫০০০

MAX_NUMBER_OF_UNSAFE_SESSION_RULES

Chrome 120+

The maximum number of "unsafe" session scoped rules that an extension can add.

মূল্য

৫০০০

SESSION_RULESET_ID

Chrome 90+

Ruleset ID for the session-scoped rules added by the extension.

মূল্য

"_session"

পদ্ধতি

getAvailableStaticRuleCount()

PromiseChrome 89+
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.

পরামিতি

  • কলব্যাক

    function optional

    The callback parameter looks like:

    (count: number) => void

    • গণনা করা

      সংখ্যা

রিটার্নস

  • Promise<number>

    Chrome 91+

    Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.

getDisabledRuleIds()

PromiseChrome 111+
chrome.declarativeNetRequest.getDisabledRuleIds(
  options: GetDisabledRuleIdsOptions,
  callback?: function,
)
: Promise<number[]>

Returns the list of static rules in the given Ruleset that are currently disabled.

পরামিতি

  • বিকল্পগুলি

    Specifies the ruleset to query.

  • কলব্যাক

    function optional

    The callback parameter 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 .

পরামিতি

  • ফিল্টার

    GetRulesFilter optional

    Chrome 111+

    An object to filter the list of fetched rules.

  • কলব্যাক

    function optional

    The callback parameter 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.

পরামিতি

  • কলব্যাক

    function optional

    The callback parameter 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.

পরামিতি

রিটার্নস

  • Chrome 91+

    Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.

getSessionRules()

PromiseChrome 90+
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 .

পরামিতি

  • ফিল্টার

    GetRulesFilter optional

    Chrome 111+

    An object to filter the list of fetched rules.

  • কলব্যাক

    function optional

    The callback parameter 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()

PromiseChrome 87+
chrome.declarativeNetRequest.isRegexSupported(
  regexOptions: RegexOptions,
  callback?: function,
)
: Promise<IsRegexSupportedResult>

Checks if the given regular expression will be supported as a regexFilter rule condition.

পরামিতি

রিটার্নস

  • Chrome 91+

    Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.

setExtensionActionOptions()

PromiseChrome 88+
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.

পরামিতি

  • বিকল্পগুলি
  • কলব্যাক

    function optional

    Chrome 89+

    The callback parameter looks like:

    () => void

রিটার্নস

  • Promise<void>

    Chrome 91+

    Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.

testMatchOutcome()

PromiseChrome 103+
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.

পরামিতি

রিটার্নস

  • 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_RULES is the maximum number of dynamic rules an extension can add. The number of unsafe rules must not exceed MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES .

পরামিতি

  • বিকল্পগুলি
    Chrome 87+
  • কলব্যাক

    function optional

    The callback parameter 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.

পরামিতি

  • বিকল্পগুলি
    Chrome 87+
  • কলব্যাক

    function optional

    The callback parameter looks like:

    () => void

রিটার্নস

  • Promise<void>

    Chrome 91+

    Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.

updateSessionRules()

PromiseChrome 90+
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_RULES is the maximum number of session rules an extension can add.

পরামিতি

  • বিকল্পগুলি
  • কলব্যাক

    function optional

    The callback parameter looks like:

    () => void

রিটার্নস

  • Promise<void>

    Chrome 91+

    Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.

updateStaticRules()

PromiseChrome 111+
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.

পরামিতি

  • বিকল্পগুলি
  • কলব্যাক

    function optional

    The callback parameter 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.

পরামিতি