chrome.declarativeNetRequest

বিবরণ

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

অনুমতিসমূহ

declarativeNetRequest
declarativeNetRequestWithHostAccess

" declarativeNetRequest " এবং " declarativeNetRequestWithHostAccess " অনুমতিগুলি একই ক্ষমতা প্রদান করে। তাদের মধ্যে পার্থক্য হল যখন অনুমতি অনুরোধ করা হয় বা মঞ্জুর করা হয়।

"declarativeNetRequest"
ইনস্টলের সময় অনুমতির সতর্কতা ট্রিগার করে কিন্তু allow , allowAllRequests এবং block নিয়মগুলিতে অন্তর্নিহিত অ্যাক্সেস প্রদান করে। হোস্টগুলিতে সম্পূর্ণ অ্যাক্সেসের অনুরোধ এড়াতে সম্ভব হলে এটি ব্যবহার করুন।
"declarativeNetRequestFeedback"
আনপ্যাক করা এক্সটেনশনগুলির জন্য ডিবাগিং বৈশিষ্ট্যগুলি সক্ষম করে, বিশেষ করে getMatchedRules() এবং onRuleMatchedDebug
"declarativeNetRequestWithHostAccess"
ইনস্টলের সময় অনুমতির সতর্কতা দেখানো হয় না, তবে হোস্টে কোনও কাজ করার আগে আপনাকে অবশ্যই হোস্টের অনুমতির জন্য অনুরোধ করতে হবে। এটি উপযুক্ত যখন আপনি এমন একটি এক্সটেনশনে ঘোষণামূলক নেট অনুরোধের নিয়ম ব্যবহার করতে চান যার ইতিমধ্যেই অতিরিক্ত সতর্কতা তৈরি না করেই হোস্টের অনুমতি রয়েছে।

উপস্থিতি

ক্রোম ৮৪+

ম্যানিফেস্ট

পূর্বে বর্ণিত অনুমতিগুলি ছাড়াও, নির্দিষ্ট ধরণের নিয়ম সেট, বিশেষ করে স্ট্যাটিক নিয়ম সেটগুলির জন্য, "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 গুলি সংজ্ঞায়িত করা হয়। সর্বাধিক 5000 অক্ষম স্ট্যাটিক নিয়মের সীমা রয়েছে।

স্ট্যাটিক রুলসেট সক্রিয় বা নিষ্ক্রিয় করতে, 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 গুলিকে মেলানোর ক্ষমতা প্রদান করে।

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://a.example.company
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

নিয়মিত এক্সপ্রেশন

শর্তাবলী নিয়মিত অভিব্যক্তিও ব্যবহার করতে পারে। "regexFilter" কী দেখুন। এই শর্তাবলীতে প্রযোজ্য সীমা সম্পর্কে জানতে, নিয়মিত অভিব্যক্তি ব্যবহার করে এমন নিয়মগুলি দেখুন।

ভালো URL শর্তাবলী লিখুন

নিয়ম লেখার সময় খেয়াল রাখবেন যেন সবসময় একটি সম্পূর্ণ ডোমেনের সাথে মিলে যায়। অন্যথায়, আপনার নিয়ম অপ্রত্যাশিত পরিস্থিতিতে মিলতে পারে। উদাহরণস্বরূপ, প্যাটার্ন ম্যাচিং সিনট্যাক্স ব্যবহার করার সময়:

  • google.com ভুলভাবে https://example.com/?param=google.com সাথে মেলে
  • ||google.com ভুলভাবে https://google.company সাথে মেলে
  • https://www.google.com ভুলভাবে https://example.com/?param=https://www.google.com এর সাথে মেলে

ব্যবহার বিবেচনা করুন:

  • ||google.com/ , যা সমস্ত পাথ এবং সমস্ত সাবডোমেনের সাথে মেলে।
  • |https://www.google.com/ যা সমস্ত পাথের সাথে মেলে এবং কোনও সাবডোমেন নেই।

একইভাবে, একটি রেগুলার এক্সপ্রেশন অ্যাঙ্কর করতে ^ এবং / অক্ষর ব্যবহার করুন। উদাহরণস্বরূপ, ^https:\/\/www\.google\.com\/ ://www.google.com-এ যেকোনো পাথের সাথে মেলে।

নিয়ম মূল্যায়ন

