refresh date: 2026-09-25 robots: noindex
الوصف
تُستخدَم واجهة برمجة التطبيقات chrome.declarativeNetRequest لحظر طلبات الشبكة أو تعديلها من خلال تحديد قواعد توضيحية. يتيح ذلك للإضافات تعديل طلبات الشبكة بدون اعتراضها والاطّلاع على محتواها، ما يوفّر المزيد من الخصوصية.
الأذونات
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)
- يمكنك منع حظر طلب معيّن من خلال إلغاء أي قواعد حظر مطابقة.
- إعادة توجيه طلب شبكة
- تعديل عناوين الطلبات أو الاستجابات
هناك ثلاثة أنواع من مجموعات القواعد، وتتم إدارتها بطرق مختلفة قليلاً.
- ديناميكية
- تستمر هذه الأذونات في جلسات المتصفّح وترقيات الإضافات، وتتم إدارتها باستخدام JavaScript أثناء استخدام الإضافة.
- الجلسة
- يتم محو هذه البيانات عند إغلاق المتصفّح وعند تثبيت إصدار جديد من الإضافة. تتم إدارة قواعد الجلسات باستخدام JavaScript أثناء استخدام الإضافة.
- ثابت
- يتم تجميعها وتثبيتها وتحديثها عند تثبيت إضافة أو ترقيتها. يتم تخزين القواعد الثابتة في ملفات قواعد بتنسيق JSON ويتم إدراجها في ملف البيان.
توضّح الأقسام القليلة التالية أنواع مجموعات القواعد بالتفصيل.
مجموعات القواعد الديناميكية وعلى مستوى الجلسة
تتم إدارة مجموعات القواعد الديناميكية وقواعد الجلسات باستخدام JavaScript أثناء استخدام الإضافة.
- تستمر القواعد الديناميكية في جميع جلسات المتصفّح وترقيات الإضافات.
- يتم محو قواعد الجلسة عند إغلاق المتصفّح وعند تثبيت إصدار جديد من الإضافة.
هناك نوع واحد فقط من أنواع مجموعات القواعد هذه. ويمكن للإضافة إضافة قواعد أو إزالتها بشكل ديناميكي من خلال طلب 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" إلى أي عنوان URL يتضمّن "abc" كسلسلة فرعية.
{
"id" : 1,
"priority": 1,
"action" : { "type" : "block" },
"condition" : {
"urlFilter" : "abc",
"initiatorDomains" : ["foo.com"],
"resourceTypes" : ["script"]
}
}
الأحرف المطابقة لـ urlFilter
يسمح مفتاح "condition" للقاعدة باستخدام مفتاح "urlFilter" لتنفيذ إجراءات على عناوين URL ضمن نطاق محدّد. يمكنك إنشاء الأنماط باستخدام رموز مطابقة الأنماط. وفي ما يلي بعض الأمثلة.
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"، بالترتيب التالي:blockredirectأوupgradeSchemeallowأوallowAllRequests
في حال تطابُق أكثر من قاعدة واحدة، تكون الأولوية للإضافة التي تم تثبيتها مؤخرًا.
حدود القواعد
يؤدي تحميل القواعد وتقييمها في المتصفّح إلى زيادة عبء الأداء، لذا يتم تطبيق بعض الحدود عند استخدام واجهة برمجة التطبيقات. تعتمد الحدود على نوع القاعدة التي تستخدمها.
القواعد الثابتة
القواعد الثابتة هي تلك المحدّدة في ملفات القواعد المُعلَن عنها في ملف البيان. يمكن أن تحدّد الإضافة ما يصل إلى 50 مجموعة قواعد ثابتة كجزء من مفتاح البيان "rule_resources"، ولكن يمكن تفعيل 10 فقط من مجموعات القواعد هذه في كل مرة. ويُطلق على هذا الأخير اسم MAX_NUMBER_OF_ENABLED_STATIC_RULESETS. وبشكل جماعي، يتم ضمان 30,000 قاعدة على الأقل لمجموعات القواعد هذه. ويُعرف ذلك باسم GUARANTEED_MINIMUM_STATIC_RULES.
ويعتمد عدد القواعد المتاحة بعد ذلك على عدد القواعد المفعَّلة من خلال جميع الإضافات المثبَّتة على متصفّح المستخدم. يمكنك العثور على هذا الرقم في وقت التشغيل من خلال طلب getAvailableStaticRuleCount(). يمكنك الاطّلاع على مثال على ذلك ضمن أمثلة على الرموز.
القواعد الديناميكية وقواعد الجلسات
إنّ الحدود المطبَّقة على القواعد الديناميكية وقواعد الجلسات أبسط من القواعد الثابتة. ولا يمكن أن يتجاوز إجمالي عدد كليهما 5000. ويُعرف ذلك باسم MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES.
القواعد التي تستخدم التعبيرات النمطية
يمكن لجميع أنواع القواعد استخدام التعبيرات النمطية، ولكن لا يمكن أن يتجاوز إجمالي عدد قواعد التعبيرات النمطية من كل نوع 1000 قاعدة. ويُعرف هذا باسم MAX_NUMBER_OF_REGEX_RULES.
بالإضافة إلى ذلك، يجب أن يكون حجم كل قاعدة أقل من 2 كيلوبايت بعد تجميعها. ويرتبط هذا تقريبًا بمدى تعقيد القاعدة. إذا حاولت تحميل قاعدة تتجاوز هذا الحدّ، سيظهر لك تحذير مثل التحذير أدناه وسيتم تجاهل القاعدة.
rules_1.json: Rule with id 1 specified a more complex regex than allowed
as part of the "regexFilter" key.
التفاعلات مع مشغّلي الخدمات
لا ينطبق declarativeNetRequest إلا على الطلبات التي تصل إلى حزم الشبكات. ويشمل ذلك الردود من ذاكرة التخزين المؤقت لبروتوكول HTTP، ولكن قد لا يشمل الردود التي تمر عبر معالج onfetch الخاص بـ Service Worker. لن تؤثر واجهة declarativeNetRequest في الردود التي ينشئها مشغّل الخدمات أو التي يتم استردادها من CacheStorage، ولكنها ستؤثر في الطلبات المرسَلة إلى fetch() في مشغّل الخدمات.
الموارد التي يمكن الوصول إليها على الويب
لا يمكن لقاعدة declarativeNetRequest إعادة التوجيه من طلب مورد متاح للجميع إلى مورد لا يمكن الوصول إليه على الويب. وسيؤدي إجراء ذلك إلى ظهور خطأ. وينطبق ذلك حتى إذا كان المورد المحدّد الذي يمكن الوصول إليه على الويب مملوكًا للإضافة التي تُجري عملية إعادة التوجيه. للإعلان عن الموارد لواجهة declarativeNetRequest، استخدِم مصفوفة "web_accessible_resources" في ملف البيان.
أمثلة
أمثلة على الرموز
تعديل القواعد الديناميكية
يوضّح المثال التالي كيفية استدعاء updateDynamicRules(). وينطبق الإجراء نفسه على updateSessionRules().
// Get arrays containing new and old rules
const newRules = await getNewRules();
const oldRules = await chrome.declarativeNetRequest.getDynamicRules();
const oldRuleIds = oldRules.map(rule => rule.id);
// Use the arrays to update the dynamic rules
await chrome.declarativeNetRequest.updateDynamicRules({
removeRuleIds: oldRuleIds,
addRules: newRules
});
تعديل مجموعات القواعد الثابتة
يوضّح المثال التالي كيفية تفعيل مجموعات القواعد وإيقافها مع مراعاة عدد مجموعات القواعد الثابتة المتاحة والحد الأقصى لعدد مجموعات القواعد الثابتة المفعَّلة. يمكنك إجراء ذلك عندما يتجاوز عدد القواعد الثابتة التي تحتاج إليها العدد المسموح به. لإجراء ذلك، يجب تثبيت بعض مجموعات القواعد مع إيقاف بعضها (ضبط "Enabled" على false ضمن ملف البيان).
async function updateStaticRules(enableRulesetIds, disableCandidateIds) {
// Create the options structure for the call to updateEnabledRulesets()
let options = { enableRulesetIds: enableRulesetIds }
// Get the number of enabled static rules
const enabledStaticCount = await chrome.declarativeNetRequest.getEnabledRulesets();
// Compare rule counts to determine if anything needs to be disabled so that
// new rules can be enabled
const proposedCount = enableRulesetIds.length;
if (enabledStaticCount + proposedCount > chrome.declarativeNetRequest.MAX_NUMBER_OF_ENABLED_STATIC_RULESETS) {
options.disableRulesetIds = disableCandidateIds
}
// Update the enabled static rules
await chrome.declarativeNetRequest.updateEnabledRulesets(options);
}
أمثلة على القواعد
توضّح الأمثلة أدناه كيفية تحديد Chrome لأولوية القواعد في الإضافة. عند مراجعتها، قد تحتاج إلى فتح قواعد تحديد الأولويات في نافذة منفصلة.
مفتاح "الأولوية"
تتطلّب هذه الأمثلة إذن المضيف للوصول إلى *://*.example.com/*.
لتحديد أولوية عنوان URL معيّن، اطّلِع على المفتاح "priority" (الذي يحدّده المطوّر) والمفتاح "action" والمفتاح "urlFilter". تشير هذه الأمثلة إلى ملف القواعد النموذجي الموضّح أدناه.
- الانتقال إلى https://google.com
- تنطبق قاعدتان على عنوان URL هذا: القاعدتان اللتان تحملان المعرّفَين 1 و4. يتم تطبيق القاعدة ذات المعرّف 1 لأنّ إجراءات
"block"لها أولوية أعلى من إجراءات"redirect". ولا تنطبق القواعد المتبقية لأنّها مخصّصة لعناوين URL أطول. - الانتقال إلى https://google.com/1234
- بسبب عنوان URL الأطول، تتطابق الآن القاعدة ذات المعرّف 2 بالإضافة إلى القواعد ذات المعرّفات 1 و4. يتم تطبيق القاعدة ذات المعرّف 2 لأنّ
"allow"لها أولوية أعلى من"block"و"redirect". - الانتقال إلى https://google.com/12345
- تتطابق القواعد الأربع مع عنوان URL هذا. يتم تطبيق القاعدة ذات المعرّف 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 معرّف الإضافة. ولكي ينجح ذلك، يجب أن يحدّد البيان /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" من عنوان 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) مثل الإطار الذي نشأ فيه الطلب.
Enum
"firstParty"
يكون طلب الشبكة من الطرف الأول للإطار الذي نشأ فيه.
"thirdParty"
طلب الشبكة هو طلب من جهة خارجية للإطار الذي نشأ فيه.
ExtensionActionOptions
الخصائص
-
displayActionCountAsBadgeText
قيمة منطقية اختيارية
تحدّد هذه السياسة ما إذا كان سيتم تلقائيًا عرض عدد الإجراءات لصفحة معيّنة كنص شارة الإضافة. ويتم الاحتفاظ بهذا الإعداد المفضّل في جميع الجلسات.
-
tabUpdate
TabActionCountUpdate اختياري
الإصدار 89 من Chrome أو الإصدارات الأحدثتفاصيل حول كيفية تعديل عدد الإجراءات في علامة التبويب
GetDisabledRuleIdsOptions
الخصائص
-
rulesetId
سلسلة
رقم التعريف المقابل لـ
Rulesetثابت.
GetRulesFilter
الخصائص
-
ruleIds
number[] اختيارية
في حال تحديد هذه السمة، يتم تضمين القواعد التي تتضمّن أرقام تعريف مطابقة فقط.
HeaderInfo
الخصائص
-
excludedValues
string[] اختياري
في حال تحديد هذا الشرط، لن تتم مطابقته إذا كان العنوان متوفّرًا ولكن قيمته تحتوي على عنصر واحد على الأقل في هذه القائمة. يستخدم هذا الإعداد بنية نمط المطابقة نفسها المستخدَمة في
values. -
header
سلسلة
اسم العنوان يتطابق هذا الشرط مع الاسم فقط في حال عدم تحديد كل من
valuesوexcludedValues. -
values
string[] اختياري
في حال تحديد هذا الشرط، تتم المطابقة إذا كانت قيمة العنوان تتطابق مع نمط واحد على الأقل في هذه القائمة. يتيح ذلك مطابقة قيمة العنوان غير الحساسة لحالة الأحرف بالإضافة إلى البُنى التالية:
'*' : يطابق أي عدد من الأحرف.
'?' : يطابق صفرًا أو حرفًا واحدًا.
يمكن تخطّي الرمزين '*' و '?' باستخدام شرطة مائلة للخلف، مثل '\*' و '\?'
HeaderOperation
يصف هذا الإجراء العمليات المحتملة لقاعدة "modifyHeaders".
Enum
"append"
تضيف إدخالاً جديدًا للعنوان المحدّد. عند تعديل عناوين طلب معيّن، لا يمكن إجراء هذه العملية إلا على عناوين معيّنة.
"set"
تضبط قيمة جديدة للعنوان المحدّد، وتزيل أي عناوين حالية تحمل الاسم نفسه.
"remove"
تزيل هذه القيمة جميع الإدخالات للعنوان المحدّد.
IsRegexSupportedResult
الخصائص
-
isSupported
قيمة منطقية
-
reason
UnsupportedRegexReason اختياري
يحدّد سبب عدم توافق التعبير العادي. يتم توفيرها فقط إذا كانت قيمة
isSupportedهي "خطأ".
MatchedRule
الخصائص
-
ruleId
الرقم
معرّف قاعدة مطابقة
-
rulesetId
سلسلة
رقم تعريف
Rulesetالذي تنتمي إليه هذه القاعدة بالنسبة إلى قاعدة منشأة من مجموعة القواعد الديناميكية، ستكون هذه القيمة مساوية لـDYNAMIC_RULESET_ID.
MatchedRuleInfo
الخصائص
-
قاعدة
-
tabId
الرقم
tabId لعلامة التبويب التي نشأ منها الطلب إذا كانت علامة التبويب لا تزال نشطة وإلا، يتم عرض -1.
-
timeStamp
الرقم
الوقت الذي تمت فيه مطابقة القاعدة ستتوافق الطوابع الزمنية مع اصطلاح Javascript للأوقات، أي عدد المللي ثانية منذ تاريخ بدء حساب الفترة.
MatchedRuleInfoDebug
الخصائص
-
طلب
تفاصيل حول الطلب الذي تطابقت معه القاعدة
-
قاعدة
MatchedRulesFilter
الخصائص
-
minTimeStamp
number اختيارية
في حال تحديد هذا الحقل، لن تتم مطابقة القواعد إلا بعد الطابع الزمني المحدّد.
-
tabId
number اختيارية
في حال تحديد هذه السمة، ستتم مطابقة القواعد الخاصة بعلامة التبويب المحدّدة فقط. تتم مطابقة القواعد غير المرتبطة بأي علامة تبويب نشطة في حال ضبطها على -1.
ModifyHeaderInfo
الخصائص
-
header
سلسلة
اسم العنوان المطلوب تعديله
-
عملية
العملية التي سيتم تنفيذها على عنوان.
-
القيمة
string اختياري
القيمة الجديدة للعنوان يجب تحديد هذا الحقل لعمليات
appendوset.
QueryKeyValue
الخصائص
-
مفتاح
سلسلة
-
replaceOnly
قيمة منطقية اختيارية
الإصدار 94 من Chrome والإصدارات الأحدثإذا كانت القيمة "صحيح"، يتم استبدال مفتاح طلب البحث فقط إذا كان متوفّرًا. وإلا، تتم إضافة المفتاح أيضًا إذا كان مفقودًا. الخيار التلقائي هو "خطأ".
-
القيمة
سلسلة
QueryTransform
الخصائص
-
addOrReplaceParams
QueryKeyValue[] اختياري
قائمة أزواج المفتاح/القيمة لطلب البحث التي ستتم إضافتها أو استبدالها
-
removeParams
string[] اختياري
قائمة مفاتيح طلبات البحث المطلوب إزالتها
Redirect
الخصائص
-
extensionPath
string اختياري
المسار النسبي لدليل الإضافة يجب أن يبدأ بـ "/".
-
regexSubstitution
string اختياري
نمط الاستبدال للقواعد التي تحدّد
regexFilter. سيتم استبدال أول تطابق لـregexFilterضمن عنوان URL بهذا النمط. ضمنregexSubstitution، يمكن استخدام الأرقام التي تم تخطيها بشرطة مائلة للخلف (من \1 إلى \9) لإدراج مجموعات الالتقاط المقابلة. تشير \0 إلى النص المطابق بالكامل. -
تحويل
URLTransform اختياري
عمليات تحويل عناوين URL المطلوب تنفيذها
-
url
string اختياري
عنوان URL لإعادة التوجيه لا يُسمح بإعادة التوجيه إلى عناوين URL لـ JavaScript.
RegexOptions
الخصائص
-
isCaseSensitive
قيمة منطقية اختيارية
ما إذا كان
regexالمحدّد حسّاسًا لحالة الأحرف القيمة التلقائية هي true. -
regex
سلسلة
التعبير العادي المطلوب التحقّق منه
-
requireCapturing
قيمة منطقية اختيارية
ما إذا كان
regexالمحدّد يتطلّب التقاطه لا يلزم التقاط البيانات إلا لقواعد إعادة التوجيه التي تحدّد إجراءregexSubstition. وتكون القيمة التلقائية مضبوطة على false.
RequestDetails
الخصائص
-
documentId
string اختياري
الإصدار 106 من Chrome والإصدارات الأحدثالمعرّف الفريد لمستند الإطار، إذا كان هذا الطلب مخصّصًا لإطار.
-
documentLifecycle
DocumentLifecycle اختيارية
الإصدار 106 من Chrome والإصدارات الأحدثتمثّل هذه السمة مراحل النشاط لمستند الإطار، إذا كان هذا الطلب مخصّصًا لإطار.
-
frameId
الرقم
تشير القيمة 0 إلى أنّ الطلب يحدث في الإطار الرئيسي، بينما تشير القيمة الموجبة إلى رقم تعريف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند إطار (فرعي) (
typeهوmain_frameأوsub_frame)، يشيرframeIdإلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. تكون معرّفات الإطارات فريدة ضمن علامة تبويب معيّنة. -
frameType
FrameType اختيارية
الإصدار 106 من Chrome والإصدارات الأحدثنوع الإطار، إذا كان هذا الطلب مخصّصًا لإطار.
-
أداة البدء
string اختياري
المصدر الذي تم بدء الطلب منه ولا يتغيّر هذا من خلال عمليات إعادة التوجيه. إذا كان هذا المصدر غير واضح، سيتم استخدام السلسلة "null".
-
method
سلسلة
طريقة HTTP عادية
-
parentDocumentId
string اختياري
الإصدار 106 من Chrome والإصدارات الأحدثالمعرّف الفريد للمستند الرئيسي للإطار، إذا كان هذا الطلب مخصّصًا لإطار وله مستند رئيسي.
-
parentFrameId
الرقم
رقم تعريف الإطار الذي يلتف حول الإطار الذي أرسل الطلب يتم ضبطها على -1 في حال عدم توفّر إطار رئيسي.
-
requestId
سلسلة
رقم تعريف الطلب تكون أرقام تعريف الطلبات فريدة ضمن جلسة المتصفّح.
-
tabId
الرقم
رقم تعريف علامة التبويب التي يتم فيها الطلب يتم ضبطها على -1 إذا لم يكن الطلب مرتبطًا بعلامة تبويب.
-
النوع
نوع المورد في الطلب
-
url
سلسلة
عنوان URL للطلب
RequestMethod
يصف هذا الحقل طريقة طلب HTTP لطلب شبكة.
Enum
"connect"
"delete"
"get"
"head"
"options"
"patch"
"post"
"put"
"other"
ResourceType
يصف هذا الحقل نوع المورد لطلب الشبكة.
Enum
"main_frame"
"sub_frame"
"stylesheet"
"script"
"image"
"font"
"object"
"xmlhttprequest"
"ping"
"csp_report"
"media"
"websocket"
"webtransport"
"webbundle"
"other"
Rule
الخصائص
-
إجراء
الإجراء الذي يجب اتّخاذه في حال تطابق هذه القاعدة
-
الشرط
الشرط الذي يتم بموجبه تفعيل هذه القاعدة.
-
id
الرقم
معرّف يحدّد قاعدة بشكل فريد. سمة إلزامية ويجب أن تكون قيمتها أكبر من أو تساوي 1.
-
الحملة
number اختيارية
أولوية القاعدة يكون الإعداد التلقائي بالقيمة 1. عند تحديد هذه السمة، يجب أن تكون قيمتها أكبر من أو تساوي 1.
RuleAction
الخصائص
-
إعادة توجيه
إعادة التوجيه اختياري
تصف هذه السمة كيفية تنفيذ عملية إعادة التوجيه. هذه السمة صالحة لقواعد إعادة التوجيه فقط.
-
requestHeaders
ModifyHeaderInfo[] اختيارية
الإصدار 86 من Chrome والإصدارات الأحدثعناوين الطلب التي يجب تعديلها للطلب. لا تكون صالحة إلا إذا كانت قيمة RuleActionType هي "modifyHeaders".
-
responseHeaders
ModifyHeaderInfo[] اختيارية
الإصدار 86 من Chrome والإصدارات الأحدثعناوين الاستجابة التي يجب تعديلها للطلب لا تكون صالحة إلا إذا كانت قيمة RuleActionType هي "modifyHeaders".
-
النوع
نوع الإجراء المطلوب تنفيذه
RuleActionType
يصف نوع الإجراء الذي يجب اتّخاذه في حال تطابق RuleCondition معيّن.
Enum
"block"
لحظر طلب الشبكة
"redirect"
لإعادة توجيه طلب الشبكة
"allow"
للسماح بطلب الشبكة لن يتم اعتراض الطلب إذا كانت هناك قاعدة سماح تتطابق معه.
"upgradeScheme"
يتمّ ترقية نظام عنوان URL لطلب الشبكة إلى https إذا كان الطلب http أو ftp.
"modifyHeaders"
تعديل عناوين الطلبات أو عناوين الاستجابات من طلب الشبكة
"allowAllRequests"
يسمح بجميع الطلبات ضمن التسلسل الهرمي للإطار، بما في ذلك طلب الإطار نفسه.
RuleCondition
الخصائص
-
domainType
DomainType اختياري
تحدّد ما إذا كان طلب الشبكة تابعًا للطرف الأول أو لجهة خارجية بالنسبة إلى النطاق الذي نشأ منه. في حال حذف هذه المَعلمة، يتم قبول جميع الطلبات.
-
النطاقات
string[] اختياري
تم إيقافها نهائيًا منذ الإصدار 101 من Chromeاستخدام
initiatorDomainsكبديلستطابق القاعدة طلبات الشبكة الواردة من قائمة
domainsفقط. -
excludedDomains
string[] اختياري
تم إيقافها نهائيًا منذ الإصدار 101 من Chromeاستخدام
excludedInitiatorDomainsكبديللن تطابق القاعدة طلبات الشبكة الواردة من قائمة
excludedDomains. -
excludedInitiatorDomains
string[] اختياري
الإصدار 101 من Chrome والإصدارات الأحدثلن تطابق القاعدة طلبات الشبكة الواردة من قائمة
excludedInitiatorDomains. وإذا كانت القائمة فارغة أو تم حذفها، لن يتم استبعاد أي نطاقات. وتكون لهذا الإعداد الأولوية علىinitiatorDomains.ملاحظات:
- يُسمح أيضًا بالنطاقات الفرعية، مثل "a.example.com".
- يجب أن تتكوّن الإدخالات من أحرف ASCII فقط.
- استخدِم ترميز punycode للنطاقات الدولية.
- تتم مطابقة هذا مع مُرسِل الطلب وليس عنوان URL للطلب.
- ويتم أيضًا استبعاد النطاقات الفرعية للنطاقات المُدرَجة.
-
excludedRequestDomains
string[] اختياري
الإصدار 101 من Chrome والإصدارات الأحدثلن تطابق القاعدة طلبات الشبكة عندما تتطابق النطاقات مع أحد النطاقات من قائمة
excludedRequestDomains. وإذا كانت القائمة فارغة أو تم حذفها، لن يتم استبعاد أي نطاقات. وتكون لهذا الإعداد الأولوية علىrequestDomains.ملاحظات:
- يُسمح أيضًا بالنطاقات الفرعية، مثل "a.example.com".
- يجب أن تتكوّن الإدخالات من أحرف ASCII فقط.
- استخدِم ترميز punycode للنطاقات الدولية.
- ويتم أيضًا استبعاد النطاقات الفرعية للنطاقات المُدرَجة.
-
excludedRequestMethods
RequestMethod[] اختيارية
الإصدار 91 من Chrome والإصدارات الأحدثقائمة بطرق الطلب التي لن تتطابق مع القاعدة يجب تحديد سمة واحدة فقط من
requestMethodsوexcludedRequestMethods. وفي حال عدم تحديد أيّ منهما، تتم مطابقة جميع طرق الطلب. -
excludedResourceTypes
ResourceType[] اختيارية
قائمة بأنواع الموارد التي لن تتطابق مع القاعدة يجب تحديد سمة واحدة فقط من
resourceTypesوexcludedResourceTypes. وفي حال عدم تحديد أي منهما، يتم حظر جميع أنواع الموارد باستثناء "main_frame". -
excludedResponseHeaders
HeaderInfo[] اختيارية
الإصدار 128 من Chrome والإصدارات الأحدثلا تتطابق القاعدة إذا كان الطلب يتطابق مع أي شرط من شروط عنوان الاستجابة في هذه القائمة (إذا تم تحديدها). إذا تم تحديد كل من
excludedResponseHeadersوresponseHeaders، ستكون الأولوية للسمةexcludedResponseHeaders. -
excludedTabIds
number[] اختيارية
الإصدار 92 من Chrome والإصدارات الأحدثقائمة
tabs.Tab.idالتي يجب ألا تتطابق مع القاعدة يستبعد المعرّفtabs.TAB_ID_NONEالطلبات التي لا تنشأ من علامة تبويب. لا تتوفّر هذه الميزة إلا للقواعد على مستوى الجلسة. -
excludedTopDomains
string[] اختياري
الإصدار 145 من Chrome والإصدارات الأحدثلن تتطابق القاعدة مع طلبات الشبكة عندما يتطابق نطاق الإطار ذي المستوى الأعلى المرتبط بها مع أحد النطاقات من قائمة
excludedTopDomains. وإذا كانت القائمة فارغة أو تم حذفها، لن يتم استبعاد أي نطاقات. وتكون لهذا الإعداد الأولوية علىtopDomains.ملاحظات:
- يُسمح أيضًا بالنطاقات الفرعية، مثل "a.example.com".
- يجب أن تتكوّن الإدخالات من أحرف ASCII فقط.
- استخدِم ترميز punycode للنطاقات الدولية.
- ويتم أيضًا استبعاد النطاقات الفرعية للنطاقات المُدرَجة.
- بالنسبة إلى الطلبات التي لا تتضمّن إطارًا مرتبطًا بالمستوى الأعلى (مثل الطلبات التي تبدأها ميزة ServiceWorker)، يتم استخدام نطاق مُرسِل الطلب بدلاً من ذلك.
-
initiatorDomains
string[] اختياري
الإصدار 101 من Chrome والإصدارات الأحدثستطابق القاعدة طلبات الشبكة الواردة من قائمة
initiatorDomainsفقط. وفي حال حذف القائمة، يتم تطبيق القاعدة على الطلبات الواردة من جميع النطاقات. لا يُسمح بقائمة فارغة.ملاحظات:
- يُسمح أيضًا بالنطاقات الفرعية، مثل "a.example.com".
- يجب أن تتكوّن الإدخالات من أحرف ASCII فقط.
- استخدِم ترميز punycode للنطاقات الدولية.
- تتم مطابقة هذا مع مُرسِل الطلب وليس عنوان URL للطلب.
- تتم أيضًا مطابقة النطاقات الفرعية للنطاقات المُدرَجة.
-
isUrlFilterCaseSensitive
قيمة منطقية اختيارية
ما إذا كانت السمة
urlFilterأوregexFilter(أيهما تم تحديده) حساسة لحالة الأحرف. القيمة التلقائية هي false. -
regexFilter
string اختياري
تعبير عادي لمطابقة عنوان URL لطلب الشبكة يتّبع ذلك بنية RE2.
ملاحظة: يمكن تحديد سمة واحدة فقط من
urlFilterأوregexFilter.ملاحظة: يجب أن يتكوّن
regexFilterمن أحرف ASCII فقط. تتم مطابقة هذا النمط مع عنوان URL يكون فيه المضيف مرمّزًا بتنسيق punycode (في حال النطاقات الدولية) وأي أحرف أخرى غير ASCII مرمّزة بتنسيق عنوان URL في UTF-8. -
requestDomains
string[] اختياري
الإصدار 101 من Chrome والإصدارات الأحدثلن تطابق القاعدة طلبات الشبكة إلا عندما يتطابق النطاق مع أحد النطاقات من قائمة
requestDomains. وفي حال حذف القائمة، يتم تطبيق القاعدة على الطلبات الواردة من جميع النطاقات. لا يُسمح بقائمة فارغة.ملاحظات:
- يُسمح أيضًا بالنطاقات الفرعية، مثل "a.example.com".
- يجب أن تتكوّن الإدخالات من أحرف ASCII فقط.
- استخدِم ترميز punycode للنطاقات الدولية.
- تتم أيضًا مطابقة النطاقات الفرعية للنطاقات المُدرَجة.
-
requestMethods
RequestMethod[] اختيارية
الإصدار 91 من Chrome والإصدارات الأحدثقائمة بطُرق طلبات HTTP التي يمكن أن تتطابق مع القاعدة لا يُسمح بقائمة فارغة.
ملاحظة: سيؤدي تحديد شرط قاعدة
requestMethodsأيضًا إلى استبعاد الطلبات غير المستندة إلى HTTP(s)، في حين أنّ تحديدexcludedRequestMethodsلن يؤدي إلى ذلك. -
resourceTypes
ResourceType[] اختيارية
قائمة بأنواع الموارد التي يمكن أن تتطابق مع القاعدة لا يُسمح بقائمة فارغة.
ملاحظة: يجب تحديد ذلك لقواعد
allowAllRequests، ويمكن أن يتضمّن نوعَي المواردsub_frameوmain_frameفقط. -
responseHeaders
HeaderInfo[] اختيارية
الإصدار 128 من Chrome والإصدارات الأحدثتتم مطابقة القاعدة إذا تطابق الطلب مع أي شرط من شروط عنوان الاستجابة في هذه القائمة (إذا تم تحديده).
-
tabIds
number[] اختيارية
الإصدار 92 من Chrome والإصدارات الأحدثقائمة
tabs.Tab.idالتي يجب أن تتطابق مع القاعدة يتطابق معرّفtabs.TAB_ID_NONEمع الطلبات التي لا تنشأ من علامة تبويب. لا يُسمح بقائمة فارغة. لا تتوفّر هذه الميزة إلا للقواعد على مستوى الجلسة. -
topDomains
string[] اختياري
الإصدار 145 من Chrome والإصدارات الأحدثستطابق القاعدة طلبات الشبكة فقط عندما يتطابق نطاق الإطار ذي المستوى الأعلى المرتبط مع أحد النطاقات من قائمة
topDomains. في حال حذف القائمة، يتم تطبيق القاعدة على الطلبات المرتبطة بجميع نطاقات الإطارات ذات المستوى الأعلى. لا يُسمح بقائمة فارغة.ملاحظات:
- يُسمح أيضًا بالنطاقات الفرعية، مثل "a.example.com".
- يجب أن تتكوّن الإدخالات من أحرف ASCII فقط.
- استخدِم ترميز punycode للنطاقات الدولية.
- تتم أيضًا مطابقة النطاقات الفرعية للنطاقات المُدرَجة.
- بالنسبة إلى الطلبات التي لا تتضمّن إطارًا مرتبطًا بالمستوى الأعلى (مثل الطلبات التي تبدأها ميزة ServiceWorker)، يتم استخدام نطاق مُرسِل الطلب بدلاً من ذلك.
-
urlFilter
string اختياري
النمط الذي تتم مطابقته مع عنوان URL لطلب الشبكة. التركيبات المتوافقة:
'*' : حرف بدل: يطابق أي عدد من الأحرف.
'|' : علامة الارتساء اليسرى/اليمنى: إذا تم استخدامها في أي من طرفي النمط، فإنها تحدد بداية/نهاية عنوان URL على التوالي.
'||' : علامة ارتساء اسم النطاق: في حال استخدامها في بداية النمط، تحدّد بداية نطاق (فرعي) لعنوان URL.
'^' : رمز الفاصل: يتطابق مع أي شيء باستثناء حرف أو رقم أو أحد الرموز التالية:
_أو-أو.أو%. يتطابق هذا أيضًا مع نهاية عنوان URL.لذلك، يتكوّن
urlFilterمن الأجزاء التالية: (مُثبِّت اسم النطاق/الجهة اليسرى الاختياري) + النمط + (مُثبِّت الجهة اليمنى الاختياري).وفي حال حذفها، تتم مطابقة جميع عناوين URL. لا يُسمح بسلسلة فارغة.
لا يُسمح بنمط يبدأ بـ
||*. يمكنك استخدام*كبديل.ملاحظة: يمكن تحديد سمة واحدة فقط من
urlFilterأوregexFilter.ملاحظة: يجب أن يتكوّن
urlFilterمن أحرف ASCII فقط. تتم مطابقة هذا النمط مع عنوان URL يكون فيه المضيف مرمّزًا بتنسيق punycode (في حال النطاقات الدولية) وأي أحرف أخرى غير ASCII مرمّزة بتنسيق عنوان URL في UTF-8. على سبيل المثال، عندما يكون عنوان URL للطلب هو http://abc.рф?q=ф، ستتم مطابقةurlFilterمع عنوان URL http://abc.xn--p1ai/?q=%D1%84.
RuleConditionKeys
Enum
"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
الخصائص
-
أداة البدء
string اختياري
عنوان URL الخاص بالمشغِّل (إن توفّر) للطلب الافتراضي
-
method
RequestMethod اختيارية
طريقة HTTP العادية للطلب الافتراضي يتم ضبط القيمة التلقائية على "get" لطلبات HTTP ويتم تجاهلها للطلبات غير المستندة إلى HTTP.
-
responseHeaders
object اختياري
الإصدار 129 من Chrome والإصدارات الأحدثالعناوين التي يوفّرها ردّ افتراضي في حال لم يتم حظر الطلب أو إعادة توجيهه قبل إرساله. يتم تمثيلها كعنصر يربط اسم العنوان بقائمة من القيم النصية. وفي حال عدم تحديدها، ستعرض الاستجابة الافتراضية عناوين استجابة فارغة، والتي يمكن أن تتطابق مع القواعد التي تتطابق مع عدم وجود العناوين. مثلاً
{"content-type": ["text/html; charset=utf-8", "multipart/form-data"]} -
tabId
number اختيارية
رقم تعريف علامة التبويب التي يتم فيها الطلب الافتراضي ولا يلزم أن يتوافق مع معرّف علامة تبويب حقيقي. القيمة التلقائية هي -1، ما يعني أنّ الطلب غير مرتبط بعلامة تبويب.
-
topUrl
string اختياري
الإصدار 145 من Chrome والإصدارات الأحدثعنوان URL لإطار المستوى الأعلى المرتبط بالطلب (إن وُجد)
-
النوع
نوع المورد للطلب الافتراضي
-
url
سلسلة
عنوان URL للطلب الافتراضي
UnsupportedRegexReason
يصف سبب عدم توافق تعبير عادي معيّن.
Enum
"syntaxError"
التعبير العادي غير صحيح من الناحية النحوية، أو يستخدم ميزات غير متاحة في بنية RE2.
"memoryLimitExceeded"
يتجاوز التعبير العادي الحدّ الأقصى للذاكرة.
UpdateRuleOptions
الخصائص
-
addRules
Rule[] اختيارية
القواعد المطلوب إضافتها
-
removeRuleIds
number[] اختيارية
أرقام تعريف القواعد المطلوب إزالتها سيتم تجاهل أي أرقام تعريف غير صالحة.
UpdateRulesetOptions
الخصائص
UpdateStaticRulesOptions
الخصائص
URLTransform
الخصائص
-
جزء
string اختياري
تمثّل هذه السمة الجزء الجديد للطلب. يجب أن يكون هذا الحقل فارغًا، وفي هذه الحالة يتم محو الجزء الحالي، أو يجب أن يبدأ بعلامة "#".
-
مضيف
string اختياري
المضيف الجديد للطلب
-
كلمة المرور
string اختياري
كلمة المرور الجديدة للطلب
-
المسار
string اختياري
المسار الجديد للطلب إذا كان فارغًا، يتم محو المسار الحالي.
-
المنفذ
string اختياري
المنفذ الجديد للطلب وإذا كان فارغًا، يتم محو المنفذ الحالي.
-
query
string اختياري
طلب البحث الجديد للطلب يجب أن يكون فارغًا، وفي هذه الحالة يتم محو طلب البحث الحالي، أو يجب أن يبدأ بعلامة "؟".
-
queryTransform
QueryTransform اختياري
إضافة أزواج المفتاح/القيمة لطلب البحث أو إزالتها أو استبدالها
-
المخطط
string اختياري
تمثّل هذه السمة المخطط الجديد للطلب. القيم المسموح بها هي "http" و"https" و"ftp" و "chrome-extension".
-
اسم المستخدم
string اختياري
اسم المستخدم الجديد للطلب
الخصائص
DYNAMIC_RULESET_ID
رقم تعريف مجموعة القواعد الديناميكية التي تضيفها الإضافة
القيمة
"_dynamic"
GETMATCHEDRULES_QUOTA_INTERVAL
الفاصل الزمني الذي يمكن خلاله إجراء مكالمات "MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules"، ويتم تحديده بالدقائق. ستتعذّر الطلبات الإضافية على الفور وسيتم ضبط runtime.lastError. ملاحظة: لا تخضع طلبات getMatchedRules المرتبطة بإجراء تفاعلي من المستخدم للحصة.
القيمة
10
GUARANTEED_MINIMUM_STATIC_RULES
الحد الأدنى لعدد القواعد الثابتة المضمونة لإضافة معيّنة في مجموعات القواعد الثابتة المفعَّلة وسيتم احتساب أي قواعد تتجاوز هذا الحدّ ضمن الحدّ الأقصى العام للقواعد الثابتة.
القيمة
30000
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL
عدد المرات التي يمكن فيها استدعاء getMatchedRules خلال فترة زمنية تبلغ GETMATCHEDRULES_QUOTA_INTERVAL.
القيمة
20
MAX_NUMBER_OF_DYNAMIC_RULES
الحد الأقصى لعدد القواعد الديناميكية التي يمكن أن تضيفها الإضافة.
القيمة
30000
MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
الحد الأقصى لعدد Rulesets الثابتة التي يمكن للإضافة تفعيلها في أي وقت
القيمة
50
MAX_NUMBER_OF_REGEX_RULES
الحد الأقصى لعدد قواعد التعبير العادي التي يمكن أن تضيفها الإضافة. يتم تقييم هذا الحدّ بشكل منفصل لمجموعة القواعد الديناميكية وتلك المحدّدة في ملف موارد القواعد.
القيمة
1000
MAX_NUMBER_OF_SESSION_RULES
الحد الأقصى لعدد القواعد على مستوى الجلسة التي يمكن أن تضيفها الإضافة.
القيمة
5000
MAX_NUMBER_OF_STATIC_RULESETS
الحد الأقصى لعدد Rulesets الثابتة التي يمكن أن تحدّدها الإضافة كجزء من مفتاح البيان "rule_resources".
القيمة
100
MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
الحد الأقصى لعدد القواعد الديناميكية "غير الآمنة" التي يمكن أن تضيفها الإضافة.
القيمة
5000
MAX_NUMBER_OF_UNSAFE_SESSION_RULES
الحد الأقصى لعدد القواعد "غير الآمنة" على مستوى الجلسة التي يمكن أن تضيفها الإضافة.
القيمة
5000
SESSION_RULESET_ID
رقم تعريف مجموعة القواعد على مستوى الجلسة التي تضيفها الإضافة.
القيمة
"_session"
الطُرق
getAvailableStaticRuleCount()
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
callback?: function,
): Promise<number>
تعرض هذه الطريقة عدد القواعد الثابتة التي يمكن أن تفعّلها الإضافة قبل بلوغ الحدّ الأقصى العام للقواعد الثابتة.
المعلمات
-
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:(count: number) => void
-
الحركات
الرقم
-
المرتجعات
-
<number>
الإصدار 91 من Chrome والإصدارات الأحدثلا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
getDisabledRuleIds()
chrome.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
callback?: function,
): Promise<number[]>
تعرض هذه الطريقة قائمة بالقواعد الثابتة في Ruleset المحدّد والتي تم إيقافها حاليًا.
المعلمات
-
الخيارات
يحدّد مجموعة القواعد المطلوب الاستعلام عنها.
-
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:(disabledRuleIds: number[]) => void
-
disabledRuleIds
number[]
-
المرتجعات
-
Promise<number[]>
وعد يتم حله بقائمة من أرقام التعريف التي تتوافق مع القواعد غير المفعَّلة في مجموعة القواعد هذه.
لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
getDynamicRules()
chrome.declarativeNetRequest.getDynamicRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
تعرض هذه الطريقة المجموعة الحالية من القواعد الديناميكية للإضافة. يمكن للمتصلين فلترة قائمة القواعد التي تم جلبها من خلال تحديد filter.
المعلمات
-
تصفية
GetRulesFilter اختياري
الإصدار 111 من Chrome والإصدارات الأحدثتمثّل هذه السمة عنصرًا لفلترة قائمة القواعد التي تم جلبها.
-
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:(rules: Rule[]) => void
-
القواعد
القاعدة[]
-
المرتجعات
-
Promise<Rule[]>
الإصدار 91 من Chrome والإصدارات الأحدثوعد يتم حلّه باستخدام مجموعة القواعد الديناميكية قد يتم رفض Promise في حال حدوث أخطاء داخلية عابرة.
لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
getEnabledRulesets()
chrome.declarativeNetRequest.getEnabledRulesets(
callback?: function,
): Promise<string[]>
تعرض هذه الطريقة أرقام تعريف المجموعة الحالية من مجموعات القواعد الثابتة المفعَّلة.
المعلمات
-
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:(rulesetIds: string[]) => void
-
rulesetIds
string[]
-
المرتجعات
-
وعد<سلسلة نصية[]>
الإصدار 91 من Chrome والإصدارات الأحدثوعد يتم حله بقائمة من المعرّفات، حيث يتوافق كل معرّف مع
Rulesetثابت مفعَّل.لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
getMatchedRules()
chrome.declarativeNetRequest.getMatchedRules(
filter?: MatchedRulesFilter,
callback?: function,
): Promise<RulesMatchedDetails>
تعرض هذه الطريقة جميع القواعد المطابقة للإضافة. يمكن للمتصلين اختياريًا فلترة قائمة القواعد المطابقة من خلال تحديد filter. لا تتوفّر هذه الطريقة إلا للإضافات التي تملك إذن "declarativeNetRequestFeedback" أو التي تم منحها إذن "activeTab" لـ tabId المحدّد في filter. ملاحظة: لن يتم عرض القواعد غير المرتبطة بمستند نشط والتي تمت مطابقتها قبل أكثر من خمس دقائق.
المعلمات
-
تصفية
MatchedRulesFilter اختياري
عنصر لفلترة قائمة القواعد المطابقة
-
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:(details: RulesMatchedDetails) => void
-
التفاصيل
-
المرتجعات
-
Promise<RulesMatchedDetails>
الإصدار 91 من Chrome والإصدارات الأحدثوعد يتم حلّه بعد جلب قائمة القواعد المطابقة. في حال حدوث خطأ، سيتم رفض Promise. قد يحدث ذلك لعدة أسباب، مثل عدم كفاية الأذونات أو تجاوز الحصة.
لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
getSessionRules()
chrome.declarativeNetRequest.getSessionRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
تعرض هذه الطريقة مجموعة القواعد الحالية على مستوى الجلسة للإضافة. يمكن للمتصلين فلترة قائمة القواعد التي تم جلبها من خلال تحديد filter.
المعلمات
-
تصفية
GetRulesFilter اختياري
الإصدار 111 من Chrome والإصدارات الأحدثتمثّل هذه السمة عنصرًا لفلترة قائمة القواعد التي تم جلبها.
-
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:(rules: Rule[]) => void
-
القواعد
القاعدة[]
-
المرتجعات
-
Promise<Rule[]>
الإصدار 91 من Chrome والإصدارات الأحدثوعد يتم حلّه باستخدام مجموعة القواعد على مستوى الجلسة
لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
isRegexSupported()
chrome.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
callback?: function,
): Promise<IsRegexSupportedResult>
يتحقّق هذا الإجراء مما إذا كان التعبير العادي المحدّد سيتم استخدامه كشرط لقاعدة regexFilter.
المعلمات
-
regexOptions
التعبير العادي المطلوب التحقّق منه
-
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:(result: IsRegexSupportedResult) => void
-
نتيجة
-
المرتجعات
-
Promise<IsRegexSupportedResult>
الإصدار 91 من Chrome والإصدارات الأحدثوعد يتم حله بتفاصيل تتألف مما إذا كان التعبير العادي متوافقًا والسبب في حال عدم توافقه.
لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
setExtensionActionOptions()
chrome.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
callback?: function,
): Promise<void>
تحدّد هذه السياسة ما إذا كان يجب عرض عدد الإجراءات لعلامات التبويب كنص شارة لإجراء الإضافة، وتوفّر طريقة لزيادة عدد الإجراءات.
المعلمات
-
الخيارات
-
callback
function اختياري
الإصدار 89 من Chrome أو الإصدارات الأحدثتظهر المَعلمة
callbackعلى النحو التالي:() => void
المرتجعات
-
وعد<فراغ>
الإصدار 91 من Chrome والإصدارات الأحدثلا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
testMatchOutcome()
chrome.declarativeNetRequest.testMatchOutcome(
request: TestMatchRequestDetails,
callback?: function,
): Promise<TestMatchOutcomeResult>
يتحقّق هذا الإجراء مما إذا كانت أي من قواعد declarativeNetRequest الخاصة بالإضافة ستتطابق مع طلب افتراضي. ملاحظة: لا تتوفّر هذه الميزة إلا للإضافات غير المضغوطة، لأنّها مخصّصة للاستخدام أثناء تطوير الإضافات فقط.
المعلمات
-
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:(result: TestMatchOutcomeResult) => void
-
نتيجة
-
المرتجعات
-
Promise<TestMatchOutcomeResult>
وعد يتم حله من خلال تفاصيل القواعد المطابقة
لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
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.
المعلمات
-
الخياراتالإصدار 87 من Chrome أو الإصدارات الأحدث
-
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:() => void
المرتجعات
-
وعد<فراغ>
الإصدار 91 من Chrome والإصدارات الأحدثوعد يتم حلّه بعد اكتمال التحديث. في حال حدوث خطأ، سيتم رفض الوعد ولن يتم إجراء أي تغيير على مجموعة القواعد. يمكن أن يحدث ذلك لعدة أسباب، مثل تنسيق القاعدة غير الصالح، ورقم تعريف القاعدة المكرّر، وتجاوز الحدّ الأقصى لعدد القواعد، والأخطاء الداخلية، وغيرها.
لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
updateEnabledRulesets()
chrome.declarativeNetRequest.updateEnabledRulesets(
options: UpdateRulesetOptions,
callback?: function,
): Promise<void>
تعديل مجموعة القواعد الثابتة المفعَّلة للإضافة تتم أولاً إزالة مجموعات القواعد التي تتضمّن أرقام التعريف المدرَجة في options.disableRulesetIds، ثم تتم إضافة مجموعات القواعد المدرَجة في options.enableRulesetIds.
يُرجى العِلم أنّ مجموعة مجموعات القواعد الثابتة المفعَّلة يتم الاحتفاظ بها على مستوى الجلسات ولكن ليس على مستوى تحديثات الإضافات، أي أنّ مفتاح البيان rule_resources سيحدّد مجموعة مجموعات القواعد الثابتة المفعَّلة في كل تحديث للإضافة.
المعلمات
-
الخياراتالإصدار 87 من Chrome أو الإصدارات الأحدث
-
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:() => void
المرتجعات
-
وعد<فراغ>
الإصدار 91 من Chrome والإصدارات الأحدثوعد يتم حلّه بعد اكتمال التحديث. في حال حدوث خطأ، سيتم رفض الوعد ولن يتم إجراء أي تغيير على مجموعة القواعد المفعَّلة. يمكن أن يحدث ذلك لعدة أسباب، مثل أرقام تعريف مجموعات القواعد غير الصالحة أو تجاوز الحد الأقصى لعدد القواعد أو الأخطاء الداخلية.
لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
updateSessionRules()
chrome.declarativeNetRequest.updateSessionRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
تعديل المجموعة الحالية من القواعد على مستوى الجلسة للإضافة تتم أولاً إزالة القواعد التي تتضمّن أرقام التعريف المدرَجة في options.removeRuleIds، ثم تتم إضافة القواعد المحدّدة في options.addRules. ملاحظات:
- يتم إجراء هذا التعديل كعملية ذرية واحدة: إما أن تتم إضافة جميع القواعد المحدّدة وإزالتها، أو يتم عرض رسالة خطأ.
- لا يتم الاحتفاظ بهذه القواعد في جميع الجلسات ويتم الاحتفاظ بنسخة احتياطية منها في الذاكرة.
MAX_NUMBER_OF_SESSION_RULESهو الحد الأقصى لعدد قواعد الجلسات التي يمكن أن تضيفها الإضافة.
المعلمات
-
الخيارات
-
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:() => void
المرتجعات
-
وعد<فراغ>
الإصدار 91 من Chrome والإصدارات الأحدثوعد يتم حلّه بعد اكتمال التحديث. في حال حدوث خطأ، سيتم رفض الوعد ولن يتم إجراء أي تغيير على مجموعة القواعد. يمكن أن يحدث ذلك لأسباب متعددة، مثل تنسيق القاعدة غير الصالح، ومعرّف القاعدة المكرّر، وتجاوز الحد الأقصى لعدد القواعد، وغيرها.
لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
updateStaticRules()
chrome.declarativeNetRequest.updateStaticRules(
options: UpdateStaticRulesOptions,
callback?: function,
): Promise<void>
يؤدي هذا الإجراء إلى إيقاف القواعد الثابتة الفردية وتفعيلها في Ruleset. ستسري التغييرات على القواعد التي تنتمي إلى Ruleset غير مفعَّل في المرة التالية التي يتم فيها تفعيله.
المعلمات
-
الخيارات
-
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:() => void
المرتجعات
-
وعد<فراغ>
وعد يتم حله عند اكتمال التحديث. في حال حدوث خطأ، سيتم رفض الوعد ولن يتم إجراء أي تغيير على القواعد الثابتة المفعَّلة.
لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
الفعاليات
onRuleMatchedDebug
chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
callback: function,
)
يتم تنشيطه عند مطابقة قاعدة مع طلب. لا تتوفّر هذه الميزة إلا للإضافات غير المجمّعة التي تتضمّن الإذن "declarativeNetRequestFeedback"، لأنّها مخصّصة لأغراض تصحيح الأخطاء فقط.
المعلمات
-
callback
دالة
تظهر المَعلمة
callbackعلى النحو التالي:(info: MatchedRuleInfoDebug) => void
-
معلومات
-