chrome.declarativeNetRequest

refresh date: 2026-09-25 robots: noindex

الوصف

تُستخدَم واجهة برمجة التطبيقات chrome.declarativeNetRequest لحظر طلبات الشبكة أو تعديلها من خلال تحديد قواعد توضيحية. يتيح ذلك للإضافات تعديل طلبات الشبكة بدون اعتراضها والاطّلاع على محتواها، ما يوفّر المزيد من الخصوصية.

الأذونات

declarativeNetRequest
declarativeNetRequestWithHostAccess

declarativeNetRequestFeedback
host_permissions

مدى التوفّر

الإصدار 84 من Chrome والإصدارات الأحدث

البيان

بالإضافة إلى الأذونات الموضّحة أعلاه، تتطلّب أنواع معيّنة من مجموعات القواعد، وتحديدًا مجموعات القواعد الثابتة، الإفصاح عن مفتاح البيان "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

تحديد أولوية القواعد

يتم تفعيل القواعد من خلال الطلبات المُرسَلة من صفحات الويب. إذا تطابقت قواعد متعدّدة مع طلب معيّن، يجب تحديد أولويات القواعد. ويوضّح هذا القسم كيفية تحديد أولوياتها. يتم تحديد الأولويات على مرحلتَين.

  1. يتم تحديد الأولوية للقواعد ضمن الإضافة.
  2. إذا كان بإمكان أكثر من إضافة تطبيق قاعدة على طلب معيّن، يتم تحديد الأولوية لجميع الإضافات التي تتطابق مع هذا الطلب.

يمكنك التفكير في المطابقة بهذه الطريقة: أي قاعدة تمنحها إضافة معيّنة الأولوية ستكون لها الأولوية على قواعد الإضافات الأخرى.

تحديد أولوية القواعد ضمن الإضافة

ضمن إضافة واحدة، يتم تحديد الأولوية باستخدام العملية التالية:

  1. يتم عرض القاعدة ذات الأولوية الأعلى التي حدّدها المطوّر (أي الحقل "priority").
  2. إذا كانت هناك أكثر من قاعدة واحدة ذات الأولوية الأعلى التي حدّدها المطوّر، يتم تحديد أولوية القواعد باستخدام الحقل "action" بالترتيب التالي:

    1. allow
    2. allowAllRequests
    3. block
    4. upgradeScheme
    5. redirect
  3. إذا لم يكن نوع الإجراء block أو redirect، يتم تقييم أي قواعد modifyHeaders مطابقة. يُرجى العِلم أنّه في حال توفّر أي قواعد ذات أولوية يحدّدها المطوّر أقل من الأولوية المحدّدة لـ allow وallowAllRequests، يتم تجاهل هذه القواعد.

  4. إذا كانت هناك قواعد متعددة تعدّل العنوان نفسه، يتم تحديد التعديل من خلال الحقل "priority" الذي يحدّده المطوّر والعمليات المحدّدة.

    • إذا كانت القاعدة تضيف إلى عنوان، لا يمكن للقواعد ذات الأولوية الأقل إلا الإضافة إلى هذا العنوان. لا يُسمح بعمليات الضبط والإزالة.
    • إذا ضبطت قاعدة عنوانًا، يمكن للقواعد ذات الأولوية الأقل إلحاق هذا العنوان فقط. ولا يُسمح بإجراء أي تعديلات أخرى.
    • إذا أزالت قاعدة معيّنة عنوانًا، لن تتمكّن القواعد ذات الأولوية الأقل من تعديل العنوان بشكل أكبر.

تحديد أولوية القواعد بين الإضافات