নেটওয়ার্ক অনুরোধ জীবনচক্রের বিভিন্ন পর্যায়ে ব্রাউজার দ্বারা DNR নিয়ম প্রয়োগ করা হয়।

অনুরোধের আগে

কোনও অনুরোধ করার আগে, একটি এক্সটেনশন একটি ম্যাচিং নিয়ম ব্যবহার করে এটিকে ব্লক বা পুনঃনির্দেশিত করতে পারে (স্কিমটিকে HTTP থেকে HTTPS এ আপগ্রেড করা সহ)।

প্রতিটি এক্সটেনশনের জন্য, ব্রাউজার মিলে যাওয়া নিয়মের একটি তালিকা নির্ধারণ করে। modifyHeaders অ্যাকশন সহ নিয়মগুলি এখানে অন্তর্ভুক্ত করা হয়নি কারণ সেগুলি পরে পরিচালনা করা হবে। অতিরিক্তভাবে, responseHeaders শর্ত সহ নিয়মগুলি পরে বিবেচনা করা হবে (যখন রেসপন্স হেডার উপলব্ধ থাকবে) এবং সেগুলি অন্তর্ভুক্ত করা হয়নি।

তারপর, প্রতিটি এক্সটেনশনের জন্য, Chrome প্রতিটি অনুরোধের জন্য সর্বাধিক একজন প্রার্থী বেছে নেয়। Chrome সমস্ত মিলিত নিয়মকে অগ্রাধিকার অনুসারে ক্রমানুসারে সাজিয়ে একটি মিলিত নিয়ম খুঁজে বের করে। একই অগ্রাধিকার সহ নিয়মগুলি কর্ম অনুসারে সাজানো হয় ( allow or allowAllRequests > block > upgradeScheme > redirect )।

যদি প্রার্থীটি একটি allow বা allowAllRequests নিয়ম হয়, অথবা অনুরোধটি যে ফ্রেমে করা হচ্ছে তা পূর্বে এই এক্সটেনশন থেকে উচ্চতর বা সমান অগ্রাধিকারের allowAllRequests নিয়মের সাথে মিলে যায়, তাহলে অনুরোধটি "allowed" হবে এবং এক্সটেনশনটি অনুরোধের উপর কোনও প্রভাব ফেলবে না।

যদি একাধিক এক্সটেনশন এই অনুরোধটিকে ব্লক বা পুনঃনির্দেশিত করতে চায়, তাহলে একটি একক পদক্ষেপ বেছে নেওয়া হবে। Chrome এটি করে order block > redirect অথবা upgradeScheme > allow অথবা allowAllRequests -এ নিয়মগুলি সাজিয়ে। যদি দুটি নিয়ম একই ধরণের হয়, তাহলে Chrome সম্প্রতি ইনস্টল করা এক্সটেনশন থেকে নিয়মটি বেছে নেয়।

অনুরোধ শিরোনাম পাঠানোর আগে

ক্রোম সার্ভারে অনুরোধ শিরোনাম পাঠানোর আগে, শিরোনামগুলি modifyHeaders নিয়মের সাথে মিলে যাওয়ার উপর ভিত্তি করে আপডেট করা হয়।

একটি একক এক্সটেনশনের মধ্যে, Chrome সমস্ত মিলিত modifyHeaders নিয়ম খুঁজে বের করে সম্পাদন করার জন্য পরিবর্তনগুলির তালিকা তৈরি করে। আগের মতোই, কেবলমাত্র সেই নিয়মগুলি অন্তর্ভুক্ত করা হয় যেগুলির অগ্রাধিকার যেকোনো মিলিত allow বা allowAllRequests নিয়মের চেয়ে বেশি।

এই নিয়মগুলি Chrome দ্বারা এমনভাবে প্রয়োগ করা হয় যাতে সাম্প্রতিক ইনস্টল করা এক্সটেনশনের নিয়মগুলি সর্বদা পুরানো এক্সটেনশনের নিয়মের আগে মূল্যায়ন করা হয়। এছাড়াও, একটি এক্সটেনশনের উচ্চ অগ্রাধিকারের নিয়মগুলি সর্বদা একই এক্সটেনশনের কম অগ্রাধিকারের নিয়মের আগে প্রয়োগ করা হয়। উল্লেখযোগ্যভাবে, এমনকি এক্সটেনশন জুড়েও:

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

