refresh date: 2026-09-25 robots: noindex
شرح
از chrome.declarativeNetRequest API برای مسدود کردن یا اصلاح درخواستهای شبکه با مشخص کردن قوانین اعلانی استفاده میشود. این کار به افزونهها اجازه میدهد درخواستهای شبکه را بدون رهگیری آنها و مشاهده محتوایشان اصلاح کنند، بنابراین حریم خصوصی بیشتری فراهم میشود.
اجازهها
declarativeNetRequestdeclarativeNetRequestWithHostAccessdeclarativeNetRequestFeedbackhost_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/*"
],
...
}
مفاهیم و کاربرد
برای استفاده از این میانای برنامهسازی کاربردی، یک یا چند مجموعه قانون مشخص کنید. مجموعه قوانین حاوی آرایهای از قوانین است. یک قانون واحد یکی از کارهای زیر را انجام میدهد:
- مسدود کردن درخواست شبکه.
- طرح را ارتقا دهید (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 تعریف میشوند.
برای فعال یا غیرفعال کردن مجموعه قوانین ایستا، updateEnabledRulesets() را فراخوانی کنید. این روش یک شیء UpdateRulesetOptions را میگیرد که حاوی آرایههایی از شناسههای مجموعهقوانین برای فعال یا غیرفعال کردن است. شناسهها بااستفاده از کلید "id" واژهنامه Ruleset تعریف میشوند.
ایجاد قوانین
صرفنظر از نوع، یک قانون با چهار فیلد شروع میشود که در زیر نشان داده شده است. درحالیکه کلیدهای "id" و "priority" یک عدد میگیرند، کلیدهای "action" و "condition" ممکن است چندین شرط مسدود کردن و تغییر مسیر ارائه دهند. قانون زیر همه درخواستهای اسکریپت را که از "foo.com" به هر نشانی وب با "abc" بهعنوان رشته فرعی ارسال میشود مسدود میکند.
{
"id" : 1,
"priority": 1,
"action" : { "type" : "block" },
"condition" : {
"urlFilter" : "abc",
"initiatorDomains" : ["foo.com"],
"resourceTypes" : ["script"]
}
}
نویسههای منطبق urlFilter
کلید "condition" قانون به کلید "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://b.a.example.com/xyz |
https://example.com/ |
"|https*" |
https://example.com | http://example.com/ http://https.com |
"example*^123|" |
https://example.com/123 http://abc.com/example?123 |
https://example.com/1234 https://abc.com/example0123 |
اولویتبندی قانون
قوانین با درخواستهای ارسالشده از صفحههای وب راهاندازی میشوند. اگر چند قانون با یک درخواست خاص مطابقت داشته باشد، باید قوانین اولویتبندی شوند. این بخش توضیح میدهد که چگونه اولویتبندی میشوند. اولویتبندی در دو مرحله انجام میشود.
- اولویت برای قوانین درون افزونه تعیین میشود.
- اگر بیشاز یک افزونه بتواند قانونی را برای درخواستی اعمال کند، اولویت برای همه افزونههایی که با درخواست خاصی مطابقت دارند تعیین میشود.
فکر کردن به مطابقت دادن به این روش: هر قانونی که افزونه خاصی اولویتبندی کند، سپس نسبتبه قوانین افزونههای دیگر اولویتبندی خواهد شد.
اولویتبندی قانون در افزونه
در یک افزونه، اولویتبندی بااستفاده از فرایند زیر انجام میشود:
- قانون با بالاترین اولویت تعریفشده توسط توسعهدهنده (بهعبارت دیگر، فیلد
"priority") برگردانده میشود. اگر بیشاز یک قانون با بالاترین اولویت تعریفشده توسط توسعهدهنده وجود داشته باشد، قوانین بااستفاده از فیلد
"action"بهترتیب زیر اولویتبندی میشوند:allowallowAllRequestsblockupgradeSchemeredirect
اگر نوع کنش
blockیاredirectنباشد، هرگونه قانونmodifyHeadersمنطبق ارزیابی میشود. توجه داشته باشید که اگر قانونی با اولویت تعریفشده توسط توسعهدهنده وجود داشته باشد که از اولویت مشخصشده برایallowوallowAllRequestsپایینتر باشد، این قانون نادیده گرفته میشود.اگر چند قانون یک سرصفحه را اصلاح کنند، اصلاح براساس فیلد
"priority"تعریفشده توسط توسعهدهنده و عملیات مشخصشده تعیین میشود.- اگر قانونی به سرصفحه اضافه شود، قوانین با اولویت پایینتر فقط میتوانند به آن سرصفحه اضافه شوند. عملیات تنظیم و برداشتن مجاز نیست.
- اگر قانونی سرصفحهای را تنظیم کند، قوانین با اولویت پایینتر فقط میتوانند به آن سرصفحه اضافه شوند. هیچ اصلاح دیگری مجاز نیست.
- اگر قانونی سرصفحهای را بردارد، قوانین با اولویت پایینتر نمیتوانند آن سرصفحه را بیشتر اصلاح کنند.
اولویتبندی قانون بین افزونهها
اگر فقط یک افزونه قانونی داشته باشد که با درخواست مطابقت داشته باشد، آن قانون اعمال میشود. اما اگر بیشاز یک افزونه با درخواست مطابقت داشته باشد، از فرایند زیر استفاده میشود:
قوانین بااستفاده از فیلد
"action"بهترتیب زیر اولویتبندی میشوند:block-
redirectیاupgradeScheme -
allowیاallowAllRequests
اگر بیشاز یک قانون مطابقت داشته باشد، افزونهای که اخیراً نصب شده است اولویت دارد.
حدود قانون
بار کردن و ارزیابی قوانین در مرورگر سربار عملکردی دارد، بنابراین هنگام استفاده از API برخی محدودیتها اعمال میشود. محدودیتها به نوع قاعدهای که استفاده میکنید بستگی دارد.
قوانین ایستا
قوانین ثابت قوانینی هستند که در فایلهای قانون اعلامشده در فایل مانیفست مشخص شدهاند. افزونه میتواند تا ۵۰ مجموعه قانون ایستا را بهعنوان بخشی از کلید مانیفست "rule_resources" مشخص کند، اما فقط ۱۰ مورد از این مجموعههای قانون میتوانند بهطور همزمان فعال باشند. به دومی MAX_NUMBER_OF_ENABLED_STATIC_RULESETS میگویند. درمجموع، برای این مجموعههای قانون حداقل ۳۰٬۰۰۰ قانون تضمین میشود. به این حالت GUARANTEED_MINIMUM_STATIC_RULES میگویند.
تعداد قوانین دردسترس پساز آن به تعداد قوانینی بستگی دارد که توسط همه افزونههای نصبشده در مرورگر کاربر فعال شده است. میتوانید این شماره را در زمان اجرا با تماس با getAvailableStaticRuleCount() پیدا کنید. میتوانید نمونهای از این مورد را در بخش نمونههای کد مشاهده کنید.
قوانین پویا و جلسه
محدودیتهای اعمالشده بر قوانین پویا و جلسهای سادهتر از قوانین ایستا است. تعداد کل هر دو نمیتواند از ۵۰۰۰ بیشتر باشد. به این حالت MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES میگویند.
قوانینی که از عبارت باقاعده استفاده میکنند
همه انواع قوانین میتوانند از عبارتهای باقاعده استفاده کنند؛ بااینحال، تعداد کل قوانین عبارت باقاعده از هر نوع نمیتواند از ۱۰۰۰ بیشتر باشد. این حالت MAX_NUMBER_OF_REGEX_RULES نامیده میشود.
علاوهبراین، هر قانون پساز کامپایل شدن باید کمتر از ۲ کیلوبایت باشد. این زمان تقریباً با پیچیدگی قانون همبستگی دارد. اگر بخواهید قانونی را بار کنید که از این حد فراتر میرود، هشداری مانند هشدار زیر خواهید دید و قانون نادیده گرفته خواهد شد.
rules_1.json: Rule with id 1 specified a more complex regex than allowed
as part of the "regexFilter" key.
تعامل با کارگران خدماتی
declarativeNetRequest فقط برای درخواستهایی اعمال میشود که به پشته شبکه میرسند. این شامل پاسخهای حافظه پنهان HTTP میشود، اما ممکن است شامل پاسخهایی که از گرداننده onfetch کارگر سرویس عبور میکنند نشود. declarativeNetRequest بر پاسخهای تولیدشده توسط کارگر سرویس یا بازیابیشده از CacheStorage تأثیر نخواهد گذاشت، اما بر تماسهای برقرارشده با fetch() در کارگر سرویس تأثیر خواهد گذاشت.
منابع دردسترس وب
قانون declarativeNetRequest نمیتواند از درخواست منبع عمومی به منبعی که ازطریق وب دردسترس نیست هدایت کند. انجام این کار باعث ایجاد خطا میشود. این موضوع حتی اگر منبع قابلدسترس وب مشخصشده متعلق به افزونه هدایتکننده باشد نیز صادق است. برای اعلام منابع برای declarativeNetRequest، از آرایه "web_accessible_resources" مانیفست استفاده کنید.
مثالها
نمونههای کد
بهروزرسانی قوانین پویا
مثال زیر نحوه فراخوانی updateDynamicRules() را نشان میدهد. روال updateSessionRules() هم همینطور است.
// Get arrays containing new and old rules
const newRules = await getNewRules();
const oldRules = await chrome.declarativeNetRequest.getDynamicRules();
const oldRuleIds = oldRules.map(rule => rule.id);
// Use the arrays to update the dynamic rules
await chrome.declarativeNetRequest.updateDynamicRules({
removeRuleIds: oldRuleIds,
addRules: newRules
});
بهروزرسانی مجموعهقوانین ایستا
مثال زیر نشان میدهد که چگونه میتوان مجموعهقوانین را فعال و غیرفعال کرد، درحالیکه تعداد مجموعهقوانین ایستا دردسترس و حداکثر تعداد مجموعهقوانین ایستا فعال درنظر گرفته میشود. این کار را زمانی انجام میدهید که تعداد قوانین ثابتی که نیاز دارید از تعداد مجاز فراتر برود. برای اینکه این کار انجام شود، برخیاز مجموعهقوانین شما باید با غیرفعال کردن برخیاز مجموعهقوانین شما نصب شوند (تنظیم "Enabled" روی false در فایل مانیفست).
async function updateStaticRules(enableRulesetIds, disableCandidateIds) {
// Create the options structure for the call to updateEnabledRulesets()
let options = { enableRulesetIds: enableRulesetIds }
// Get the number of enabled static rules
const enabledStaticCount = await chrome.declarativeNetRequest.getEnabledRulesets();
// Compare rule counts to determine if anything needs to be disabled so that
// new rules can be enabled
const proposedCount = enableRulesetIds.length;
if (enabledStaticCount + proposedCount > chrome.declarativeNetRequest.MAX_NUMBER_OF_ENABLED_STATIC_RULESETS) {
options.disableRulesetIds = disableCandidateIds
}
// Update the enabled static rules
await chrome.declarativeNetRequest.updateEnabledRulesets(options);
}
نمونههای قانون
مثالهای زیر نشان میدهند که Chrome چگونه قوانین را در افزونه اولویتبندی میکند. هنگام مرور آنها، ممکن است بخواهید قوانین اولویتبندی را در پنجرهای جداگانه باز کنید.
کلید «اولویت»
این نمونهها به اجازه میزبان برای *://*.example.com/* نیاز دارند.
برای تعیین اولویت یک نشانی وب خاص، به کلید "priority" (تعریفشده توسط توسعهدهنده)، کلید "action"، و کلید "urlFilter" نگاه کنید. این مثالها به فایل قانون نمونهای که در زیر آنها نشان داده شده است اشاره دارند.
- پیمایش به https://google.com
- دو قانون این نشانی وب را پوشش میدهد: قوانین با شناسههای ۱ و ۴. قانون با شناسه ۱ اعمال میشود زیرا کنشهای
"block"اولویت بالاتری نسبتبه کنشهای"redirect"دارند. قوانین باقیمانده اعمال نمیشوند زیرا برای نشانیهای وب طولانیتر هستند. - پیمایش به https://google.com/1234
- بهدلیل طولانیتر بودن نشانی وب، قانون با شناسه ۲ اکنون علاوهبر قانونهای با شناسه ۱ و ۴ مطابقت دارد. قانون با شناسه ۲ اعمال میشود زیرا
"allow"اولویت بالاتری نسبتبه"block"و"redirect"دارد. - پیمایش به https://google.com/12345
- هر چهار قانون با این نشانی وب مطابقت دارد. قانون با شناسه ۳ اعمال میشود زیرا اولویت تعریفشده توسط توسعهدهنده آن بالاترین اولویت در گروه است.
[
{
"id": 1,
"priority": 1,
"action": { "type": "block" },
"condition": {"urlFilter": "google.com", "resourceTypes": ["main_frame"] }
},
{
"id": 2,
"priority": 1,
"action": { "type": "allow" },
"condition": { "urlFilter": "google.com/123", "resourceTypes": ["main_frame"] }
},
{
"id": 3,
"priority": 2,
"action": { "type": "block" },
"condition": { "urlFilter": "google.com/12345", "resourceTypes": ["main_frame"] }
},
{
"id": 4,
"priority": 1,
"action": { "type": "redirect", "redirect": { "url": "https://example.com" } },
"condition": { "urlFilter": "google.com", "resourceTypes": ["main_frame"] }
},
]
هدایتهای مجدد
مثال زیر به اجازه میزبان برای *://*.example.com/* نیاز دارد.
مثال زیر نشان میدهد که چگونه میتوان درخواستی را از example.com به صفحهای در خود افزونه هدایت کرد. مسیر افزونه /a.jpg به chrome-extension://EXTENSION_ID/a.jpg تبدیل میشود که در آن EXTENSION_ID شناسه افزونه شما است. برای اینکه این کار انجام شود، مانیفست باید /a.jpg را بهعنوان منبع قابلدسترسی وب اعلام کند.
{
"id": 1,
"priority": 1,
"action": { "type": "redirect", "redirect": { "extensionPath": "/a.jpg" } },
"condition": {
"urlFilter": "https://www.example.com",
"resourceTypes": ["main_frame"]
}
}
در مثال زیر، از کلید "transform" برای هدایت به زیردامنه example.com استفاده میشود. از لنگر نام دامنه («||») برای رهگیری درخواستها با هر طرحی از example.com استفاده میشود. کلید "scheme" در "transform" مشخص میکند که هدایت به زیردامنه همیشه از «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» از نشانی وب هدایتشده گرفته میشود و در جایگزینی قرار میگیرد.
{
"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) آن با قابی که درخواست در آن ایجاد شده است یکسان باشد.
شمارشی
«firstParty»
درخواست شبکه، طرف اول قابی است که در آن ایجاد شده است.
«thirdParty»
درخواست شبکه نسبت به قابی که در آن ایجاد شده است، طرف سوم است.
ExtensionActionOptions
مشخصات
-
displayActionCountAsBadgeText
بولی اختیاری
آیا تعداد کنشهای یک صفحه بهطور خودکار بهعنوان نوشتار نشان افزونه نمایش داده شود یا نه. این اولویت در جلسات مختلف حفظ میشود.
-
tabUpdate
TabActionCountUpdate اختیاری
Chrome نسخه ۸۹ و بالاترجزئیات نحوه تنظیم تعداد کنشهای برگه.
GetDisabledRuleIdsOptions
مشخصات
-
rulesetId
رشته
شناسه مربوط به
Rulesetایستا.
GetRulesFilter
مشخصات
-
ruleIds
number[] اختیاری
اگر مشخص شده باشد، فقط قوانینی که شناسههای منطبق دارند گنجانده میشود.
HeaderInfo
مشخصات
-
excludedValues
رشته[] اختیاری
اگر مشخص شده باشد، درصورتیکه سرصفحه وجود داشته باشد اما مقدار آن حاوی حداقل یک عنصر در این فهرست باشد، این شرط مطابقت داده نمیشود. این مورد از همان نحو الگوی مطابقت
valuesاستفاده میکند. -
سرصفحه
رشته
نام سرایند. این شرط فقط درصورتی با نام مطابقت دارد که
valuesوexcludedValuesمشخص نشده باشند. -
مقادیر
رشته[] اختیاری
اگر مشخص شده باشد، این شرط درصورتی مطابقت دارد که مقدار سرصفحه با حداقل یک الگو در این فهرست مطابقت داشته باشد. این گزینه از مطابقت مقدار سرایند غیرحساس به حروف بزرگ و کوچک بهعلاوه ساختارهای زیر پشتیبانی میکند:
«*» : با هر تعداد نویسه مطابقت دارد.
«؟» : با صفر یا یک نویسه مطابقت دارد.
«*» و «؟» را میتوان با واکجخط گریزاند، مثلاً «\*» و «\؟»
HeaderOperation
این بخش عملیات ممکن برای قانون «modifyHeaders» را شرح میدهد.
شمارشی
«append»
ورودی جدیدی برای سرایند مشخصشده اضافه میکند. هنگام اصلاح سرایندهای درخواست، این عملیات فقط برای سرایندهای خاص پشتیبانی میشود.
«set»
مقدار جدیدی برای سرصفحه مشخصشده تنظیم میکند و هرگونه سرصفحه موجود با همان نام را برمیدارد.
«remove»
همه ورودیهای سرصفحه مشخصشده را برمیدارد.
IsRegexSupportedResult
مشخصات
-
isSupported
بولی
-
دلیل
UnsupportedRegexReason اختیاری
دلیل پشتیبانی نشدن عبارت باقاعده را مشخص میکند. فقط درصورتی ارائه میشود که
isSupportedنادرست باشد.
MatchedRule
مشخصات
-
ruleId
شماره
شناسه قانون منطبق.
-
rulesetId
رشته
شناسه
Rulesetکه این قانون به آن تعلق دارد. برای قانونی که از مجموعه قوانین پویا منشأ میگیرد، این مقدار برابر باDYNAMIC_RULESET_IDخواهد بود.
MatchedRuleInfo
مشخصات
-
قانون
-
tabId
شماره
tabId زبانهای که درخواست از آن منشأ گرفته است، اگر زبانه هنوز فعال باشد. Else -1.
-
timeStamp
شماره
زمانی که قانون مطابقت داده شد. مُهرهای زمان با قرارداد جاوا اسکریپت برای زمانها مطابقت خواهند داشت، یعنی تعداد میلیثانیهها از تاریخ.
MatchedRuleInfoDebug
مشخصات
-
درخواست کردن
جزئیات مربوط به درخواستی که قانون با آن مطابقت دارد.
-
قانون
MatchedRulesFilter
مشخصات
-
minTimeStamp
شماره اختیاری
اگر مشخص شده باشد، فقط با قوانین پساز مُهر زمان دادهشده مطابقت دارد.
-
tabId
شماره اختیاری
اگر مشخص شده باشد، فقط با قوانین برگه ارائهشده مطابقت دارد. اگر روی -1 تنظیم شده باشد، با قوانینی که با هیچ برگه فعالی مرتبط نیستند مطابقت دارد.
ModifyHeaderInfo
مشخصات
-
سرصفحه
رشته
نام سرایندی که باید اصلاح شود.
-
عملیات
عملیاتی که باید روی سرصفحه انجام شود.
-
مقدار
رشته اختیاری
مقدار جدید برای سرایند. باید برای عملیات
appendوsetمشخص شود.
QueryKeyValue
مشخصات
-
کلید
رشته
-
replaceOnly
بولی اختیاری
Chrome نسخه ۹۴ و بالاتراگر درست باشد، کلید پُرسمان فقط درصورتی جایگزین میشود که ازقبل وجود داشته باشد. درغیراینصورت، اگر کلید وجود نداشته باشد، اضافه میشود. پیشفرض: نادرست.
-
مقدار
رشته
QueryTransform
مشخصات
-
addOrReplaceParams
QueryKeyValue[] اختیاری
فهرست جفتهای کلید-مقدار پُرسمان برای افزودن یا جایگزین کردن.
-
removeParams
رشته[] اختیاری
فهرست کلیدهای پُرسمان برای برداشته شدن.
Redirect
مشخصات
-
extensionPath
رشته اختیاری
مسیر مرتبط با دایرکتوری افزونه. باید با «/» شروع شود.
-
regexSubstitution
رشته اختیاری
الگوی جایگزینی برای قوانینی که
regexFilterرا مشخص میکنند. اولین تطابقregexFilterدر نشانی وب با این الگو جایگزین خواهد شد. درregexSubstitution، میتوان از ارقام با واکجخط گریز (\1 تا \9) برای درج گروههای ضبط متناظر استفاده کرد. \0 به کل نوشتار منطبق اشاره دارد. -
تبدیل کردن
URLTransform اختیاری
تبدیلهای نشانی وب برای اجرا.
-
نشانی وب
رشته اختیاری
نشانی وب هدایتگر. هدایت به نشانیهای وب جاوا اسکریپت مجاز نیست.
RegexOptions
مشخصات
-
isCaseSensitive
بولی اختیاری
آیا
regexمشخصشده حروفحساس است یا نه. پیشفرض «درست» است. -
عبارت باقاعده
رشته
عبارت باقاعده برای بررسی.
-
requireCapturing
بولی اختیاری
اینکه آیا
regexمشخصشده به ضبط نیاز دارد یا نه. ضبط فقط برای قوانین تغییرمسیر که کنشregexSubstitionرا مشخص میکنند لازم است. پیشفرض false است.
RequestDetails
مشخصات
-
documentId
رشته اختیاری
Chrome نسخه ۱۰۶ و بالاترشناسه یکتای سند قاب، اگر این درخواست برای قاب باشد.
-
documentLifecycle
DocumentLifecycle اختیاری
Chrome نسخه ۱۰۶ و بالاترچرخه حیات سند قاب، اگر این درخواست برای قاب باشد.
-
frameId
شماره
مقدار ۰ نشان میدهد که درخواست در قاب اصلی اتفاق میافتد؛ مقدار مثبت نشاندهنده شناسه قاب فرعی است که درخواست در آن اتفاق میافتد. اگر سند یک (زیر)قاب بار شود (
typemain_frameیاsub_frameاست)،frameIdشناسه این قاب را نشان میدهد، نه شناسه قاب بیرونی را. شناسههای قاب در هر برگه یکتا هستند. -
frameType
FrameType اختیاری
Chrome نسخه ۱۰۶ و بالاترنوع قاب، اگر این درخواست برای قاب باشد.
-
آغازگر
رشته اختیاری
مبدأی که درخواست از آنجا آغاز شده است. این مورد با تغییر مسیر تغییر نمیکند. اگر این مبدأ مبهم باشد، از رشته «null» استفاده خواهد شد.
-
روش
رشته
روش HTTP استاندارد.
-
parentDocumentId
رشته اختیاری
Chrome نسخه ۱۰۶ و بالاترشناسه یکتای سند ولی قاب، اگر این درخواست برای قاب باشد و ولی داشته باشد.
-
parentFrameId
شماره
شناسه قابی که قاب ارسالکننده درخواست را دربرمیگیرد. اگر قاب ولی وجود نداشته باشد، روی ۱- تنظیم میشود.
-
requestId
رشته
شناسه درخواست. شناسههای درخواست در یک جلسه مرورگر منحصربهفرد هستند.
-
tabId
شماره
شناسه زبانهای که درخواست در آن انجام میشود. اگر درخواست به برگهای مربوط نیست، روی -1 تنظیم کنید.
-
نوع
نوع منبع درخواست.
-
نشانی وب
رشته
نشانی وب درخواست.
RequestMethod
این روش درخواست HTTP را برای درخواست شبکه شرح میدهد.
شمارشی
«متصل شدن»
«delete»
«get»
"head"
«گزینهها»
"patch"
«پست»
«put»
«دیگر»
ResourceType
این نوع منبع درخواست شبکه را شرح میدهد.
شمارشی
"main_frame"
"sub_frame"
«stylesheet»
«script»
"image"
"font"
«شیء»
"xmlhttprequest"
"ping"
"csp_report"
«رسانه»
"websocket"
"webtransport"
"webbundle"
«دیگر»
Rule
مشخصات
-
کنش
کنشی که درصورت مطابقت با این قانون باید انجام شود.
-
شرط
شرایطی که تحت آن این قانون راهاندازی میشود.
-
id
شماره
شناسهای که بهطور یکتا قانونی را مشخص میکند. اجباری است و باید >= ۱ باشد.
-
اولویتدار
شماره اختیاری
اولویت قانون. پیشفرض ۱ است. درصورت مشخص شدن، باید >= ۱ باشد.
RuleAction
مشخصات
-
هدایت کردن
هدایت کردن اختیاری
نحوه انجام تغییرمسیر را شرح میدهد. فقط برای قوانین تغییرمسیر معتبر است.
-
requestHeaders
ModifyHeaderInfo[] اختیاری
Chrome نسخه ۸۶ و بالاترسرصفحههای درخواست برای اصلاح درخواست. فقط درصورتی معتبر است که RuleActionType برابر با «modifyHeaders» باشد.
-
responseHeaders
ModifyHeaderInfo[] اختیاری
Chrome نسخه ۸۶ و بالاترسرایندهای پاسخ برای اصلاح درخواست. فقط درصورتی معتبر است که RuleActionType برابر با «modifyHeaders» باشد.
-
نوع
نوع کنشی که باید انجام شود.
RuleActionType
نوع اقدامی را که باید درصورت مطابقت RuleCondition دادهشده انجام شود شرح میدهد.
شمارشی
«block»
درخواست شبکه را مسدود میکند.
«redirect»
درخواست شبکه را هدایت میکند.
«allow»
درخواست شبکه را مجاز میکند. اگر قانون مجاز کردن با درخواست مطابقت داشته باشد، درخواست رهگیری نخواهد شد.
"upgradeScheme"
اگر درخواست http یا ftp باشد، طرح نشانی وب درخواست شبکه را به https ارتقا میدهد.
«modifyHeaders»
سرایندهای درخواست/پاسخ را از درخواست شبکه اصلاح کنید.
«allowAllRequests»
همه درخواستها را در سلسلهمراتب قاب، ازجمله خود درخواست قاب، مجاز میکند.
RuleCondition
مشخصات
-
domainType
DomainType اختیاری
مشخص میکند که درخواست شبکه نسبت به دامنهای که از آن منشأ گرفته است، شخص اول است یا شخص ثالث. اگر حذف شود، همه درخواستها پذیرفته میشود.
-
دامنهها
رشته[] اختیاری
از Chrome 101 منسوخ شده استدرعوض از
initiatorDomainsاستفاده کنیداین قانون فقط با درخواستهای شبکه که از فهرست
domainsمنشأ میگیرند مطابقت خواهد داشت. -
excludedDomains
رشته[] اختیاری
از Chrome 101 منسوخ شده استدرعوض از
excludedInitiatorDomainsاستفاده کنیداین قانون با درخواستهای شبکه که از فهرست
excludedDomainsمنشأ میگیرند مطابقت نخواهد داشت. -
excludedInitiatorDomains
رشته[] اختیاری
Chrome نسخه ۱۰۱ به بالااین قانون با درخواستهای شبکه که از فهرست
excludedInitiatorDomainsمنشأ میگیرند مطابقت نخواهد داشت. اگر فهرست خالی باشد یا حذف شده باشد، هیچ دامنهای مستثنی نمیشود. این برinitiatorDomainsاولویت دارد.نکتهها:
- زیردامنههایی مثل «a.example.com» نیز مجاز است.
- ورودیها باید فقط شامل نویسههای ASCII باشد.
- برای دامنههای بینالمللیشده از کدگذاری punycode استفاده کنید.
- این مورد با آغازگر درخواست مطابقت دارد و نه با نشانی وب درخواست.
- زیردامنههای دامنههای فهرستشده نیز مستثنی میشوند.
-
excludedRequestDomains
رشته[] اختیاری
Chrome نسخه ۱۰۱ به بالاوقتی دامنهها با یکی از موارد موجود در فهرست
excludedRequestDomainsمطابقت داشته باشد، این قانون با درخواستهای شبکه مطابقت نخواهد داشت. اگر فهرست خالی باشد یا حذف شده باشد، هیچ دامنهای مستثنی نمیشود. این برrequestDomainsاولویت دارد.نکتهها:
- زیردامنههایی مثل «a.example.com» نیز مجاز است.
- ورودیها باید فقط شامل نویسههای ASCII باشد.
- برای دامنههای بینالمللیشده از کدگذاری punycode استفاده کنید.
- زیردامنههای دامنههای فهرستشده نیز مستثنی میشوند.
-
excludedRequestMethods
RequestMethod[] اختیاری
Chrome نسخه ۹۱ به بالافهرست روشهای درخواست که قانون با آنها مطابقت نخواهد داشت. فقط یکی از
requestMethodsوexcludedRequestMethodsباید مشخص شود. اگر هیچکدام مشخص نشده باشد، همه روشهای درخواست مطابقت داده میشود. -
excludedResourceTypes
ResourceType[] اختیاری
فهرست انواع منابعی که قانون با آنها مطابقت ندارد. فقط یکی از
resourceTypesوexcludedResourceTypesباید مشخص شود. اگر هیچکدام مشخص نشده باشد، همه انواع منبع بهجز «main_frame» مسدود میشود. -
excludedResponseHeaders
HeaderInfo[] اختیاری
Chrome نسخه ۱۲۸ و بالاتراگر درخواست با هریک از شرایط سرایند پاسخ در این فهرست (درصورت مشخص شدن) مطابقت داشته باشد، قانون مطابقت ندارد. اگر هر دو
excludedResponseHeadersوresponseHeadersمشخص شده باشند، ویژگیexcludedResponseHeadersاولویت دارد. -
excludedTabIds
number[] اختیاری
Chrome نسخه ۹۲ و بالاترفهرست
tabs.Tab.idکه قانون نباید با آن مطابقت داشته باشد. شناسهtabs.TAB_ID_NONEدرخواستهایی را که از برگه منشأ نمیگیرند مستثنی میکند. فقط برای قوانین جلسهمحور پشتیبانی میشود. -
excludedTopDomains
رشته[] اختیاری
Chrome نسخه ۱۴۵ و بالاتروقتی دامنه قاب سطح بالای مرتبط با یکی از دامنههای موجود در فهرست
excludedTopDomainsمطابقت داشته باشد، این قانون با درخواستهای شبکه مطابقت نخواهد داشت. اگر فهرست خالی باشد یا حذف شده باشد، هیچ دامنهای مستثنی نمیشود. این برtopDomainsاولویت دارد.نکتهها:
- زیردامنههایی مثل «a.example.com» نیز مجاز است.
- ورودیها باید فقط شامل نویسههای ASCII باشد.
- برای دامنههای بینالمللیشده از کدگذاری punycode استفاده کنید.
- زیردامنههای دامنههای فهرستشده نیز مستثنی میشوند.
- برای درخواستهای بدون قاب سطح بالای مرتبط (مثلاً درخواستهای آغازشده توسط ServiceWorker)، دامنه آغازگر درخواست بهجای آن درنظر گرفته میشود.
-
initiatorDomains
رشته[] اختیاری
Chrome نسخه ۱۰۱ به بالااین قانون فقط با درخواستهای شبکه که از فهرست
initiatorDomainsمنشأ میگیرند مطابقت خواهد داشت. اگر فهرست حذف شود، این قانون برای درخواستهای همه دامنهها اعمال میشود. فهرست خالی مجاز نیست.نکتهها:
- زیردامنههایی مثل «a.example.com» نیز مجاز است.
- ورودیها باید فقط شامل نویسههای ASCII باشد.
- برای دامنههای بینالمللیشده از کدگذاری punycode استفاده کنید.
- این مورد با آغازگر درخواست مطابقت دارد و نه با نشانی وب درخواست.
- زیردامنههای دامنههای فهرستشده نیز مطابقت داده میشوند.
-
isUrlFilterCaseSensitive
بولی اختیاری
اینکه آیا
urlFilterیاregexFilter(هرکدام که مشخص شده است) حروفحساس است یا نه. پیشفرض false است. -
regexFilter
رشته اختیاری
عبارت باقاعده برای مطابقت با نشانی وب درخواست شبکه. این الگو از نحو RE2 پیروی میکند.
توجه: فقط یکی از
urlFilterیاregexFilterرا میتوان مشخص کرد.توجه:
regexFilterباید فقط از نویسههای ASCII تشکیل شده باشد. این با نشانی وبی مطابقت داده میشود که میزبان آن در قالب punycode کدبندی شده است (درصورت بینالمللی بودن دامنهها) و هر نویسه غیر-ascii دیگری در utf-8 کدبندی شده است. -
requestDomains
رشته[] اختیاری
Chrome نسخه ۱۰۱ به بالااین قانون فقط زمانی با درخواستهای شبکه مطابقت خواهد داشت که دامنه با یکی از دامنههای موجود در فهرست
requestDomainsمطابقت داشته باشد. اگر فهرست حذف شود، این قانون برای درخواستهای همه دامنهها اعمال میشود. فهرست خالی مجاز نیست.نکتهها:
- زیردامنههایی مثل «a.example.com» نیز مجاز است.
- ورودیها باید فقط شامل نویسههای ASCII باشد.
- برای دامنههای بینالمللیشده از کدگذاری punycode استفاده کنید.
- زیردامنههای دامنههای فهرستشده نیز مطابقت داده میشوند.
-
requestMethods
RequestMethod[] اختیاری
Chrome نسخه ۹۱ به بالافهرست روشهای درخواست HTTP که قانون میتواند با آنها مطابقت داشته باشد. فهرست خالی مجاز نیست.
توجه: مشخص کردن شرط قانون
requestMethodsدرخواستهای غیر-اچتیتیپی(اس) را نیز مستثنی میکند، درحالیکه مشخص کردنexcludedRequestMethodsاین کار را نمیکند. -
resourceTypes
ResourceType[] اختیاری
فهرست انواع منابعی که قانون میتواند با آنها مطابقت داشته باشد. فهرست خالی مجاز نیست.
توجه: این مورد باید برای قوانین
allowAllRequestsمشخص شود و فقط میتواند شامل انواع منابعsub_frameوmain_frameباشد. -
responseHeaders
HeaderInfo[] اختیاری
Chrome نسخه ۱۲۸ و بالاتراگر درخواست با هریک از شرایط سرایند پاسخ در این فهرست (درصورت مشخص شدن) مطابقت داشته باشد، قانون مطابقت دارد.
-
tabIds
number[] اختیاری
Chrome نسخه ۹۲ و بالاترفهرست
tabs.Tab.idکه قانون باید با آن مطابقت داشته باشد. شناسهtabs.TAB_ID_NONEبا درخواستهایی مطابقت دارد که از برگه منشأ نمیگیرند. فهرست خالی مجاز نیست. فقط برای قوانین جلسهمحور پشتیبانی میشود. -
topDomains
رشته[] اختیاری
Chrome نسخه ۱۴۵ و بالاتراین قانون فقط زمانی با درخواستهای شبکه مطابقت خواهد داشت که دامنه قاب سطح بالای مرتبط با یکی از موارد موجود در فهرست
topDomainsمطابقت داشته باشد. اگر فهرست حذف شود، این قانون برای درخواستهای مرتبط با همه دامنههای قاب سطح بالا اعمال میشود. فهرست خالی مجاز نیست.نکتهها:
- زیردامنههایی مثل «a.example.com» نیز مجاز است.
- ورودیها باید فقط شامل نویسههای ASCII باشد.
- برای دامنههای بینالمللیشده از کدگذاری punycode استفاده کنید.
- زیردامنههای دامنههای فهرستشده نیز مطابقت داده میشوند.
- برای درخواستهای بدون قاب سطح بالای مرتبط (مثلاً درخواستهای آغازشده توسط ServiceWorker)، دامنه آغازگر درخواست بهجای آن درنظر گرفته میشود.
-
urlFilter
رشته اختیاری
الگویی که با نشانی وب درخواست شبکه مطابقت دارد. ساختارهای پشتیبانیشده:
«*» : نویسه عام: با هر تعداد نویسه مطابقت دارد.
«|» : لنگر چپ/راست: اگر در هریک از دو انتهای الگو استفاده شود، بهترتیب ابتدا/انتهای نشانی وب را مشخص میکند.
'||' : لنگر نام دامنه: اگر در ابتدای الگو استفاده شود، شروع (زیر)دامنه نشانی وب را مشخص میکند.
«^» : نویسه جداکننده: این نویسه با هر چیزی بهجز حرف، رقم، یا یکی از موارد زیر مطابقت دارد:
_،-،.، یا%. این الگو با انتهای نشانی وب نیز مطابقت دارد.بنابراین
urlFilterاز بخشهای زیر تشکیل شده است: (لنگر نام دامنه/چپ اختیاری) + الگو + (لنگر راست اختیاری).اگر حذف شود، همه نشانیهای وب مطابقت داده میشوند. رشته خالی مجاز نیست.
الگویی که با
||*شروع شود مجاز نیست. درعوض از*استفاده کنید.توجه: فقط یکی از
urlFilterیاregexFilterرا میتوان مشخص کرد.توجه:
urlFilterباید فقط از نویسههای ASCII تشکیل شده باشد. این با نشانی وبی مطابقت داده میشود که میزبان آن در قالب punycode کدبندی شده است (درصورت بینالمللی بودن دامنهها) و هر نویسه غیر-ascii دیگری در utf-8 کدبندی شده است. برای مثال، وقتی نشانی وب درخواست http://abc.рф?q=ф باشد،urlFilterبا نشانی وب 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
مشخصات
-
فعال شد
بولی
اینکه آیا مجموعه قوانین بهطور پیشفرض فعال است یا نه.
-
id
رشته
رشتهای غیرخالی که مجموعه قوانین را بهطور منحصربهفرد شناسایی میکند. شناسههایی که با «_» شروع میشوند برای استفاده داخلی رزرو شدهاند.
-
مسیر
رشته
مسیر مجموعه قوانین JSON نسبت به دایرکتوری افزونه.
RulesMatchedDetails
مشخصات
-
rulesMatchedInfo
قوانین منطبق با فیلتر ارائهشده.
TabActionCountUpdate
مشخصات
-
افزایش
شماره
مقداری که باید به تعداد کنشهای برگه اضافه شود. مقادیر منفی شمارش را کاهش میدهد.
-
tabId
شماره
برگهای که تعداد کنشهای آن بهروزرسانی میشود.
TestMatchOutcomeResult
مشخصات
-
matchedRules
قوانینی (درصورت وجود) که با درخواست فرضی مطابقت دارند.
TestMatchRequestDetails
مشخصات
-
آغازگر
رشته اختیاری
نشانی وب آغازگر (درصورت وجود) برای درخواست فرضی.
-
روش
RequestMethod اختیاری
روش استاندارد HTTP درخواست فرضی. برای درخواستهای HTTP بهطور پیشفرض روی «get» تنظیم شده است و برای درخواستهای غیرHTTP نادیده گرفته میشود.
-
responseHeaders
شیء اختیاری
Chrome نسخه ۱۲۹ و بالاترسرایندهای ارائهشده توسط پاسخ فرضی درصورتیکه درخواست قبلاز ارسال مسدود یا هدایت نشود. بهصورت شیئی نشان داده میشود که نام سرصفحه را به فهرستی از مقادیر رشتهای نگاشت میکند. اگر مشخص نشده باشد، پاسخ فرضی سرایندهای پاسخ خالی را برمیگرداند که میتواند با قوانینی که با عدم وجود سرایندها مطابقت دارند مطابقت داشته باشد. بهعنوان مثال «
{"content-type": ["text/html; charset=utf-8", "multipart/form-data"]}» -
tabId
شماره اختیاری
شناسه برگهای که درخواست فرضی در آن انجام میشود. لازم نیست با شناسه برگه واقعی مطابقت داشته باشد. پیشفرض -1 است، یعنی درخواست به برگه مربوط نیست.
-
topUrl
رشته اختیاری
Chrome نسخه ۱۴۵ و بالاترنشانی وب قاب سطح بالای مرتبط (درصورت وجود) برای درخواست.
-
نوع
نوع منبع درخواست فرضی.
-
نشانی وب
رشته
نشانی وب درخواست فرضی.
UnsupportedRegexReason
دلیل پشتیبانی نشدن عبارت باقاعده ارائهشده را شرح میدهد.
شمارشی
«syntaxError»
عبارت باقاعده ازنظر نحوی نادرست است یا از ویژگیهایی استفاده میکند که در نحو RE2 دردسترس نیست.
"memoryLimitExceeded"
عبارت باقاعده از حد مجاز حافظه فراتر رفته است.
UpdateRuleOptions
مشخصات
-
addRules
قانون[] اختیاری
قوانینی که باید اضافه شود.
-
removeRuleIds
number[] اختیاری
شناسههای قوانینی که باید برداشته شوند. شناسههای نامعتبر نادیده گرفته خواهد شد.
UpdateRulesetOptions
مشخصات
UpdateStaticRulesOptions
مشخصات
URLTransform
مشخصات
-
بخش
رشته اختیاری
قطعه جدید برای درخواست. باید خالی باشد، که در این صورت قطعه موجود پاک میشود؛ یا باید با «#» شروع شود.
-
میزبان
رشته اختیاری
میزبان جدید برای درخواست.
-
گذرواژه
رشته اختیاری
گذرواژه جدید برای درخواست.
-
مسیر
رشته اختیاری
مسیر جدید برای درخواست. اگر خالی باشد، مسیر موجود پاک میشود.
-
درگاه
رشته اختیاری
درگاه جدید برای درخواست. اگر خالی باشد، درگاه موجود پاک میشود.
-
پُرسمان
رشته اختیاری
پُرسمان جدید برای درخواست. باید خالی باشد، که در این صورت پُرسمان موجود پاک میشود؛ یا باید با «؟» شروع شود.
-
queryTransform
QueryTransform اختیاری
جفتهای کلید-مقدار پُرسمان را اضافه، حذف، یا جایگزین کنید.
-
طرحواره
رشته اختیاری
طرح جدید برای درخواست. مقادیر مجاز عبارتند از «http»، «https»، «ftp»، و «chrome-extension».
-
نام کاربری
رشته اختیاری
نام کاربری جدید برای درخواست.
مشخصات
DYNAMIC_RULESET_ID
شناسه مجموعه قوانین برای قوانین پویای اضافهشده توسط افزونه.
مقدار
"_dynamic"
GETMATCHEDRULES_QUOTA_INTERVAL
بازه زمانی که در آن میتوان تماسهای MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules را برقرار کرد، به دقیقه مشخص شده است. تماسهای دیگر بلافاصله ناموفق خواهد بود و runtime.lastError تنظیم میشود. توجه: تماسهای getMatchedRules مرتبط با اشاره کاربر از سهمیه معاف هستند.
مقدار
۱۰
GUARANTEED_MINIMUM_STATIC_RULES
حداقل تعداد قوانین ایستایی که برای افزونه در سراسر مجموعهقوانین ایستای فعال آن تضمین شده است. هر قانونی که بالاتر از این حد باشد، در حد قانون ثابت سراسری لحاظ خواهد شد.
مقدار
۳۰۰۰۰
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL
تعداد دفعاتی که میتوان getMatchedRules را در دوره GETMATCHEDRULES_QUOTA_INTERVAL فراخوانی کرد.
مقدار
20
MAX_NUMBER_OF_DYNAMIC_RULES
حداکثر تعداد قوانین پویایی که افزونه میتواند اضافه کند.
مقدار
۳۰۰۰۰
MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
حداکثر تعداد Rulesets ثابتی که افزونه میتواند در هر زمان فعال کند.
مقدار
۵۰
MAX_NUMBER_OF_REGEX_RULES
حداکثر تعداد قوانین عبارت باقاعده که افزونه میتواند اضافه کند. این محدودیت بهطور جداگانه برای مجموعه قوانین پویا و قوانین مشخصشده در فایل منابع قانون ارزیابی میشود.
مقدار
۱۰۰۰
MAX_NUMBER_OF_SESSION_RULES
حداکثر تعداد قوانین با دامنه جلسه که افزونه میتواند اضافه کند.
مقدار
۵۰۰۰
MAX_NUMBER_OF_STATIC_RULESETS
حداکثر تعداد Rulesets ثابتی که افزونه میتواند بهعنوان بخشی از کلید مانیفست "rule_resources" مشخص کند.
مقدار
۱۰۰
MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
حداکثر تعداد قوانین پویای «ناامن» که افزونه میتواند اضافه کند.
مقدار
۵۰۰۰
MAX_NUMBER_OF_UNSAFE_SESSION_RULES
حداکثر تعداد قوانین با دامنه جلسه «ناامن» که افزونه میتواند اضافه کند.
مقدار
۵۰۰۰
SESSION_RULESET_ID
شناسه مجموعه قوانین برای قوانین جلسهمحور اضافهشده توسط افزونه.
مقدار
«_session»
روشها
getAvailableStaticRuleCount()
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
callback?: function,
): Promise<number>
تعداد قوانین ثابتی را که افزونه میتواند قبلاز رسیدن به محدودیت قانون ثابت سراسری فعال کند برمیگرداند.
پارامترها
-
تماس برگشتی
تابع اختیاری
پارامتر
callbackبهصورت زیر است:(count: number) => void
-
شمارش
شماره
-
بازگشتیها
-
Promise<number>
Chrome نسخه ۹۱ به بالاPromises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
getDisabledRuleIds()
chrome.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
callback?: function,
): Promise<number[]>
فهرست قوانین ثابتی را که درحالحاضر در Ruleset دادهشده غیرفعال هستند برمیگرداند.
پارامترها
-
گزینهها
مجموعه قوانین را برای پرسمان مشخص میکند.
-
تماس برگشتی
تابع اختیاری
پارامتر
callbackبهصورت زیر است:(disabledRuleIds: number[]) => void
-
disabledRuleIds
عدد[]
-
بازگشتیها
-
Promise<number[]>
Promise که با فهرستی از شناسههای مربوط به قوانین غیرفعال در آن مجموعه قوانین حل میشود.
Promises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
getDynamicRules()
chrome.declarativeNetRequest.getDynamicRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
مجموعه فعلی قوانین پویا را برای افزونه برمیگرداند. تماسگیرندگان میتوانند بهطور اختیاری فهرست قوانین واکشیشده را با مشخص کردن filter فیلتر کنند.
پارامترها
-
فیلتر کردن
GetRulesFilter اختیاری
Chrome نسخه ۱۱۱ به بالاشیئی برای فیلتر کردن فهرست قوانین واکشیشده.
-
تماس برگشتی
تابع اختیاری
پارامتر
callbackبهصورت زیر است:(rules: Rule[]) => void
-
قوانین
قانون[]
-
بازگشتیها
-
Promise<Rule[]>
Chrome نسخه ۹۱ به بالاPromise که با مجموعه قوانین پویا حل میشود. درصورت بروز خطاهای داخلی گذرا، ممکن است Promise رد شود.
Promises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
getEnabledRulesets()
chrome.declarativeNetRequest.getEnabledRulesets(
callback?: function,
): Promise<string[]>
شناسههای مجموعه کنونی مجموعهقوانین ایستا فعال را برمیگرداند.
پارامترها
-
تماس برگشتی
تابع اختیاری
پارامتر
callbackبهصورت زیر است:(rulesetIds: string[]) => void
-
rulesetIds
string[]
-
بازگشتیها
-
Promise<string[]>
Chrome نسخه ۹۱ به بالاPromise که با فهرستی از شناسهها حل میشود، که هر شناسه با یک
Rulesetثابت فعال مطابقت دارد.Promises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
getMatchedRules()
chrome.declarativeNetRequest.getMatchedRules(
filter?: MatchedRulesFilter,
callback?: function,
): Promise<RulesMatchedDetails>
همه قوانین منطبق با افزونه را برمیگرداند. تماسگیرندگان میتوانند بهطور اختیاری فهرست قوانین منطبق را با مشخص کردن filter فیلتر کنند. این روش فقط برای افزونههایی دردسترس است که اجازه "declarativeNetRequestFeedback" را دارند یا اجازه "activeTab" برای tabId مشخصشده در filter به آنها اعطا شده است. توجه: قوانینی که با سند فعالی مرتبط نیستند و بیشاز پنج دقیقه پیش مطابقت داده شدهاند برگردانده نخواهند شد.
پارامترها
-
فیلتر کردن
MatchedRulesFilter اختیاری
شیئی برای فیلتر کردن فهرست قوانین منطبق.
-
تماس برگشتی
تابع اختیاری
پارامتر
callbackبهصورت زیر است:(details: RulesMatchedDetails) => void
-
جزئیات
-
بازگشتیها
-
Promise<RulesMatchedDetails>
Chrome نسخه ۹۱ به بالاPromise که پساز واکشی فهرست قوانین منطبق حلوفصل میشود. درصورت بروز خطا، Promise رد خواهد شد. این اتفاق ممکن است به دلایل مختلفی رخ دهد، مانند مجوزهای ناکافی یا فراتر رفتن از سهمیه.
Promises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
getSessionRules()
chrome.declarativeNetRequest.getSessionRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
مجموعه فعلی قوانین با دامنه جلسه را برای افزونه برمیگرداند. تماسگیرندگان میتوانند بهطور اختیاری فهرست قوانین واکشیشده را با مشخص کردن filter فیلتر کنند.
پارامترها
-
فیلتر کردن
GetRulesFilter اختیاری
Chrome نسخه ۱۱۱ به بالاشیئی برای فیلتر کردن فهرست قوانین واکشیشده.
-
تماس برگشتی
تابع اختیاری
پارامتر
callbackبهصورت زیر است:(rules: Rule[]) => void
-
قوانین
قانون[]
-
بازگشتیها
-
Promise<Rule[]>
Chrome نسخه ۹۱ به بالاPromise که با مجموعه قوانین جلسهمحور حل میشود.
Promises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
isRegexSupported()
chrome.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
callback?: function,
): Promise<IsRegexSupportedResult>
بررسی میکند که آیا عبارت باقاعده ارائهشده بهعنوان شرط قانون regexFilter پشتیبانی میشود یا نه.
پارامترها
-
regexOptions
عبارت باقاعده برای بررسی.
-
تماس برگشتی
تابع اختیاری
پارامتر
callbackبهصورت زیر است:(result: IsRegexSupportedResult) => void
-
نتیجه
-
بازگشتیها
-
Promise<IsRegexSupportedResult>
Chrome نسخه ۹۱ به بالاPromise که با جزئیاتی شامل اینکه آیا عبارت باقاعده پشتیبانی میشود یا نه و دلیل آن درصورت عدم پشتیبانی حل میشود.
Promises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
setExtensionActionOptions()
chrome.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
callback?: function,
): Promise<void>
پیکربندی میکند که آیا تعداد کنشهای برگهها باید بهعنوان نوشتار نشان کنش افزونه نمایش داده شود یا نه و راهی برای افزایش تعداد کنشها ارائه میدهد.
پارامترها
-
گزینهها
-
تماس برگشتی
تابع اختیاری
Chrome نسخه ۸۹ و بالاترپارامتر
callbackبهصورت زیر است:() => void
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۱ به بالاPromises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
testMatchOutcome()
chrome.declarativeNetRequest.testMatchOutcome(
request: TestMatchRequestDetails,
callback?: function,
): Promise<TestMatchOutcomeResult>
بررسی میکند که آیا هیچیک از قوانین declarativeNetRequest افزونه با درخواست فرضی مطابقت دارد یا نه. توجه: فقط برای افزونههای ازبستهبندی خارجشده دردسترس است زیرا فقط برای استفاده درطول توسعه افزونه درنظر گرفته شده است.
پارامترها
-
درخواست کردن
-
تماس برگشتی
تابع اختیاری
پارامتر
callbackبهصورت زیر است:(result: TestMatchOutcomeResult) => void
-
نتیجه
-
بازگشتیها
-
Promise<TestMatchOutcomeResult>
قولی که با جزئیات قوانین مطابقتدادهشده حل میشود.
Promises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
updateDynamicRules()
chrome.declarativeNetRequest.updateDynamicRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
مجموعه فعلی قوانین پویا را برای افزونه اصلاح میکند. قوانین با شناسههای فهرستشده در options.removeRuleIds ابتدا برداشته میشوند و سپس قوانین ارائهشده در options.addRules اضافه میشوند. نکتهها:
- این بهروزرسانی بهعنوان یک عملیات اتمی واحد انجام میشود: یا همه قوانین مشخصشده اضافه و حذف میشوند، یا خطایی برگردانده میشود.
- این قوانین در جلسههای مرورگر و بهروزرسانیهای افزونه حفظ میشوند.
- قوانین ثابتی که بهعنوان بخشی از بسته افزونه مشخص شدهاند را نمیتوان بااستفاده از این تابع حذف کرد.
MAX_NUMBER_OF_DYNAMIC_RULESحداکثر تعداد قوانین پویایی است که افزونه میتواند اضافه کند. تعداد قوانین ناامن نباید ازMAX_NUMBER_OF_UNSAFE_DYNAMIC_RULESبیشتر باشد.
پارامترها
-
گزینههاChrome نسخه ۸۷ به بالا
-
تماس برگشتی
تابع اختیاری
پارامتر
callbackبهصورت زیر است:() => void
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۱ به بالاPromise که پساز تکمیل بهروزرسانی حل میشود. درصورت بروز خطا، وعده رد خواهد شد و هیچ تغییری در مجموعه قانون ایجاد نخواهد شد. این اتفاق ممکن است بهدلایل مختلفی رخ دهد، ازجمله قالب نامعتبر قانون، شناسه قانون تکراری، فراتر رفتن از حد تعداد قانون، خطاهای داخلی، و غیره.
Promises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
updateEnabledRulesets()
chrome.declarativeNetRequest.updateEnabledRulesets(
options: UpdateRulesetOptions,
callback?: function,
): Promise<void>
مجموعه قوانین ایستا فعالشده را برای افزونه بهروز میکند. مجموعه قوانین با شناسههای فهرستشده در options.disableRulesetIds ابتدا برداشته میشوند و سپس مجموعه قوانین فهرستشده در options.enableRulesetIds اضافه میشوند.
توجه داشته باشید که مجموعه مجموعهقوانین ایستا فعالشده در جلسهها حفظ میشود اما در بهروزرسانیهای افزونه حفظ نمیشود، یعنی کلید مانیفست rule_resources مجموعه مجموعهقوانین ایستا فعالشده را در هر بهروزرسانی افزونه تعیین میکند.
پارامترها
-
گزینههاChrome نسخه ۸۷ به بالا
-
تماس برگشتی
تابع اختیاری
پارامتر
callbackبهصورت زیر است:() => void
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۱ به بالاPromise که پساز تکمیل بهروزرسانی حل میشود. درصورت بروز خطا، وعده رد خواهد شد و هیچ تغییری در مجموعه قانونهای فعالشده ایجاد نخواهد شد. این اتفاق ممکن است به دلایل متعددی رخ دهد، مانند شناسههای مجموعه قوانین نامعتبر، فراتر رفتن از حد مجاز تعداد قوانین، یا خطاهای داخلی.
Promises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
updateSessionRules()
chrome.declarativeNetRequest.updateSessionRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
مجموعه فعلی قوانین با دامنه جلسه را برای افزونه اصلاح میکند. قوانین با شناسههای فهرستشده در options.removeRuleIds ابتدا برداشته میشوند و سپس قوانین ارائهشده در options.addRules اضافه میشوند. نکتهها:
- این بهروزرسانی بهعنوان یک عملیات اتمی واحد انجام میشود: یا همه قوانین مشخصشده اضافه و حذف میشوند، یا خطایی برگردانده میشود.
- این قوانین در جلسهها حفظ نمیشوند و در حافظه پشتیبانگیری میشوند.
MAX_NUMBER_OF_SESSION_RULESحداکثر تعداد قانونهای جلسهای است که افزونه میتواند اضافه کند.
پارامترها
-
گزینهها
-
تماس برگشتی
تابع اختیاری
پارامتر
callbackبهصورت زیر است:() => void
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۱ به بالاPromise که پساز تکمیل بهروزرسانی حل میشود. درصورت بروز خطا، وعده رد خواهد شد و هیچ تغییری در مجموعه قانون ایجاد نخواهد شد. این اتفاق ممکن است به دلایل مختلفی رخ دهد، ازجمله قالب نامعتبر قانون، شناسه قانون تکراری، فراتر رفتن از حد مجاز تعداد قانون، و غیره.
Promises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
updateStaticRules()
chrome.declarativeNetRequest.updateStaticRules(
options: UpdateStaticRulesOptions,
callback?: function,
): Promise<void>
قوانین ثابت جداگانه را در Ruleset غیرفعال و فعال میکند. تغییرات در قوانین متعلق به Ruleset غیرفعالشده دفعه بعدی که فعال شود اعمال خواهد شد.
پارامترها
-
گزینهها
-
تماس برگشتی
تابع اختیاری
پارامتر
callbackبهصورت زیر است:() => void
بازگشتیها
-
Promise<void>
Promise که پساز تکمیل بهروزرسانی حل میشود. درصورت بروز خطا، وعده رد خواهد شد و هیچ تغییری در قوانین ثابت فعالشده ایجاد نخواهد شد.
Promises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
رویدادها
onRuleMatchedDebug
chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
callback: function,
)
وقتی قانونی با درخواستی مطابقت داشته باشد، فعال میشود. فقط برای افزونههای ازبستهخارجشده با اجازه "declarativeNetRequestFeedback" دردسترس است، زیرا این ویژگی فقط برای اهداف اشکالزدایی درنظر گرفته شده است.
پارامترها
-
تماس برگشتی
عملکرد
پارامتر
callbackبهصورت زیر است:(info: MatchedRuleInfoDebug) => void
-
اطلاعات
-