إذا كانت هناك إضافة واحدة فقط تحتوي على قاعدة تتطابق مع طلب معيّن، يتم تطبيق هذه القاعدة. ولكن إذا تطابقت أكثر من إضافة مع طلب، يتم استخدام العملية التالية:

  1. يتم تحديد أولوية القواعد باستخدام الحقل "action"، بالترتيب التالي:

    1. block
    2. redirect أو upgradeScheme
    3. allow أو allowAllRequests
  2. في حال تطابُق أكثر من قاعدة واحدة، تكون الأولوية للإضافة التي تم تثبيتها مؤخرًا.

حدود القواعد

يؤدي تحميل القواعد وتقييمها في المتصفّح إلى زيادة عبء الأداء، لذا يتم تطبيق بعض الحدود عند استخدام واجهة برمجة التطبيقات. تعتمد الحدود على نوع القاعدة التي تستخدمها.

القواعد الثابتة

القواعد الثابتة هي تلك المحدّدة في ملفات القواعد المُعلَن عنها في ملف البيان. يمكن أن تحدّد الإضافة ما يصل إلى 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

الإصدار 88 من Chrome أو الإصدارات الأحدث

الخصائص

  • displayActionCountAsBadgeText

    قيمة منطقية اختيارية

    تحدّد هذه السياسة ما إذا كان سيتم تلقائيًا عرض عدد الإجراءات لصفحة معيّنة كنص شارة الإضافة. ويتم الاحتفاظ بهذا الإعداد المفضّل في جميع الجلسات.

  • tabUpdate

    ‫TabActionCountUpdate اختياري

    الإصدار 89 من Chrome أو الإصدارات الأحدث

    تفاصيل حول كيفية تعديل عدد الإجراءات في علامة التبويب

GetDisabledRuleIdsOptions

الإصدار 111 من Chrome والإصدارات الأحدث

الخصائص

  • rulesetId

    سلسلة

    رقم التعريف المقابل لـ Ruleset ثابت.

GetRulesFilter

الإصدار 111 من Chrome والإصدارات الأحدث

الخصائص

  • ruleIds

    number[] اختيارية

    في حال تحديد هذه السمة، يتم تضمين القواعد التي تتضمّن أرقام تعريف مطابقة فقط.

HeaderInfo

الإصدار 128 من Chrome والإصدارات الأحدث

الخصائص

  • excludedValues

    string[] اختياري

    في حال تحديد هذا الشرط، لن تتم مطابقته إذا كان العنوان متوفّرًا ولكن قيمته تحتوي على عنصر واحد على الأقل في هذه القائمة. يستخدم هذا الإعداد بنية نمط المطابقة نفسها المستخدَمة في values.

  • header

    سلسلة

    اسم العنوان يتطابق هذا الشرط مع الاسم فقط في حال عدم تحديد كل من values وexcludedValues.

  • values

    string[] اختياري

    في حال تحديد هذا الشرط، تتم المطابقة إذا كانت قيمة العنوان تتطابق مع نمط واحد على الأقل في هذه القائمة. يتيح ذلك مطابقة قيمة العنوان غير الحساسة لحالة الأحرف بالإضافة إلى البُنى التالية:

    '*' : يطابق أي عدد من الأحرف.

    '?' : يطابق صفرًا أو حرفًا واحدًا.

    يمكن تخطّي الرمزين '*' و '?' باستخدام شرطة مائلة للخلف، مثل '\*' و '\?'

HeaderOperation

الإصدار 86 من Chrome والإصدارات الأحدث

يصف هذا الإجراء العمليات المحتملة لقاعدة "modifyHeaders".

Enum

"append"
تضيف إدخالاً جديدًا للعنوان المحدّد. عند تعديل عناوين طلب معيّن، لا يمكن إجراء هذه العملية إلا على عناوين معيّنة.

"set"
تضبط قيمة جديدة للعنوان المحدّد، وتزيل أي عناوين حالية تحمل الاسم نفسه.

"remove"
تزيل هذه القيمة جميع الإدخالات للعنوان المحدّد.

IsRegexSupportedResult

الإصدار 87 من Chrome أو الإصدارات الأحدث