একবার সাড়া পেলে

রেসপন্স হেডারগুলি পাওয়ার পর, Chrome responseHeaders শর্তের সাথে নিয়মগুলি মূল্যায়ন করে।

এই নিয়মগুলিকে action এবং priority অনুসারে সাজানোর পরে এবং মিলিত allow বা allowAllRequests নিয়ম দ্বারা অপ্রয়োজনীয় হয়ে যাওয়া যেকোনো নিয়ম বাদ দেওয়ার পরে (এটি "অনুরোধের আগে" এর ধাপগুলির সাথে একই রকম ঘটে), Chrome একটি এক্সটেনশনের পক্ষ থেকে অনুরোধটিকে ব্লক বা পুনঃনির্দেশিত করতে পারে।

মনে রাখবেন যে যদি কোনও অনুরোধ এই পর্যায়ে পৌঁছে যায়, তাহলে অনুরোধটি ইতিমধ্যেই সার্ভারে পাঠানো হয়েছে এবং সার্ভারটি অনুরোধের বডির মতো ডেটা পেয়েছে। রেসপন্স হেডার শর্ত সহ একটি ব্লক বা রিডাইরেক্ট নিয়ম এখনও চলবে - কিন্তু আসলে অনুরোধটিকে ব্লক বা রিডাইরেক্ট করতে পারবে না।

ব্লক রুলের ক্ষেত্রে, এটি সেই পৃষ্ঠা দ্বারা পরিচালিত হয় যেটি অনুরোধটি ব্লক করা প্রতিক্রিয়া পেয়েছে এবং Chrome অনুরোধটি তাড়াতাড়ি বন্ধ করে দেয়। রিডাইরেক্ট রুলের ক্ষেত্রে, Chrome পুনঃনির্দেশিত URL-এ একটি নতুন অনুরোধ করে। এই আচরণগুলি আপনার এক্সটেনশনের জন্য গোপনীয়তার প্রত্যাশা পূরণ করে কিনা তা বিবেচনা করতে ভুলবেন না।

যদি অনুরোধটি ব্লক বা পুনঃনির্দেশিত না করা হয়, তাহলে Chrome যেকোনো modifyHeaders নিয়ম প্রয়োগ করে। প্রতিক্রিয়া শিরোনামগুলিতে পরিবর্তন প্রয়োগ করা "অনুরোধ শিরোনাম পাঠানোর আগে" বর্ণিত পদ্ধতিতে একইভাবে কাজ করে। অনুরোধ শিরোনামগুলিতে পরিবর্তন প্রয়োগ করা কোনও কাজ করে না, কারণ অনুরোধটি ইতিমধ্যেই করা হয়েছে।

নিরাপদ নিয়ম

নিরাপদ নিয়মগুলিকে block , allow , allowAllRequests বা upgradeScheme ক্রিয়া সহ নিয়ম হিসাবে সংজ্ঞায়িত করা হয়। এই নিয়মগুলিতে বর্ধিত ডায়নামিক নিয়ম কোটা প্রযোজ্য।

নিয়ম সীমা

ব্রাউজারে নিয়ম লোড এবং মূল্যায়ন করার জন্য একটি পারফরম্যান্স ওভারহেড থাকে, তাই API ব্যবহার করার সময় কিছু সীমা প্রযোজ্য। সীমাগুলি আপনি যে ধরণের নিয়ম ব্যবহার করছেন তার উপর নির্ভর করে।

স্থির নিয়ম

স্ট্যাটিক নিয়ম হলো ম্যানিফেস্ট ফাইলে ঘোষিত নিয়ম ফাইলে নির্দিষ্ট করা নিয়ম। একটি এক্সটেনশন "rule_resources" ম্যানিফেস্ট কী-এর অংশ হিসেবে ১০০টি পর্যন্ত স্ট্যাটিক নিয়ম সেট নির্দিষ্ট করতে পারে, কিন্তু এই নিয়ম সেটগুলির মধ্যে মাত্র ৫০টি একবারে সক্রিয় করা সম্ভব। পরবর্তীটিকে MAX_NUMBER_OF_ENABLED_STATIC_RULESETS বলা হয়। সামগ্রিকভাবে, এই নিয়ম সেটগুলি কমপক্ষে ৩০,০০০ নিয়ম নিশ্চিত করে। এটিকে GUARANTEED_MINIMUM_STATIC_RULES বলা হয়।