الخصائص

  • 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

الإصدار 86 من Chrome والإصدارات الأحدث

الخصائص

  • 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

الإصدار 87 من Chrome أو الإصدارات الأحدث

الخصائص

  • 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

الإصدار 91 من Chrome والإصدارات الأحدث

يصف هذا الحقل طريقة طلب 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

الإصدار 145 من Chrome والإصدارات الأحدث

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

الإصدار 89 من Chrome أو الإصدارات الأحدث

الخصائص

  • زيادة

    الرقم

    مقدار زيادة عدد إجراءات علامة التبويب. ستؤدي القيم السالبة إلى تقليل العدد.

  • tabId

    الرقم

    علامة التبويب التي تريد تعديل عدد الإجراءات فيها

TestMatchOutcomeResult

الإصدار 103 من Chrome أو الإصدارات الأحدث

الخصائص

  • matchedRules

    القواعد (إن وُجدت) التي تتطابق مع الطلب الافتراضي

TestMatchRequestDetails

الإصدار 103 من Chrome أو الإصدارات الأحدث

الخصائص

  • أداة البدء

    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

الإصدار 87 من Chrome أو الإصدارات الأحدث

يصف سبب عدم توافق تعبير عادي معيّن.

Enum

"syntaxError"
التعبير العادي غير صحيح من الناحية النحوية، أو يستخدم ميزات غير متاحة في بنية RE2.

"memoryLimitExceeded"
يتجاوز التعبير العادي الحدّ الأقصى للذاكرة.

UpdateRuleOptions

الإصدار 87 من Chrome أو الإصدارات الأحدث

الخصائص

  • addRules

    Rule[] اختيارية

    القواعد المطلوب إضافتها

  • removeRuleIds

    number[] اختيارية

    أرقام تعريف القواعد المطلوب إزالتها سيتم تجاهل أي أرقام تعريف غير صالحة.

UpdateRulesetOptions

الإصدار 87 من Chrome أو الإصدارات الأحدث

الخصائص

  • disableRulesetIds

    string[] اختياري

    مجموعة أرقام التعريف المقابلة لـ Ruleset ثابتة يجب إيقافها

  • enableRulesetIds

    string[] اختياري

    مجموعة أرقام التعريف المقابلة لـ Ruleset ثابتة يجب تفعيلها

UpdateStaticRulesOptions

الإصدار 111 من Chrome والإصدارات الأحدث

الخصائص

  • disableRuleIds

    number[] اختيارية

    مجموعة من أرقام التعريف التي تتوافق مع القواعد في Ruleset المطلوب إيقافها

  • enableRuleIds

    number[] اختيارية

    مجموعة من أرقام التعريف المقابلة للقواعد في Ruleset المطلوب تفعيلها

  • rulesetId

    سلسلة

    رقم التعريف المقابل لـ Ruleset ثابت.

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

الإصدار 89 من Chrome أو الإصدارات الأحدث

الحد الأدنى لعدد القواعد الثابتة المضمونة لإضافة معيّنة في مجموعات القواعد الثابتة المفعَّلة وسيتم احتساب أي قواعد تتجاوز هذا الحدّ ضمن الحدّ الأقصى العام للقواعد الثابتة.

القيمة

30000

MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL

عدد المرات التي يمكن فيها استدعاء getMatchedRules خلال فترة زمنية تبلغ GETMATCHEDRULES_QUOTA_INTERVAL.

القيمة

20

MAX_NUMBER_OF_DYNAMIC_RULES

الحد الأقصى لعدد القواعد الديناميكية التي يمكن أن تضيفها الإضافة.

القيمة

30000

MAX_NUMBER_OF_ENABLED_STATIC_RULESETS

الإصدار 94 من Chrome والإصدارات الأحدث

الحد الأقصى لعدد Rulesets الثابتة التي يمكن للإضافة تفعيلها في أي وقت

القيمة

50

MAX_NUMBER_OF_REGEX_RULES

الحد الأقصى لعدد قواعد التعبير العادي التي يمكن أن تضيفها الإضافة. يتم تقييم هذا الحدّ بشكل منفصل لمجموعة القواعد الديناميكية وتلك المحدّدة في ملف موارد القواعد.

القيمة

1000

MAX_NUMBER_OF_SESSION_RULES

الإصدار 120 من Chrome والإصدارات الأحدث

الحد الأقصى لعدد القواعد على مستوى الجلسة التي يمكن أن تضيفها الإضافة.

القيمة

5000

MAX_NUMBER_OF_STATIC_RULESETS

الحد الأقصى لعدد Rulesets الثابتة التي يمكن أن تحدّدها الإضافة كجزء من مفتاح البيان "rule_resources".

القيمة

100

MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES

الإصدار 120 من Chrome والإصدارات الأحدث

الحد الأقصى لعدد القواعد الديناميكية "غير الآمنة" التي يمكن أن تضيفها الإضافة.

القيمة

5000

MAX_NUMBER_OF_UNSAFE_SESSION_RULES

الإصدار 120 من Chrome والإصدارات الأحدث

الحد الأقصى لعدد القواعد "غير الآمنة" على مستوى الجلسة التي يمكن أن تضيفها الإضافة.

القيمة

5000

SESSION_RULESET_ID

الإصدار 90 من Chrome أو الإصدارات الأحدث

رقم تعريف مجموعة القواعد على مستوى الجلسة التي تضيفها الإضافة.

القيمة

"_session"

الطُرق

getAvailableStaticRuleCount()

Promise الإصدار 89 من Chrome والإصدارات الأحدث
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
  callback?: function,
)
: Promise<number>

تعرض هذه الطريقة عدد القواعد الثابتة التي يمكن أن تفعّلها الإضافة قبل بلوغ الحدّ الأقصى العام للقواعد الثابتة.

المعلمات

  • callback

    function اختياري

    تظهر المَعلمة callback على النحو التالي:

    (count: number) => void

    • الحركات

      الرقم

المرتجعات

  • <number>

    الإصدار 91 من Chrome والإصدارات الأحدث

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.

getDisabledRuleIds()

Promise الإصدار 111 من Chrome والإصدارات الأحدث
chrome.declarativeNetRequest.getDisabledRuleIds(
  options: GetDisabledRuleIdsOptions,
  callback?: function,
)
: Promise<number[]>

تعرض هذه الطريقة قائمة بالقواعد الثابتة في Ruleset المحدّد والتي تم إيقافها حاليًا.

المعلمات

  • الخيارات

    يحدّد مجموعة القواعد المطلوب الاستعلام عنها.

  • callback

    function اختياري

    تظهر المَعلمة callback على النحو التالي:

    (disabledRuleIds: number[]) => void

    • disabledRuleIds

      number[]

المرتجعات

  • Promise<number[]>

    وعد يتم حله بقائمة من أرقام التعريف التي تتوافق مع القواعد غير المفعَّلة في مجموعة القواعد هذه.

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.

getDynamicRules()

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

Promise
chrome.declarativeNetRequest.getEnabledRulesets(
  callback?: function,
)
: Promise<string[]>

تعرض هذه الطريقة أرقام تعريف المجموعة الحالية من مجموعات القواعد الثابتة المفعَّلة.

المعلمات

  • callback

    function اختياري

    تظهر المَعلمة callback على النحو التالي:

    (rulesetIds: string[]) => void

    • rulesetIds

      string[]

المرتجعات

  • وعد<سلسلة نصية[]>

    الإصدار 91 من Chrome والإصدارات الأحدث

    وعد يتم حله بقائمة من المعرّفات، حيث يتوافق كل معرّف مع Ruleset ثابت مفعَّل.

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.

getMatchedRules()