এরপর কতগুলি নিয়ম উপলব্ধ হবে তা নির্ভর করে ব্যবহারকারীর ব্রাউজারে ইনস্টল করা সমস্ত এক্সটেনশন কতগুলি নিয়ম সক্রিয় করেছে তার উপর। রানটাইমে আপনি getAvailableStaticRuleCount() এ কল করে এই নম্বরটি খুঁজে পেতে পারেন। আপনি কোড উদাহরণের অধীনে এর একটি উদাহরণ দেখতে পারেন।

অধিবেশনের নিয়ম

একটি এক্সটেনশনে সর্বাধিক ৫০০০টি সেশন নিয়ম থাকতে পারে। এটি MAX_NUMBER_OF_SESSION_RULES হিসাবে প্রকাশিত হয়।

Chrome 120 এর আগে, 5000 টি সম্মিলিত গতিশীল এবং সেশন নিয়মের সীমা ছিল।

গতিশীল নিয়ম

একটি এক্সটেনশনে কমপক্ষে ৫০০০টি ডায়নামিক নিয়ম থাকতে পারে। এটি MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES হিসাবে প্রকাশিত হয়।

Chrome 121 থেকে শুরু করে, নিরাপদ গতিশীল নিয়মের জন্য 30,000 নিয়মের একটি বৃহত্তর সীমা উপলব্ধ, যা MAX_NUMBER_OF_DYNAMIC_RULES হিসাবে প্রকাশ করা হয়েছে। 5000 এর সীমার মধ্যে যোগ করা যেকোনো অনিরাপদ নিয়মও এই সীমার জন্য গণনা করা হবে।

Chrome 120 এর আগে, 5000 এর সম্মিলিত গতিশীল এবং সেশন নিয়মের সীমা ছিল।

নিয়মিত অভিব্যক্তি ব্যবহার করে এমন নিয়ম

সকল ধরণের নিয়মে নিয়মিত অভিব্যক্তি ব্যবহার করা যেতে পারে; তবে, প্রতিটি ধরণের নিয়মিত অভিব্যক্তির নিয়মের মোট সংখ্যা ১০০০ এর বেশি হতে পারে না। এটিকে MAX_NUMBER_OF_REGEX_RULES বলা হয়।

অতিরিক্তভাবে, প্রতিটি নিয়ম একবার কম্পাইল করার পরে 2KB এর কম হতে হবে। এটি মোটামুটি নিয়মের জটিলতার সাথে সম্পর্কিত। যদি আপনি এমন একটি নিয়ম লোড করার চেষ্টা করেন যা এই সীমা অতিক্রম করে, তাহলে আপনি নিম্নলিখিতটির মতো একটি সতর্কতা দেখতে পাবেন এবং নিয়মটি উপেক্ষা করা হবে।

rules_1.json: Rule with id 1 specified a more complex regex than allowed
as part of the "regexFilter" key.

পরিষেবা কর্মীদের সাথে মিথস্ক্রিয়া

একটি declarativeNetRequest শুধুমাত্র সেইসব অনুরোধের ক্ষেত্রে প্রযোজ্য যা নেটওয়ার্ক স্ট্যাকে পৌঁছায়। এতে HTTP ক্যাশ থেকে আসা প্রতিক্রিয়া অন্তর্ভুক্ত থাকে, কিন্তু পরিষেবা কর্মীর onfetch হ্যান্ডলারের মাধ্যমে যাওয়া প্রতিক্রিয়াগুলি অন্তর্ভুক্ত নাও থাকতে পারে। declarativeNetRequest পরিষেবা কর্মীর দ্বারা তৈরি বা CacheStorage থেকে প্রাপ্ত প্রতিক্রিয়াগুলিকে প্রভাবিত করবে না, তবে এটি কোনও পরিষেবা কর্মীর fetch() এ করা কলগুলিকে প্রভাবিত করবে।

ওয়েবে অ্যাক্সেসযোগ্য রিসোর্স