Promise
chrome.declarativeNetRequest.getMatchedRules(
  filter?: MatchedRulesFilter,
  callback?: function,
)
: Promise<RulesMatchedDetails>

تعرض هذه الطريقة جميع القواعد المطابقة للإضافة. يمكن للمتصلين اختياريًا فلترة قائمة القواعد المطابقة من خلال تحديد filter. لا تتوفّر هذه الطريقة إلا للإضافات التي تملك إذن "declarativeNetRequestFeedback" أو التي تم منحها إذن "activeTab" لـ tabId المحدّد في filter. ملاحظة: لن يتم عرض القواعد غير المرتبطة بمستند نشط والتي تمت مطابقتها قبل أكثر من خمس دقائق.

المعلمات

  • تصفية

    MatchedRulesFilter اختياري

    عنصر لفلترة قائمة القواعد المطابقة

  • callback

    function اختياري

    تظهر المَعلمة callback على النحو التالي:

    (details: RulesMatchedDetails) => void

المرتجعات

  • الإصدار 91 من Chrome والإصدارات الأحدث

    وعد يتم حلّه بعد جلب قائمة القواعد المطابقة. في حال حدوث خطأ، سيتم رفض Promise. قد يحدث ذلك لعدة أسباب، مثل عدم كفاية الأذونات أو تجاوز الحصة.

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.

getSessionRules()

Promise الإصدار 90 من Chrome والإصدارات الأحدث
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()

Promise الإصدار 87 من Chrome والإصدارات الأحدث
chrome.declarativeNetRequest.isRegexSupported(
  regexOptions: RegexOptions,
  callback?: function,
)
: Promise<IsRegexSupportedResult>

يتحقّق هذا الإجراء مما إذا كان التعبير العادي المحدّد سيتم استخدامه كشرط لقاعدة regexFilter.

المعلمات

المرتجعات

  • الإصدار 91 من Chrome والإصدارات الأحدث

    وعد يتم حله بتفاصيل تتألف مما إذا كان التعبير العادي متوافقًا والسبب في حال عدم توافقه.

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.

setExtensionActionOptions()

Promise الإصدار 88 من Chrome والإصدارات الأحدث
chrome.declarativeNetRequest.setExtensionActionOptions(
  options: ExtensionActionOptions,
  callback?: function,
)
: Promise<void>

تحدّد هذه السياسة ما إذا كان يجب عرض عدد الإجراءات لعلامات التبويب كنص شارة لإجراء الإضافة، وتوفّر طريقة لزيادة عدد الإجراءات.

المعلمات

  • الخيارات
  • callback

    function اختياري

    الإصدار 89 من Chrome أو الإصدارات الأحدث

    تظهر المَعلمة callback على النحو التالي:

    () => void

المرتجعات

  • وعد<فراغ>

    الإصدار 91 من Chrome والإصدارات الأحدث

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.

testMatchOutcome()

Promise الإصدار 103 من Chrome والإصدارات الأحدث
chrome.declarativeNetRequest.testMatchOutcome(
  request: TestMatchRequestDetails,
  callback?: function,
)
: Promise<TestMatchOutcomeResult>

يتحقّق هذا الإجراء مما إذا كانت أي من قواعد declarativeNetRequest الخاصة بالإضافة ستتطابق مع طلب افتراضي. ملاحظة: لا تتوفّر هذه الميزة إلا للإضافات غير المضغوطة، لأنّها مخصّصة للاستخدام أثناء تطوير الإضافات فقط.

المعلمات

المرتجعات

  • وعد يتم حله من خلال تفاصيل القواعد المطابقة

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.

updateDynamicRules()

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

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

Promise الإصدار 90 من Chrome والإصدارات الأحدث
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()

Promise الإصدار 111 من Chrome والإصدارات الأحدث
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"، لأنّها مخصّصة لأغراض تصحيح الأخطاء فقط.

المعلمات