একটি declarativeNetRequest নিয়ম একটি পাবলিক রিসোর্স অনুরোধ থেকে এমন কোনও রিসোর্সে পুনঃনির্দেশিত করতে পারে না যা ওয়েব অ্যাক্সেসযোগ্য নয়। এটি করলে একটি ত্রুটি দেখা দেয়। নির্দিষ্ট ওয়েব অ্যাক্সেসযোগ্য রিসোর্সটি পুনঃনির্দেশিত এক্সটেনশনের মালিকানাধীন হলেও এটি সত্য। declarativeNetRequest-এর জন্য রিসোর্স ঘোষণা করতে, ম্যানিফেস্টের "web_accessible_resources" অ্যারে ব্যবহার করুন।

শিরোনাম পরিবর্তন

অ্যাপেন্ড অপারেশনটি শুধুমাত্র নিম্নলিখিত অনুরোধ শিরোনামগুলির জন্য সমর্থিত: accept , accept-encoding , accept-language , access-control-request-headers , cache-control , connection , content-language , cookie , forwarded , if-match , if-none-match , keep-alive , range , te , trailer , transfer-encoding , upgrade , user-agent , via , want-digest , x-forwarded-for । এই allowlist কেস সংবেদনশীল ( বাগ 449152902 )।

কোনও অনুরোধ বা প্রতিক্রিয়া শিরোনামে যুক্ত করার সময়, ব্রাউজারটি যেখানে সম্ভব উপযুক্ত বিভাজক ব্যবহার করবে।

উদাহরণ

কোড উদাহরণ

গতিশীল নিয়ম আপডেট করুন

নিচের উদাহরণে দেখানো হয়েছে কিভাবে 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-এ নেভিগেট করুন
Because of the longer URL, the rule with ID 2 now matches in addition to the rules with IDs 1 and 4. The rule with ID 2 applies because "allow" has a higher priority than "block" and "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 -এর একটি আইডি এমন অনুরোধ বাদ দেয় যা ট্যাব থেকে আসে না। শুধুমাত্র সেশন-স্কোপড নিয়মের জন্য সমর্থিত।

  • বাদ দেওয়া হয়েছেটপডোমেইন

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

    মুলতুবি

    সংশ্লিষ্ট শীর্ষ-স্তরের ফ্রেমের ডোমেন যখন 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 এর সাথে মিলে যাওয়া প্যাটার্ন। সমর্থিত গঠন:

    '*' : ওয়াইল্ডকার্ড: যেকোনো সংখ্যক অক্ষরের সাথে মেলে।

    '|' : Left/right anchor: If used at either end of the pattern, specifies the beginning/end of the url respectively.

    '||' : Domain name anchor: If used at the beginning of the pattern, specifies the start of a (sub-)domain of the URL.

    '^' : Separator character: This matches anything except a letter, a digit, or one of the following: _ , - , . , or % . This also match the end of the URL.

    Therefore urlFilter is composed of the following parts: (optional Left/Domain name anchor) + pattern + (optional Right anchor).

    If omitted, all urls are matched. An empty string is not allowed.

    A pattern beginning with ||* is not allowed. Use * instead.

    Note: Only one of urlFilter or regexFilter can be specified.

    Note: The urlFilter must 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=ф, the urlFilter will be matched against the url http://abc.xn--p1ai/?q=%D1%84.

RuleConditionKeys

মুলতুবি

এনাম

"urlFilter"

"regexFilter"

"isUrlFilterCaseSensitive"

"initiatorDomains"

"excludedInitiatorDomains"

"requestDomains"

"excludedRequestDomains"

"topDomains"

"excludedTopDomains"

"domains"

"excludedDomains"

"resourceTypes"

"excludedResourceTypes"

"requestMethods"

"excludedRequestMethods"

"domainType"

"tabIds"

"excludedTabIds"

"responseHeaders"

"excludedResponseHeaders"

Ruleset

বৈশিষ্ট্য

  • সক্রিয়

    বুলিয়ান

    Whether the ruleset is enabled by default.

  • আইডি

    স্ট্রিং

    A non-empty string uniquely identifying the ruleset. IDs beginning with '_' are reserved for internal use.

  • পথ

    স্ট্রিং

    The path of the JSON ruleset relative to the extension directory.

RulesMatchedDetails

বৈশিষ্ট্য

TabActionCountUpdate

Chrome 89+

বৈশিষ্ট্য

  • বৃদ্ধি

    সংখ্যা

    The amount to increment the tab's action count by. Negative values will decrement the count.

  • ট্যাবআইডি

    সংখ্যা

    The tab for which to update the action count.

TestMatchOutcomeResult

Chrome 103+

বৈশিষ্ট্য

  • matchedRules

    The rules (if any) that match the hypothetical request.

TestMatchRequestDetails

Chrome 103+

বৈশিষ্ট্য

  • সূচনাকারী

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

    The initiator URL (if any) for the hypothetical request.

  • পদ্ধতি

    RequestMethod optional

    Standard HTTP method of the hypothetical request. Defaults to "get" for HTTP requests and is ignored for non-HTTP requests.

  • responseHeaders

    ঐচ্ছিক বস্তু

    Chrome 129+

    The headers provided by a hypothetical response if the request does not get blocked or redirected before it is sent. Represented as an object which maps a header name to a list of string values. If not specified, the hypothetical response would return empty response headers, which can match rules which match on the non-existence of headers. Eg {"content-type": ["text/html; charset=utf-8", "multipart/form-data"]}

  • ট্যাবআইডি

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

    The ID of the tab in which the hypothetical request takes place. Does not need to correspond to a real tab ID. Default is -1, meaning that the request isn't related to a tab.

  • topUrl

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

    মুলতুবি

    The associated top-level frame URL (if any) for the request.

  • টাইপ করুন

    The resource type of the hypothetical request.

  • ইউআরএল

    স্ট্রিং

    The URL of the hypothetical request.

UnsupportedRegexReason

Chrome 87+

Describes the reason why a given regular expression isn't supported.

এনাম

"syntaxError"
The regular expression is syntactically incorrect, or uses features not available in the RE2 syntax .

"memoryLimitExceeded"
The regular expression exceeds the memory limit.

UpdateRuleOptions

Chrome 87+

বৈশিষ্ট্য

  • addRules

    Rule [] optional

    Rules to add.

  • removeRuleIds

    number[] optional

    IDs of the rules to remove. Any invalid IDs will be ignored.

UpdateRulesetOptions

Chrome 87+

বৈশিষ্ট্য

  • disableRulesetIds

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

    The set of ids corresponding to a static Ruleset that should be disabled.

  • enableRulesetIds

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

    The set of ids corresponding to a static Ruleset that should be enabled.

UpdateStaticRulesOptions

ক্রোম ১১১+

বৈশিষ্ট্য

  • disableRuleIds

    number[] optional

    Set of ids corresponding to rules in the Ruleset to disable.

  • enableRuleIds

    number[] optional

    Set of ids corresponding to rules in the Ruleset to enable.

  • rulesetId

    স্ট্রিং

    The id corresponding to a static Ruleset .

URLTransform

বৈশিষ্ট্য

  • খণ্ড

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

    The new fragment for the request. Should be either empty, in which case the existing fragment is cleared; or should begin with '#'.

  • হোস্ট

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

    The new host for the request.

  • পাসওয়ার্ড

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

    The new password for the request.

  • পথ

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

    The new path for the request. If empty, the existing path is cleared.

  • বন্দর

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

    The new port for the request. If empty, the existing port is cleared.

  • প্রশ্ন

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

    The new query for the request. Should be either empty, in which case the existing query is cleared; or should begin with '?'.

  • queryTransform

    QueryTransform optional

    Add, remove or replace query key-value pairs.

  • পরিকল্পনা

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

    The new scheme for the request. Allowed values are "http", "https", "ftp" and "chrome-extension".

  • ব্যবহারকারীর নাম

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

    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 .

মূল্য

20

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()

Chrome 89+
chrome.declarativeNetRequest.getAvailableStaticRuleCount(): Promise<number>

Returns the number of static rules an extension can enable before the global static rule limit is reached.

রিটার্নস

  • প্রতিশ্রুতি <সংখ্যা>

    ক্রোম ৯১+

getDisabledRuleIds()

ক্রোম ১১১+
chrome.declarativeNetRequest.getDisabledRuleIds(
  options: GetDisabledRuleIdsOptions,
)
: Promise<number[]>

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

পরামিতি

রিটার্নস

  • Promise<number[]>

    Promise that resolves with a list of ids that correspond to the disabled rules in that ruleset.

getDynamicRules()

chrome.declarativeNetRequest.getDynamicRules(
  filter?: GetRulesFilter,
)
: 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

    ক্রোম ১১১+

    An object to filter the list of fetched rules.

রিটার্নস

  • Promise< Rule []>

    ক্রোম ৯১+

    Promise that resolves with the set of dynamic rules. The Promise may be rejected in case of transient internal errors.

getEnabledRulesets()

chrome.declarativeNetRequest.getEnabledRulesets(): Promise<string[]>

Returns the ids for the current set of enabled static rulesets.

রিটার্নস

  • Promise<string[]>

    ক্রোম ৯১+

    Promise that resolves with a list of ids, where each id corresponds to an enabled static Ruleset .

getMatchedRules()

chrome.declarativeNetRequest.getMatchedRules(
  filter?: MatchedRulesFilter,
)
: 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.

পরামিতি

  • ফিল্টার

    An object to filter the list of matched rules.

রিটার্নস

  • ক্রোম ৯১+

    Promise that resolves once the list of matched rules has been fetched. In case of an error, the Promise will be rejected. This can happen for multiple reasons, such as insufficient permissions, or exceeding the quota.

getSessionRules()

Chrome 90+
chrome.declarativeNetRequest.getSessionRules(
  filter?: GetRulesFilter,
)
: 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

    ক্রোম ১১১+

    An object to filter the list of fetched rules.

রিটার্নস

  • Promise< Rule []>

    ক্রোম ৯১+

    Promise that resolves with the set of session scoped rules.

isRegexSupported()

Chrome 87+
chrome.declarativeNetRequest.isRegexSupported(
  regexOptions: RegexOptions,
)
: Promise<IsRegexSupportedResult>

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

পরামিতি

  • regexOptions

    The regular expression to check.

রিটার্নস

  • ক্রোম ৯১+

    Promise that resolves with details consisting of whether the regular expression is supported and the reason if not.

setExtensionActionOptions()

ক্রোম ৮৮+
chrome.declarativeNetRequest.setExtensionActionOptions(
  options: ExtensionActionOptions,
)
: 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.

পরামিতি

রিটার্নস

  • প্রতিশ্রুতি<অকার্যকর>

    ক্রোম ৯১+

testMatchOutcome()

Chrome 103+
chrome.declarativeNetRequest.testMatchOutcome(
  request: TestMatchRequestDetails,
)
: 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.

পরামিতি

রিটার্নস

updateDynamicRules()

chrome.declarativeNetRequest.updateDynamicRules(
  options: UpdateRuleOptions,
)
: 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 .

পরামিতি

রিটার্নস

  • প্রতিশ্রুতি<অকার্যকর>

    ক্রোম ৯১+

    Promise that resolves once the update is complete. In case of an error, the promise will be rejected and no change will be made to the rule set. This can happen for multiple reasons, such as invalid rule format, duplicate rule ID, rule count limit exceeded, internal errors, and others.

updateEnabledRulesets()

chrome.declarativeNetRequest.updateEnabledRulesets(
  options: UpdateRulesetOptions,
)
: 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.

পরামিতি

রিটার্নস

  • প্রতিশ্রুতি<অকার্যকর>

    ক্রোম ৯১+

    Promise that resolves once the update is complete. In case of an error, the promise will be rejected and no change will be made to the set of enabled rulesets. This can happen for multiple reasons, such as invalid ruleset IDs, rule count limit exceeded, or internal errors.

updateSessionRules()

Chrome 90+
chrome.declarativeNetRequest.updateSessionRules(
  options: UpdateRuleOptions,
)
: 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.

পরামিতি

রিটার্নস

  • প্রতিশ্রুতি<অকার্যকর>

    ক্রোম ৯১+

    Promise that resolves once the update is complete. In case of an error, the promise will be rejected and no change will be made to the rule set. This can happen for multiple reasons, such as invalid rule format, duplicate rule ID, rule count limit exceeded, and others.

updateStaticRules()

ক্রোম ১১১+
chrome.declarativeNetRequest.updateStaticRules(
  options: UpdateStaticRulesOptions,
)
: 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.

পরামিতি

রিটার্নস

  • প্রতিশ্রুতি<অকার্যকর>

    Promise that resolves when the update is complete. In case of an error, the promise will be rejected and no change will be made to the enabled static rules.

ইভেন্টগুলি

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.

পরামিতি