chrome.webRequest

refresh date: 2026-09-25 robots: noindex

الوصف

استخدِم واجهة برمجة التطبيقات chrome.webRequest لمراقبة عدد الزيارات وتحليله واعتراض الطلبات أو حظرها أو تعديلها أثناء نقلها.

الأذونات

webRequest

البيان

يجب الإفصاح عن إذن "webRequest" في ملف بيان الإضافة لاستخدام واجهة برمجة التطبيقات لطلب الويب، بالإضافة إلى أذونات المضيف اللازمة. لاعتراض طلب مورد فرعي، يجب أن يكون لدى الإضافة إذن الوصول إلى كل من عنوان URL المطلوب ومُنشئه. على سبيل المثال:

{
  "name": "My extension",
  ...
  "permissions": [
    "webRequest"
  ],
  "host_permissions": [
    "*://*.google.com/*"
  ],
  ...
}

اعتبارًا من الإصدار 108 من Chrome، يمكنك تقديم بيانات الاعتماد بشكل غير متزامن لأحداث onAuthRequired إذا كنت تستخدم الإذنَين "webRequest" و"webRequestAuthProvider".

دورة حياة الطلبات

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

يتم توضيح دورة حياة الحدث للطلبات الناجحة هنا، متبوعة بتعريفات الأحداث:

دورة حياة طلب الويب من منظور واجهة برمجة التطبيقات webrequest

‫onBeforeRequest (متزامن اختياريًا)
يتم تشغيل هذا الحدث عندما يكون الطلب على وشك الحدوث. يتم إرسال هذا الحدث قبل إجراء أي اتصال عبر بروتوكول TCP ويمكن استخدامه لإلغاء الطلبات أو إعادة توجيهها.
‫onBeforeSendHeaders (متزامن اختياريًا)
يتم تفعيل هذا الحدث عندما يكون الطلب على وشك الحدوث وتكون العناوين الأولية قد تم إعدادها. يهدف الحدث إلى السماح للإضافات بإضافة عناوين الطلبات وتعديلها وحذفها (*). يتم تمرير الحدث onBeforeSendHeaders إلى جميع المشتركين، لذا قد يحاول مشتركون مختلفون تعديل الطلب. يمكنك الاطّلاع على قسم تفاصيل التنفيذ لمعرفة كيفية التعامل مع ذلك. يمكن استخدام هذا الحدث لإلغاء الطلب.
onSendHeaders
يتم تشغيل هذا الحدث بعد أن تتاح الفرصة لجميع الإضافات لتعديل عناوين الطلبات، ويعرض الإصدار النهائي (*). يتم تشغيل الحدث قبل إرسال العناوين إلى الشبكة. هذا الحدث هو حدث إعلامي ويتم التعامل معه بشكل غير متزامن. ولا يسمح بتعديل الطلب أو إلغائه.
‫onHeadersReceived (متزامن اختياريًا)
يتم تفعيل هذا الحدث في كل مرة يتم فيها تلقّي عنوان استجابة HTTP(S). بسبب عمليات إعادة التوجيه وطلبات المصادقة، يمكن أن يحدث ذلك عدة مرات لكل طلب. يهدف هذا الحدث إلى السماح للإضافات بإضافة عناوين الاستجابة وتعديلها وحذفها، مثل عناوين Content-Type الواردة. تتم معالجة توجيهات التخزين المؤقت قبل بدء هذا الحدث، لذا فإن تعديل العناوين مثل Cache-Control ليس له أي تأثير على ذاكرة التخزين المؤقت للمتصفح. ويسمح لك أيضًا بإلغاء الطلب أو إعادة توجيهه.
‫onAuthRequired (متزامن اختياريًا)
يتم تشغيل هذا الحدث عندما يتطلّب الطلب مصادقة المستخدم. يمكن معالجة هذا الحدث بشكل متزامن لتقديم بيانات اعتماد المصادقة. يُرجى العِلم أنّ الإضافات قد تقدّم بيانات اعتماد غير صالحة. يُرجى الحرص على عدم الدخول في حلقة لا نهائية من خلال تقديم بيانات اعتماد غير صالحة بشكل متكرر. ويمكن أيضًا استخدام هذا الإجراء لإلغاء الطلب.
onBeforeRedirect
يتم تشغيل هذا الحدث عندما تكون عملية إعادة التوجيه على وشك التنفيذ. يمكن أن يتم تشغيل إعادة التوجيه من خلال رمز استجابة HTTP أو من خلال إضافة. هذا الحدث مخصّص لتقديم المعلومات ويتم التعامل معه بشكل غير متزامن. ولا يسمح لك بتعديل الطلب أو إلغائه.
onResponseStarted
يتم تشغيل هذا الحدث عند تلقّي البايت الأول من نص الاستجابة. بالنسبة إلى طلبات HTTP، يعني ذلك أنّ سطر الحالة وعناوين الاستجابة متاحة. هذا الحدث مخصّص لتقديم المعلومات ويتم التعامل معه بشكل غير متزامن. ولا يسمح بتعديل الطلب أو إلغائه.
onCompleted
يتم تفعيله عند معالجة طلب بنجاح.
onErrorOccurred
يتم تفعيل هذا الحدث عندما يتعذّر تنفيذ طلب بنجاح.

تضمن واجهة برمجة التطبيقات لطلبات الويب أنّه لكل طلب، يتم تشغيل onCompleted أو onErrorOccurred كحدث نهائي باستثناء واحد: إذا تمت إعادة توجيه طلب إلى عنوان URL data://، يكون onBeforeRedirect هو آخر حدث تم الإبلاغ عنه.

* يُرجى العِلم أنّ واجهة برمجة التطبيقات لطلبات الويب تقدّم تجريدًا لحزمة الشبكة إلى الإضافة. داخليًا، يمكن تقسيم طلب عنوان URL واحد إلى عدة طلبات HTTP (على سبيل المثال، لجلب نطاقات بايت فردية من ملف كبير) أو يمكن معالجته من خلال حزمة الشبكة بدون التواصل مع الشبكة. لهذا السبب، لا توفّر واجهة برمجة التطبيقات عناوين HTTP النهائية التي يتم إرسالها إلى الشبكة. على سبيل المثال، تكون جميع العناوين المرتبطة بالتخزين المؤقت غير مرئية للإضافة.

لا يتم حاليًا توفير العناوين التالية للحدث onBeforeSendHeaders. لا نضمن أن تكون هذه القائمة كاملة أو ثابتة.

  • التفويض
  • Cache-Control
  • الاتصال
  • Content-Length
  • المضيف
  • If-Modified-Since
  • If-None-Match
  • If-Range
  • Partial-Data
  • Pragma
  • Proxy-Authorization
  • Proxy-Connection
  • Transfer-Encoding

بدءًا من الإصدار 79 من Chrome، تؤثر تعديلات عناوين الطلبات في عمليات التحقّق من "مشاركة الموارد المتعدّدة المصادر" (CORS). إذا لم تستوفِ العناوين المعدَّلة للطلبات المتعدّدة المصادر المعايير، سيؤدي ذلك إلى إرسال طلب مبدئي لبروتوكول CORS لسؤال الخادم عمّا إذا كان يمكن قبول هذه العناوين. إذا كنت بحاجة فعلاً إلى تعديل العناوين بطريقة تنتهك بروتوكول CORS، عليك تحديد 'extraHeaders' في opt_extraInfoSpec. من ناحية أخرى، لا تنجح تعديلات عناوين الاستجابة في خداع عمليات التحقّق من CORS. إذا كنت بحاجة إلى خداع بروتوكول CORS، عليك أيضًا تحديد 'extraHeaders' لتعديلات الاستجابة.

اعتبارًا من الإصدار 79 من Chrome، لا تعترض واجهة برمجة التطبيقات webRequest طلبات واستجابات التحقّق من CORS تلقائيًا. يظهر الطلب المبدئي لبروتوكول مشاركة الموارد المشتركة المنشأ (CORS) لعنوان URL الخاص بالطلب في الإضافة إذا كان هناك مستمع تم تحديد 'extraHeaders' له في opt_extraInfoSpec لعنوان URL الخاص بالطلب. يمكن أن يستغرق onBeforeRequest أيضًا 'extraHeaders' من Chrome 79.

اعتبارًا من الإصدار 79 من Chrome، لا يتم توفير عنوان الطلب التالي ولا يمكن تعديله أو إزالته بدون تحديد 'extraHeaders' في opt_extraInfoSpec:

  • الأصل

بدءًا من الإصدار 72 من Chrome، إذا كنت بحاجة إلى تعديل الردود قبل أن تحظرها ميزة حظر القراءة من مصادر متعددة (CORB)، عليك تحديد 'extraHeaders' في opt_extraInfoSpec.

اعتبارًا من الإصدار 72 من Chrome، لا يتم توفير عناوين الطلبات التالية ولا يمكن تعديلها أو إزالتها بدون تحديد 'extraHeaders' في opt_extraInfoSpec:

  • Accept-Language
  • Accept-Encoding
  • المُحيل
  • ملف تعريف الارتباط

اعتبارًا من الإصدار 72 من Chrome، لا يتم توفير عنوان الاستجابة Set-Cookie ولا يمكن تعديله أو إزالته بدون تحديد 'extraHeaders' في opt_extraInfoSpec.

اعتبارًا من الإصدار 89 من Chrome، لا يمكن تعديل عنوان الاستجابة X-Frame-Options أو إزالته بشكل فعّال بدون تحديد 'extraHeaders' في opt_extraInfoSpec.

لا تعرض واجهة برمجة التطبيقات webRequest إلا الطلبات التي تملك الإضافة الإذن بالاطّلاع عليها، وذلك وفقًا لأذونات المضيف. علاوةً على ذلك، لا يمكن الوصول إلا إلى المخططات التالية: http:// أو https:// أو ftp:// أو file:// أو ws:// (منذ الإصدار 58 من Chrome) أو wss:// (منذ الإصدار 58 من Chrome) أو urn: (منذ الإصدار 91 من Chrome) أو chrome-extension://. بالإضافة إلى ذلك، يتم إخفاء بعض الطلبات التي تتضمّن عناوين URL تستخدم أحد المخططات المذكورة أعلاه. وتشمل هذه الطلبات chrome-extension://other_extension_id حيث لا يكون other_extension_id هو رقم تعريف الإضافة لمعالجة الطلب، وhttps://www.google.com/chrome، والطلبات الحسّاسة الأخرى الأساسية لوظائف المتصفّح. يتم أيضًا إخفاء طلبات XMLHttpRequests المتزامنة من الإضافة عن معالِجات الأحداث التي تحظر الطلبات لتجنُّب حدوث حالات توقُّف تام. يُرجى العِلم أنّه بالنسبة إلى بعض المخططات المتوافقة، قد تكون مجموعة الأحداث المتاحة محدودة بسبب طبيعة البروتوكول المقابل. على سبيل المثال، بالنسبة إلى المخطط file: ‎، يمكن إرسال onBeforeRequest وonResponseStarted وonCompleted وonErrorOccurred فقط.

بدءًا من الإصدار 58 من Chrome، تتيح واجهة برمجة التطبيقات webRequest API اعتراض طلب تأكيد الاتصال بخادم WebSocket. بما أنّ عملية تأكيد الاتصال تتم من خلال طلب ترقية HTTP، فإنّ تدفقها يتناسب مع نموذج webRequest المستند إلى HTTP. يُرجى العِلم أنّ واجهة برمجة التطبيقات لا تعترض ما يلي:

  • الرسائل الفردية التي يتم إرسالها عبر اتصال WebSocket تم إنشاؤه
  • جارٍ إغلاق اتصال WebSocket.

لا يمكن إعادة توجيه طلبات WebSocket.

اعتبارًا من الإصدار 72 من Chrome، ستتمكّن الإضافة من اعتراض طلب فقط إذا كانت لديها أذونات المضيف لكل من عنوان URL المطلوب ومُرسِل الطلب.

اعتبارًا من الإصدار 96 من Chrome، تتيح واجهة webRequest API اعتراض طلب تأكيد الاتصال عبر WebTransport من خلال HTTP/3. بما أنّ عملية تأكيد الاتصال تتم من خلال طلب HTTP CONNECT، فإنّ تدفقها يتناسب مع نموذج webRequest المستند إلى HTTP. ملاحظات:

  • بعد إنشاء الجلسة، لا يمكن للإضافات مراقبة الجلسة أو التدخل فيها من خلال واجهة webRequest API.
  • يتم تجاهل تعديل عناوين طلبات HTTP في onBeforeSendHeaders.
  • لا تتوفّر عمليات إعادة التوجيه والمصادقة في WebTransport عبر HTTP/3.

المفاهيم

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

معرّفات الطلبات

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

تسجيل متتبِّعات الأحداث

لتسجيل متتبِّع أحداث لطلب ويب، يمكنك استخدام صيغة مختلفة من الدالة addListener() المعتادة. بالإضافة إلى تحديد دالّة رد الاتصال، عليك تحديد وسيطة فلتر، ويمكنك تحديد وسيطة معلومات إضافية اختيارية.

في ما يلي تعريفات الوسيطات الثلاث لـ addListener() في Web Request API:

var callback = function(details) {...};
var filter = {...};
var opt_extraInfoSpec = [...];

في ما يلي مثال على الاستماع إلى الحدث onBeforeRequest:

chrome.webRequest.onBeforeRequest.addListener(
    callback, filter, opt_extraInfoSpec);

يتطلب كل طلب addListener() دالة رد اتصال إلزامية كمعلَمة أولى. يتم تمرير دالّة رد الاتصال هذه إلى قاموس يحتوي على معلومات حول طلب عنوان URL الحالي. تعتمد المعلومات الواردة في هذا القاموس على نوع الحدث المحدّد ومحتوى opt_extraInfoSpec.

إذا كانت مصفوفة opt_extraInfoSpec الاختيارية تحتوي على السلسلة 'blocking' (مسموح بها فقط لأحداث معيّنة)، يتم التعامل مع دالّة رد الاتصال بشكل متزامن. وهذا يعني أنّه يتم حظر الطلب إلى أن تعرض دالّة رد الاتصال القيمة. في هذه الحالة، يمكن أن تعرض دالة الاستدعاء webRequest.BlockingResponse يحدّد دورة حياة الطلب الإضافية. بناءً على السياق، يسمح هذا الردّ بإلغاء طلب أو إعادة توجيهه (onBeforeRequest)، أو إلغاء طلب أو تعديل العناوين (onBeforeSendHeaders وonHeadersReceived)، أو إلغاء طلب أو تقديم بيانات اعتماد المصادقة (onAuthRequired).

If the optional opt_extraInfoSpec array contains the string 'asyncBlocking' instead (only allowed for onAuthRequired), the extension can generate the webRequest.BlockingResponse asynchronously.

تتيح السمة webRequest.RequestFilter filter الحد من الطلبات التي يتم تشغيل الأحداث لها في سمات مختلفة:

عناوين URL
أنماط عناوين URL مثل *://www.google.com/foo*bar
الأنواع
أنواع الطلبات، مثل main_frame (مستند يتم تحميله لإطار ذي مستوى أعلى) وsub_frame (مستند يتم تحميله لإطار مضمّن) وimage (صورة على موقع إلكتروني). يمكنك الاطّلاع على webRequest.RequestFilter.
رقم تعريف علامة التبويب
معرّف علامة تبويب واحدة
رقم تعريف النافذة
معرّف النافذة

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

تفاصيل التنفيذ

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

web_accessible_resources

عندما تستخدم إضافة واجهات برمجة تطبيقات webRequest لإعادة توجيه طلب وصول إلى مورد عام إلى مورد لا يمكن الوصول إليه على الويب، يتم حظر الطلب وسيؤدي ذلك إلى حدوث خطأ. ينطبق ما سبق حتى إذا كان المورد الذي لا يمكن الوصول إليه على الويب مملوكًا للإضافة التي تُجري عملية إعادة التوجيه. للإعلان عن الموارد التي سيتم استخدامها مع واجهات برمجة التطبيقات declarativeWebRequest، يجب الإعلان عن مصفوفة "web_accessible_resources" وتعبئتها في ملف البيان كما هو موضّح هنا.

حل النزاعات

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

التخزين المؤقت

يستخدم Chrome نوعَين من ذاكرة التخزين المؤقت: ذاكرة التخزين المؤقت على القرص وذاكرة التخزين المؤقت السريعة جدًا في الذاكرة. ترتبط مدة صلاحية ذاكرة التخزين المؤقت في الذاكرة بمدة صلاحية عملية العرض، والتي تتوافق تقريبًا مع علامة تبويب. إنّ الطلبات التي يتم الردّ عليها من ذاكرة التخزين المؤقت في الذاكرة تكون غير مرئية لواجهة برمجة التطبيقات لطلبات الويب. إذا غيّر معالج الطلبات سلوكه (على سبيل المثال، السلوك الذي يتم بموجبه حظر الطلبات)، قد لا تلتزم عملية إعادة تحميل الصفحة البسيطة بهذا السلوك الذي تم تغييره. لضمان تطبيق التغيير في السلوك، يمكنك استدعاء handlerBehaviorChanged() لإفراغ ذاكرة التخزين المؤقت في الذاكرة. ولكن لا تفعل ذلك كثيرًا، لأنّ تفريغ ذاكرة التخزين المؤقت عملية مكلفة للغاية. ليس عليك استدعاء handlerBehaviorChanged() بعد تسجيل متتبِّع أحداث أو إلغاء تسجيله.

الطوابع الزمنية

يتم ضمان اتساق السمة timestamp لأحداث طلبات الويب داخليًا فقط. ستمنحك مقارنة حدث بآخر الإزاحة الصحيحة بينهما، ولكن مقارنتهما بالوقت الحالي داخل الإضافة (من خلال (new Date()).getTime() مثلاً) قد تؤدي إلى نتائج غير متوقعة.

معالجة الأخطاء

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

أمثلة

يوضّح المثال التالي كيفية حظر جميع الطلبات إلى www.evil.com:

chrome.webRequest.onBeforeRequest.addListener(
  function(details) {
    return {cancel: details.url.indexOf("://www.evil.com/") != -1};
  },
  {urls: ["<all_urls>"]},
  ["blocking"]
);

بما أنّ هذه الدالة تستخدم معالج أحداث حظر، فإنّها تتطلّب الإذن "webRequest" بالإضافة إلى الإذن "webRequestBlocking" في ملف البيان.

يحقّق المثال التالي الهدف نفسه بطريقة أكثر كفاءة لأنّ الطلبات غير الموجّهة إلى www.evil.com لا تحتاج إلى تمريرها إلى الإضافة:

chrome.webRequest.onBeforeRequest.addListener(
  function(details) { return {cancel: true}; },
  {urls: ["*://www.evil.com/*"]},
  ["blocking"]
);

يوضّح المثال التالي كيفية حذف عنوان User-Agent من جميع الطلبات:

chrome.webRequest.onBeforeSendHeaders.addListener(
  function(details) {
    for (var i = 0; i < details.requestHeaders.length; ++i) {
      if (details.requestHeaders[i].name === 'User-Agent') {
        details.requestHeaders.splice(i, 1);
        break;
      }
    }
    return {requestHeaders: details.requestHeaders};
  },
  {urls: ["<all_urls>"]},
  ["blocking", "requestHeaders"]
);

لتجربة واجهة برمجة التطبيقات chrome.webRequest، ثبِّت نموذج webRequest من مستودع chrome-extension-samples.

الأنواع

BlockingResponse

تعرض هذه الطريقة قيمة لمعالِجات الأحداث التي تم تطبيق extraInfoSpec من النوع "blocking" عليها. يسمح لمعالِج الأحداث بتعديل طلبات الشبكة.

الخصائص

  • authCredentials

    object اختياري

    يُستخدم فقط كاستجابة للحدث onAuthRequired. في حال ضبط هذا الإعداد، يتم تقديم الطلب باستخدام بيانات الاعتماد المقدَّمة.

    • كلمة المرور

      سلسلة

    • اسم المستخدم

      سلسلة

  • إلغاء

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

    إذا كانت القيمة "صحيح"، يتم إلغاء الطلب. يؤدي ذلك إلى منع إرسال الطلب. يمكن استخدام هذا كاستجابة للأحداث onBeforeRequest وonBeforeSendHeaders وonHeadersReceived وonAuthRequired.

  • redirectUrl

    string اختياري

    يُستخدم فقط كاستجابة للحدثَين onBeforeRequest وonHeadersReceived. في حال ضبط هذه السياسة، يتم منع إرسال/إكمال الطلب الأصلي وتتم إعادة توجيهه بدلاً من ذلك إلى عنوان URL المحدّد. يُسمح بإعادة التوجيه إلى مخططات غير HTTP، مثل data:. تستخدم عمليات إعادة التوجيه التي يتم بدؤها من خلال إجراء إعادة توجيه طريقة الطلب الأصلية لإعادة التوجيه، باستثناء واحد: إذا تم بدء إعادة التوجيه في مرحلة onHeadersReceived، سيتم إصدار إعادة التوجيه باستخدام طريقة GET. يتم تجاهل عمليات إعادة التوجيه من عناوين URL التي تتضمّن المخططَين ws:// وwss://.

  • requestHeaders

    HttpHeaders اختياري

    يُستخدم فقط كاستجابة للحدث onBeforeSendHeaders. في حال ضبط هذا الحقل، يتم إرسال الطلب باستخدام عناوين الطلب هذه بدلاً من ذلك.

  • responseHeaders

    HttpHeaders اختياري

    يتم استخدامه فقط كردّ على الحدث onHeadersReceived. في حال ضبط هذه القيمة، يُفترض أنّ الخادم قد ردّ باستخدام عناوين الاستجابة هذه بدلاً من ذلك. يجب عرض responseHeaders فقط إذا أردت تعديل العناوين من أجل الحدّ من عدد التعارضات (يمكن لإضافة واحدة فقط تعديل responseHeaders لكل طلب).

FormDataItem

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

يحتوي على بيانات تم تمريرها ضمن بيانات النموذج. بالنسبة إلى نموذج urlencoded، يتم تخزينها كسلسلة إذا كانت البيانات سلسلة utf-8 وArrayBuffer في الحالات الأخرى. بالنسبة إلى بيانات النموذج، تكون القيمة هي ArrayBuffer. إذا كانت بيانات النموذج تمثّل ملفًا يتم تحميله، تكون سلسلة تتضمّن اسم الملف، في حال توفّره.

Enum

ArrayBuffer

سلسلة

HttpHeaders

مصفوفة من عناوين HTTP يتم تمثيل كل عنوان كقاموس يحتوي على المفاتيح name وvalue أو binaryValue.

النوع

object[]‎

الخصائص

  • binaryValue

    number[] اختيارية

    قيمة عنوان HTTP إذا تعذّر تمثيلها باستخدام UTF-8، ويتم تخزينها كقيم بايت فردية (0..255).

  • الاسم

    سلسلة

    اسم عنوان HTTP

  • القيمة

    string اختياري

    قيمة عنوان HTTP إذا كان من الممكن تمثيلها بترميز UTF-8

IgnoredActionType

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

Enum

"redirect"

"request_headers"

"response_headers"

"auth_credentials"

OnAuthRequiredOptions

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

Enum

‫"responseHeaders"
تحدّد هذه السمة أنّه يجب تضمين عناوين الاستجابة في الحدث.

‫"blocking"
تحدّد هذه السمة أنّه يتم حظر الطلب إلى أن تعرض دالّة ردّ الاتصال النتيجة.

‫"asyncBlocking"
تحدّد أنّه تتم معالجة دالّة ردّ الاتصال بشكل غير متزامن.

‫"extraHeaders"
يحدّد أنّ العناوين يمكن أن تنتهك سياسة مشاركة الموارد المتعدّدة المصادر (CORS).

OnBeforeRedirectOptions

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

Enum

‫"responseHeaders"
تحدّد هذه السمة أنّه يجب تضمين عناوين الاستجابة في الحدث.

‫"extraHeaders"
يحدّد أنّ العناوين يمكن أن تنتهك سياسة مشاركة الموارد المتعدّدة المصادر (CORS).

OnBeforeRequestOptions

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

Enum

‫"blocking"
تحدّد هذه السمة أنّه يتم حظر الطلب إلى أن تعرض دالّة ردّ الاتصال النتيجة.

‫"requestBody"
يحدّد أنّه يجب تضمين نص الطلب في الحدث.

‫"extraHeaders"
يحدّد أنّ العناوين يمكن أن تنتهك سياسة مشاركة الموارد المتعدّدة المصادر (CORS).

OnBeforeSendHeadersOptions

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

Enum

"requestHeaders"
يحدّد أنّه يجب تضمين عنوان الطلب في الحدث.

‫"blocking"
تحدّد هذه السمة أنّه يتم حظر الطلب إلى أن تعرض دالّة ردّ الاتصال النتيجة.

‫"extraHeaders"
يحدّد أنّ العناوين يمكن أن تنتهك سياسة مشاركة الموارد المتعدّدة المصادر (CORS).

OnCompletedOptions

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

Enum

‫"responseHeaders"
تحدّد هذه السمة أنّه يجب تضمين عناوين الاستجابة في الحدث.

‫"extraHeaders"
يحدّد أنّ العناوين يمكن أن تنتهك سياسة مشاركة الموارد المتعدّدة المصادر (CORS).

OnErrorOccurredOptions

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

القيمة

"extraHeaders"

OnHeadersReceivedOptions

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

Enum

‫"blocking"
تحدّد هذه السمة أنّه يتم حظر الطلب إلى أن تعرض دالّة ردّ الاتصال النتيجة.

‫"responseHeaders"
تحدّد هذه السمة أنّه يجب تضمين عناوين الاستجابة في الحدث.

‫"extraHeaders"
يحدّد أنّ العناوين يمكن أن تنتهك سياسة مشاركة الموارد المتعدّدة المصادر (CORS).

"securityInfo"
تحدّد أنّه يجب تضمين SecurityInfo في الحدث.

"securityInfoRawDer"
يحدّد أنّه يجب تضمين SecurityInfo مع وحدات البايت الأولية للشهادات في الحدث.

OnResponseStartedOptions

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

Enum

‫"responseHeaders"
تحدّد هذه السمة أنّه يجب تضمين عناوين الاستجابة في الحدث.

‫"extraHeaders"
يحدّد أنّ العناوين يمكن أن تنتهك سياسة مشاركة الموارد المتعدّدة المصادر (CORS).

OnSendHeadersOptions

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

Enum

"requestHeaders"
يحدّد أنّه يجب تضمين عنوان الطلب في الحدث.

‫"extraHeaders"
يحدّد أنّ العناوين يمكن أن تنتهك سياسة مشاركة الموارد المتعدّدة المصادر (CORS).

RequestFilter

تمثّل هذه السمة فلاتر يتم تطبيقها على أحداث webRequest.

الخصائص

  • tabId

    number اختيارية

  • الأنواع

    ‫ResourceType[] اختيارية

    قائمة بأنواع الطلبات سيتم استبعاد الطلبات التي لا تتطابق مع أي من الأنواع.

  • عناوين url

    string[]

    قائمة بعناوين URL أو أنماط عناوين URL وستتم فلترة الطلبات التي لا تتطابق مع أي من عناوين URL.

  • windowId

    number اختيارية

ResourceType

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

Enum

"main_frame"
يحدّد المورد كإطار رئيسي.

‫"sub_frame"
يحدّد المورد كإطار فرعي.

"stylesheet"
يحدّد المورد كورقة أنماط.

"script"
يحدّد المورد كنص برمجي.

"image"
تحدّد المورد كصورة.

‫"font"
تحدّد المورد كخط.

"object"
تحدّد المورد كعنصر.

‫"xmlhttprequest"
تحدّد المورد على أنّه XMLHttpRequest.

"ping"
تحدّد المورد كإشارة اختبار اتصال.

‫"csp_report"
يحدّد المورد كتقرير "سياسة أمان المحتوى" (CSP).

"media"
تحدّد المرجع كعنصر وسائط.

‫"websocket"
يحدّد المورد على أنّه WebSocket.

‫"webbundle"
تحدّد المورد على أنّه WebBundle.

"other"
تحدّد المورد كنوع غير مدرَج في الأنواع المذكورة.

SecurityInfo

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

الخصائص

  • الشهادات

    object[]‎

    قائمة بالشهادات

    • بصمة الإصبع

      عنصر

      الملفات المرجعية للشهادة

      • sha256

        سلسلة

        الملف المرجعي لشهادة sha256

    • rawDER

      ‫ArrayBuffer اختياري

      وحدات البايت الأولية لشهادة الخادم بترميز DER

  • الولاية

    سلسلة

    حالة الاتصال إحدى القيم التالية: secure أو insecure أو broken

UploadData

يحتوي على البيانات التي تم تحميلها في طلب عنوان URL.

الخصائص

  • بايت

    أيّ اختياري

    ‫ArrayBuffer مع نسخة من البيانات

  • ملف واحد

    string اختياري

    سلسلة تحتوي على مسار الملف واسمه

الخصائص

MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES

الحدّ الأقصى لعدد مرات استدعاء handlerBehaviorChanged لكل فاصل زمني مستمر مدته 10 دقائق ‫handlerBehaviorChanged هو استدعاء دالة مكلف لا يجب استدعاؤه كثيرًا.

القيمة

20

الطُرق

handlerBehaviorChanged()

Promise
chrome.webRequest.handlerBehaviorChanged(
  callback?: function,
)
: Promise<void>

يجب استدعاء هذه الطريقة عندما يتغيّر سلوك معالِجات webRequest لمنع المعالجة غير الصحيحة بسبب التخزين المؤقت. استدعاء الدالة هذا مكلف. لا تستدعِها كثيرًا.

المعلمات

  • callback

    function اختياري

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

    () => void

المرتجعات

  • وعد<فراغ>

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

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

الفعاليات

onActionIgnored

الإصدار 70 من Chrome أو الإصدارات الأحدث
chrome.webRequest.onActionIgnored.addListener(
  callback: function,
)

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

المعلمات

  • callback

    دالة

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

    (details: object) => void

    • التفاصيل

      عنصر

      • إجراء

        الإجراء المقترَح الذي تم تجاهله

      • requestId

        سلسلة

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

onAuthRequired

chrome.webRequest.onAuthRequired.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnAuthRequiredOptions[],
)

يتم تشغيل هذا الحدث عند تلقّي إشعار بتعذُّر المصادقة. يتوفّر للمستمع ثلاثة خيارات: يمكنه تقديم بيانات اعتماد المصادقة، أو إلغاء الطلب وعرض صفحة الخطأ، أو عدم اتخاذ أي إجراء بشأن طلب المصادقة. إذا تم تقديم بيانات اعتماد مستخدم غير صالحة، قد يتم استدعاء هذه الدالة عدة مرات للطلب نفسه. يُرجى العِلم أنّه يجب تحديد وضع واحد فقط من الوضعَين 'blocking' أو 'asyncBlocking' في المَعلمة extraInfoSpec.

المعلمات

  • callback

    دالة

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

    (details: object, asyncCallback?: function) => BlockingResponse | undefined

    • التفاصيل

      عنصر

      • المتحدّي

        عنصر

        الخادم الذي يطلب المصادقة

        • مضيف

          سلسلة

        • المنفذ

          الرقم

      • documentId

        string اختياري

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

        المعرّف الفريد العالمي (UUID) للمستند الذي يقدّم الطلب

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

        مرحلة النشاط التي يمر بها المستند

      • frameId

        الرقم

        تشير القيمة 0 إلى أنّ الطلب يحدث في الإطار الرئيسي، بينما تشير القيمة الموجبة إلى رقم تعريف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند إطار (فرعي) (type هو main_frame أو sub_frame)، يشير frameId إلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. تكون معرّفات الإطارات فريدة ضمن علامة تبويب معيّنة.

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

        نوع الإطار الذي حدث فيه الطلب

      • أداة البدء

        string اختياري

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

        المصدر الذي تم بدء الطلب منه ولا يتغيّر هذا من خلال عمليات إعادة التوجيه. إذا كان هذا المصدر غير واضح، سيتم استخدام السلسلة "null".

      • isProxy

        قيمة منطقية

        تكون القيمة "صحيح" في حال استخدام Proxy-Authenticate، و"خطأ" في حال استخدام WWW-Authenticate.

      • method

        سلسلة

        طريقة HTTP عادية

      • parentDocumentId

        string اختياري

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

        المعرّف الفريد العالمي (UUID) للمستند الرئيسي الذي يملك هذا الإطار لا يتم ضبط هذه السمة في حال عدم توفّر عنصر رئيسي.

      • parentFrameId

        الرقم

        رقم تعريف الإطار الذي يلتف حول الإطار الذي أرسل الطلب يتم ضبطها على -1 في حال عدم توفّر إطار رئيسي.

      • realm

        string اختياري

        يشير هذا الحقل إلى نطاق المصادقة الذي يوفّره الخادم، إن توفّر.

      • requestId

        سلسلة

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

      • responseHeaders

        HttpHeaders اختياري

        عناوين استجابة HTTP التي تم تلقّيها مع هذه الاستجابة

      • المخطط

        سلسلة

        نظام المصادقة، مثل Basic أو Digest

      • statusCode

        الرقم

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

        رمز حالة HTTP العادي الذي يعرضه الخادم

      • statusLine

        سلسلة

        سطر حالة HTTP للاستجابة أو السلسلة "HTTP/0.9 200 OK" لاستجابات HTTP/0.9 (أي الاستجابات التي لا تتضمّن سطر حالة) أو سلسلة فارغة في حال عدم توفّر عناوين

      • tabId

        الرقم

        رقم تعريف علامة التبويب التي يتم فيها الطلب يتم ضبطها على -1 إذا لم يكن الطلب مرتبطًا بعلامة تبويب.

      • timeStamp

        الرقم

        الوقت الذي يتم فيه تشغيل هذه الإشارة، بالملي ثانية منذ بدء حقبة يونكس

      • النوع

        كيفية استخدام المورد المطلوب

      • url

        سلسلة

    • asyncCallback

      function اختياري

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

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

      (response: BlockingResponse) => void

    • returns

      BlockingResponse | غير محدّد

      إذا تم تحديد "blocking" في المَعلمة "extraInfoSpec"، من المفترض أن يعرض متتبِّع الأحداث عنصرًا من هذا النوع.

  • تصفية
  • extraInfoSpec

    OnAuthRequiredOptions[] اختياري

onBeforeRedirect

chrome.webRequest.onBeforeRedirect.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnBeforeRedirectOptions[],
)

يتم تنشيط هذا الحدث عندما تكون عملية إعادة توجيه بدأها الخادم على وشك الحدوث.

المعلمات

  • callback

    دالة

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

    (details: object) => void

    • التفاصيل

      عنصر

      • documentId

        string اختياري

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

        المعرّف الفريد العالمي (UUID) للمستند الذي يقدّم الطلب

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

        مرحلة النشاط التي يمر بها المستند

      • frameId

        الرقم

        تشير القيمة 0 إلى أنّ الطلب يحدث في الإطار الرئيسي، بينما تشير القيمة الموجبة إلى رقم تعريف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند إطار (فرعي) (type هو main_frame أو sub_frame)، يشير frameId إلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. تكون معرّفات الإطارات فريدة ضمن علامة تبويب معيّنة.

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

        نوع الإطار الذي حدث فيه الطلب

      • fromCache

        قيمة منطقية

        يشير إلى ما إذا تم جلب هذه الاستجابة من ذاكرة التخزين المؤقت للقرص.

      • أداة البدء

        string اختياري

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

        المصدر الذي تم بدء الطلب منه ولا يتغيّر هذا من خلال عمليات إعادة التوجيه. إذا كان هذا المصدر غير واضح، سيتم استخدام السلسلة "null".

      • ip

        string اختياري

        عنوان IP الخاص بالخادم الذي تم إرسال الطلب إليه فعليًا يُرجى العِلم أنّه قد يكون عنوان IPv6 حرفيًا.

      • method

        سلسلة

        طريقة HTTP عادية

      • parentDocumentId

        string اختياري

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

        المعرّف الفريد العالمي (UUID) للمستند الرئيسي الذي يملك هذا الإطار لا يتم ضبط هذه السمة في حال عدم توفّر عنصر رئيسي.

      • parentFrameId

        الرقم

        رقم تعريف الإطار الذي يلتف حول الإطار الذي أرسل الطلب يتم ضبطها على -1 في حال عدم توفّر إطار رئيسي.

      • redirectUrl

        سلسلة

        عنوان URL الجديد

      • requestId

        سلسلة

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

      • responseHeaders

        HttpHeaders اختياري

        عناوين استجابة HTTP التي تم تلقّيها مع عملية إعادة التوجيه هذه

      • statusCode

        الرقم

        رمز حالة HTTP العادي الذي يعرضه الخادم

      • statusLine

        سلسلة

        سطر حالة HTTP للاستجابة أو السلسلة "HTTP/0.9 200 OK" لاستجابات HTTP/0.9 (أي الاستجابات التي لا تتضمّن سطر حالة) أو سلسلة فارغة في حال عدم توفّر عناوين

      • tabId

        الرقم

        رقم تعريف علامة التبويب التي يتم فيها الطلب يتم ضبطها على -1 إذا لم يكن الطلب مرتبطًا بعلامة تبويب.

      • timeStamp

        الرقم

        الوقت الذي يتم فيه تشغيل هذه الإشارة، بالملي ثانية منذ بدء حقبة يونكس

      • النوع

        كيفية استخدام المورد المطلوب

      • url

        سلسلة

  • تصفية
  • extraInfoSpec

    OnBeforeRedirectOptions[] اختيارية

onBeforeRequest

chrome.webRequest.onBeforeRequest.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnBeforeRequestOptions[],
)

يتم تفعيل هذا الحدث عندما يكون الطلب على وشك الحدوث.

المعلمات

  • callback

    دالة

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

    (details: object) => BlockingResponse | undefined

    • التفاصيل

      عنصر

      • documentId

        string اختياري

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

        المعرّف الفريد العالمي (UUID) للمستند الذي يقدّم الطلب

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

        مرحلة النشاط التي يمر بها المستند

      • frameId

        الرقم

        تشير القيمة 0 إلى أنّ الطلب يحدث في الإطار الرئيسي، بينما تشير القيمة الموجبة إلى رقم تعريف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند إطار (فرعي) (type هو main_frame أو sub_frame)، يشير frameId إلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. تكون معرّفات الإطارات فريدة ضمن علامة تبويب معيّنة.

      • frameType

        extensionTypes.FrameType اختيارية

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

        نوع الإطار الذي حدث فيه الطلب

      • أداة البدء

        string اختياري

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

        المصدر الذي تم بدء الطلب منه ولا يتغيّر هذا من خلال عمليات إعادة التوجيه. إذا كان هذا المصدر غير واضح، سيتم استخدام السلسلة "null".

      • method

        سلسلة

        طريقة HTTP عادية

      • parentDocumentId

        string اختياري

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

        المعرّف الفريد العالمي (UUID) للمستند الرئيسي الذي يملك هذا الإطار لا يتم ضبط هذه السمة في حال عدم توفّر عنصر رئيسي.

      • parentFrameId

        الرقم

        رقم تعريف الإطار الذي يلتف حول الإطار الذي أرسل الطلب يتم ضبطها على -1 في حال عدم توفّر إطار رئيسي.

      • requestBody

        object اختياري

        يحتوي على بيانات نص طلب HTTP. لا يتم توفيرها إلا إذا كانت السمة extraInfoSpec تحتوي على requestBody.

        • خطأ

          string اختياري

          أخطاء عند الحصول على بيانات نص الطلب

        • formData

          object اختياري

          إذا كانت طريقة الطلب هي POST وكان النص عبارة عن تسلسل من أزواج المفتاح والقيمة بترميز UTF8، أو بترميز multipart/form-data أو application/x-www-form-urlencoded، يكون هذا القاموس موجودًا ويحتوي لكل مفتاح على قائمة بجميع قيم هذا المفتاح. إذا كانت البيانات من نوع وسائط آخر أو إذا كانت غير صحيحة، لن يتوفّر القاموس. مثال على قيمة هذا القاموس هو {'key': ['value1', 'value2']}.

        • raw

          ‫UploadData[] اختياري

          إذا كانت طريقة الطلب هي PUT أو POST، ولم يتم تحليل النص في formData، يتم تضمين عناصر نص الطلب غير المحلَّلة في هذه المصفوفة.

      • requestId

        سلسلة

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

      • tabId

        الرقم

        رقم تعريف علامة التبويب التي يتم فيها الطلب يتم ضبطها على -1 إذا لم يكن الطلب مرتبطًا بعلامة تبويب.

      • timeStamp

        الرقم

        الوقت الذي يتم فيه تشغيل هذه الإشارة، بالملي ثانية منذ بدء حقبة يونكس

      • النوع

        كيفية استخدام المورد المطلوب

      • url

        سلسلة

    • returns

      BlockingResponse | غير محدّد

      إذا تم تحديد "blocking" في المَعلمة "extraInfoSpec"، من المفترض أن يعرض متتبِّع الأحداث عنصرًا من هذا النوع.

  • تصفية
  • extraInfoSpec

    OnBeforeRequestOptions[] اختيارية

onBeforeSendHeaders

chrome.webRequest.onBeforeSendHeaders.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnBeforeSendHeadersOptions[],
)

يتم تنشيطه قبل إرسال طلب HTTP، بعد توفّر عناوين الطلب. قد يحدث ذلك بعد إنشاء اتصال TCP بالخادم، ولكن قبل إرسال أي بيانات HTTP.

المعلمات

  • callback

    دالة

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

    (details: object) => BlockingResponse | undefined

    • التفاصيل

      عنصر

      • documentId

        string اختياري

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

        المعرّف الفريد العالمي (UUID) للمستند الذي يقدّم الطلب

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

        مرحلة النشاط التي يمر بها المستند

      • frameId

        الرقم

        تشير القيمة 0 إلى أنّ الطلب يحدث في الإطار الرئيسي، بينما تشير القيمة الموجبة إلى رقم تعريف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند إطار (فرعي) (type هو main_frame أو sub_frame)، يشير frameId إلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. تكون معرّفات الإطارات فريدة ضمن علامة تبويب معيّنة.

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

        نوع الإطار الذي حدث فيه الطلب

      • أداة البدء

        string اختياري

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

        المصدر الذي تم بدء الطلب منه ولا يتغيّر هذا من خلال عمليات إعادة التوجيه. إذا كان هذا المصدر غير واضح، سيتم استخدام السلسلة "null".

      • method

        سلسلة

        طريقة HTTP عادية

      • parentDocumentId

        string اختياري

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

        المعرّف الفريد العالمي (UUID) للمستند الرئيسي الذي يملك هذا الإطار لا يتم ضبط هذه السمة في حال عدم توفّر عنصر رئيسي.

      • parentFrameId

        الرقم

        رقم تعريف الإطار الذي يلتف حول الإطار الذي أرسل الطلب يتم ضبطها على -1 في حال عدم توفّر إطار رئيسي.

      • requestHeaders

        HttpHeaders اختياري

        عناوين طلبات HTTP التي سيتم إرسالها مع هذا الطلب

      • requestId

        سلسلة

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

      • tabId

        الرقم

        رقم تعريف علامة التبويب التي يتم فيها الطلب يتم ضبطها على -1 إذا لم يكن الطلب مرتبطًا بعلامة تبويب.

      • timeStamp

        الرقم

        الوقت الذي يتم فيه تشغيل هذه الإشارة، بالملي ثانية منذ بدء حقبة يونكس

      • النوع

        كيفية استخدام المورد المطلوب

      • url

        سلسلة

    • returns

      BlockingResponse | غير محدّد

      إذا تم تحديد "blocking" في المَعلمة "extraInfoSpec"، من المفترض أن يعرض متتبِّع الأحداث عنصرًا من هذا النوع.

  • تصفية
  • extraInfoSpec

    OnBeforeSendHeadersOptions[] اختيارية

onCompleted

chrome.webRequest.onCompleted.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnCompletedOptions[],
)

يتم تنشيط هذا الحدث عند اكتمال الطلب.

المعلمات

  • callback

    دالة

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

    (details: object) => void

    • التفاصيل

      عنصر

      • documentId

        string اختياري

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

        المعرّف الفريد العالمي (UUID) للمستند الذي يقدّم الطلب

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

        مرحلة النشاط التي يمر بها المستند

      • frameId

        الرقم

        تشير القيمة 0 إلى أنّ الطلب يحدث في الإطار الرئيسي، بينما تشير القيمة الموجبة إلى رقم تعريف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند إطار (فرعي) (type هو main_frame أو sub_frame)، يشير frameId إلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. تكون معرّفات الإطارات فريدة ضمن علامة تبويب معيّنة.

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

        نوع الإطار الذي حدث فيه الطلب

      • fromCache

        قيمة منطقية

        يشير إلى ما إذا تم جلب هذه الاستجابة من ذاكرة التخزين المؤقت للقرص.

      • أداة البدء

        string اختياري

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

        المصدر الذي تم بدء الطلب منه ولا يتغيّر هذا من خلال عمليات إعادة التوجيه. إذا كان هذا المصدر غير واضح، سيتم استخدام السلسلة "null".

      • ip

        string اختياري

        عنوان IP الخاص بالخادم الذي تم إرسال الطلب إليه فعليًا يُرجى العِلم أنّه قد يكون عنوان IPv6 حرفيًا.

      • method

        سلسلة

        طريقة HTTP عادية

      • parentDocumentId

        string اختياري

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

        المعرّف الفريد العالمي (UUID) للمستند الرئيسي الذي يملك هذا الإطار لا يتم ضبط هذه السمة في حال عدم توفّر عنصر رئيسي.

      • parentFrameId

        الرقم

        رقم تعريف الإطار الذي يلتف حول الإطار الذي أرسل الطلب يتم ضبطها على -1 في حال عدم توفّر إطار رئيسي.

      • requestId

        سلسلة

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

      • responseHeaders

        HttpHeaders اختياري

        عناوين استجابة HTTP التي تم تلقّيها مع هذه الاستجابة

      • statusCode

        الرقم

        رمز حالة HTTP العادي الذي يعرضه الخادم

      • statusLine

        سلسلة

        سطر حالة HTTP للاستجابة أو السلسلة "HTTP/0.9 200 OK" لاستجابات HTTP/0.9 (أي الاستجابات التي لا تتضمّن سطر حالة) أو سلسلة فارغة في حال عدم توفّر عناوين

      • tabId

        الرقم

        رقم تعريف علامة التبويب التي يتم فيها الطلب يتم ضبطها على -1 إذا لم يكن الطلب مرتبطًا بعلامة تبويب.

      • timeStamp

        الرقم

        الوقت الذي يتم فيه تشغيل هذه الإشارة، بالملي ثانية منذ بدء حقبة يونكس

      • النوع

        كيفية استخدام المورد المطلوب

      • url

        سلسلة

  • تصفية
  • extraInfoSpec

    OnCompletedOptions[] اختيارية

onErrorOccurred

chrome.webRequest.onErrorOccurred.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnErrorOccurredOptions[],
)

يتم تنشيطه عند حدوث خطأ.

المعلمات

  • callback

    دالة

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

    (details: object) => void

    • التفاصيل

      عنصر

      • documentId

        string اختياري

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

        المعرّف الفريد العالمي (UUID) للمستند الذي يقدّم الطلب لا تظهر هذه القيمة إذا كان الطلب عبارة عن تنقّل في إطار.

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

        مرحلة النشاط التي يمر بها المستند

      • خطأ

        سلسلة

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

      • frameId

        الرقم

        تشير القيمة 0 إلى أنّ الطلب يحدث في الإطار الرئيسي، بينما تشير القيمة الموجبة إلى رقم تعريف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند إطار (فرعي) (type هو main_frame أو sub_frame)، يشير frameId إلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. تكون معرّفات الإطارات فريدة ضمن علامة تبويب معيّنة.

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

        نوع الإطار الذي حدث فيه الطلب

      • fromCache

        قيمة منطقية

        يشير إلى ما إذا تم جلب هذه الاستجابة من ذاكرة التخزين المؤقت للقرص.

      • أداة البدء

        string اختياري

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

        المصدر الذي تم بدء الطلب منه ولا يتغيّر هذا من خلال عمليات إعادة التوجيه. إذا كان هذا المصدر غير واضح، سيتم استخدام السلسلة "null".

      • ip

        string اختياري

        عنوان IP الخاص بالخادم الذي تم إرسال الطلب إليه فعليًا يُرجى العِلم أنّه قد يكون عنوان IPv6 حرفيًا.

      • method

        سلسلة

        طريقة HTTP عادية

      • parentDocumentId

        string اختياري

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

        المعرّف الفريد العالمي (UUID) للمستند الرئيسي الذي يملك هذا الإطار لا يتم ضبط هذه السمة في حال عدم توفّر عنصر رئيسي.

      • parentFrameId

        الرقم

        رقم تعريف الإطار الذي يلتف حول الإطار الذي أرسل الطلب يتم ضبطها على -1 في حال عدم توفّر إطار رئيسي.

      • requestId

        سلسلة

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

      • tabId

        الرقم

        رقم تعريف علامة التبويب التي يتم فيها الطلب يتم ضبطها على -1 إذا لم يكن الطلب مرتبطًا بعلامة تبويب.

      • timeStamp

        الرقم

        الوقت الذي يتم فيه تشغيل هذه الإشارة، بالملي ثانية منذ بدء حقبة يونكس

      • النوع

        كيفية استخدام المورد المطلوب

      • url

        سلسلة

  • تصفية
  • extraInfoSpec

    OnErrorOccurredOptions[] اختيارية

onHeadersReceived

chrome.webRequest.onHeadersReceived.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnHeadersReceivedOptions[],
)

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

المعلمات

  • callback

    دالة

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

    (details: object) => BlockingResponse | undefined

    • التفاصيل

      عنصر

      • documentId

        string اختياري

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

        المعرّف الفريد العالمي (UUID) للمستند الذي يقدّم الطلب

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

        مرحلة النشاط التي يمر بها المستند

      • frameId

        الرقم

        تشير القيمة 0 إلى أنّ الطلب يحدث في الإطار الرئيسي، بينما تشير القيمة الموجبة إلى رقم تعريف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند إطار (فرعي) (type هو main_frame أو sub_frame)، يشير frameId إلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. تكون معرّفات الإطارات فريدة ضمن علامة تبويب معيّنة.

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

        نوع الإطار الذي حدث فيه الطلب

      • أداة البدء

        string اختياري

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

        المصدر الذي تم بدء الطلب منه ولا يتغيّر هذا من خلال عمليات إعادة التوجيه. إذا كان هذا المصدر غير واضح، سيتم استخدام السلسلة "null".

      • method

        سلسلة

        طريقة HTTP عادية

      • parentDocumentId

        string اختياري

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

        المعرّف الفريد العالمي (UUID) للمستند الرئيسي الذي يملك هذا الإطار لا يتم ضبط هذه السمة في حال عدم توفّر عنصر رئيسي.

      • parentFrameId

        الرقم

        رقم تعريف الإطار الذي يلتف حول الإطار الذي أرسل الطلب يتم ضبطها على -1 في حال عدم توفّر إطار رئيسي.

      • requestId

        سلسلة

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

      • responseHeaders

        HttpHeaders اختياري

        عناوين استجابة HTTP التي تم تلقّيها مع هذه الاستجابة

      • securityInfo

        SecurityInfo اختياري

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

        معلومات حول اتصال TLS/QUIC المستخدَم للاتصال الأساسي يتم توفيرها فقط في حال تحديد securityInfo في المَعلمة extraInfoSpec.

      • statusCode

        الرقم

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

        رمز حالة HTTP العادي الذي يعرضه الخادم

      • statusLine

        سلسلة

        سطر حالة HTTP للاستجابة أو سلسلة "HTTP/0.9 200 OK" لاستجابات HTTP/0.9 (أي الاستجابات التي لا تتضمّن سطر حالة).

      • tabId

        الرقم

        رقم تعريف علامة التبويب التي يتم فيها الطلب يتم ضبطها على -1 إذا لم يكن الطلب مرتبطًا بعلامة تبويب.

      • timeStamp

        الرقم

        الوقت الذي يتم فيه تشغيل هذه الإشارة، بالملي ثانية منذ بدء حقبة يونكس

      • النوع

        كيفية استخدام المورد المطلوب

      • url

        سلسلة

    • returns

      BlockingResponse | غير محدّد

      إذا تم تحديد "blocking" في المَعلمة "extraInfoSpec"، من المفترض أن يعرض متتبِّع الأحداث عنصرًا من هذا النوع.

  • تصفية
  • extraInfoSpec

    OnHeadersReceivedOptions[] اختيارية

onResponseStarted

chrome.webRequest.onResponseStarted.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnResponseStartedOptions[],
)

يتم تشغيل هذا الحدث عند تلقّي أول بايت من نص الاستجابة. بالنسبة إلى طلبات HTTP، يعني ذلك أنّ سطر الحالة وعناوين الاستجابة متاحة.

المعلمات

  • callback

    دالة

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

    (details: object) => void

    • التفاصيل

      عنصر

      • documentId

        string اختياري

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

        المعرّف الفريد العالمي (UUID) للمستند الذي يقدّم الطلب

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

        مرحلة النشاط التي يمر بها المستند

      • frameId

        الرقم

        تشير القيمة 0 إلى أنّ الطلب يحدث في الإطار الرئيسي، بينما تشير القيمة الموجبة إلى رقم تعريف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند إطار (فرعي) (type هو main_frame أو sub_frame)، يشير frameId إلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. تكون معرّفات الإطارات فريدة ضمن علامة تبويب معيّنة.

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

        نوع الإطار الذي حدث فيه الطلب

      • fromCache

        قيمة منطقية

        يشير إلى ما إذا تم جلب هذه الاستجابة من ذاكرة التخزين المؤقت للقرص.

      • أداة البدء

        string اختياري

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

        المصدر الذي تم بدء الطلب منه ولا يتغيّر هذا من خلال عمليات إعادة التوجيه. إذا كان هذا المصدر غير واضح، سيتم استخدام السلسلة "null".

      • ip

        string اختياري

        عنوان IP الخاص بالخادم الذي تم إرسال الطلب إليه فعليًا يُرجى العِلم أنّه قد يكون عنوان IPv6 حرفيًا.

      • method

        سلسلة

        طريقة HTTP عادية

      • parentDocumentId

        string اختياري

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

        المعرّف الفريد العالمي (UUID) للمستند الرئيسي الذي يملك هذا الإطار لا يتم ضبط هذه السمة في حال عدم توفّر عنصر رئيسي.

      • parentFrameId

        الرقم

        رقم تعريف الإطار الذي يلتف حول الإطار الذي أرسل الطلب يتم ضبطها على -1 في حال عدم توفّر إطار رئيسي.

      • requestId

        سلسلة

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

      • responseHeaders

        HttpHeaders اختياري

        عناوين استجابة HTTP التي تم تلقّيها مع هذه الاستجابة

      • statusCode

        الرقم

        رمز حالة HTTP العادي الذي يعرضه الخادم

      • statusLine

        سلسلة

        سطر حالة HTTP للاستجابة أو السلسلة "HTTP/0.9 200 OK" لاستجابات HTTP/0.9 (أي الاستجابات التي لا تتضمّن سطر حالة) أو سلسلة فارغة في حال عدم توفّر عناوين

      • tabId

        الرقم

        رقم تعريف علامة التبويب التي يتم فيها الطلب يتم ضبطها على -1 إذا لم يكن الطلب مرتبطًا بعلامة تبويب.

      • timeStamp

        الرقم

        الوقت الذي يتم فيه تشغيل هذه الإشارة، بالملي ثانية منذ بدء حقبة يونكس

      • النوع

        كيفية استخدام المورد المطلوب

      • url

        سلسلة

  • تصفية
  • extraInfoSpec

    OnResponseStartedOptions[] اختيارية

onSendHeaders

chrome.webRequest.onSendHeaders.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnSendHeadersOptions[],
)

يتم تشغيلها قبل إرسال طلب إلى الخادم (تظهر تعديلات عمليات الاستدعاء السابقة لـ onBeforeSendHeaders بحلول وقت تشغيل onSendHeaders).

المعلمات

  • callback

    دالة

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

    (details: object) => void

    • التفاصيل

      عنصر

      • documentId

        string اختياري

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

        المعرّف الفريد العالمي (UUID) للمستند الذي يقدّم الطلب

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

        مرحلة النشاط التي يمر بها المستند

      • frameId

        الرقم

        تشير القيمة 0 إلى أنّ الطلب يحدث في الإطار الرئيسي، بينما تشير القيمة الموجبة إلى رقم تعريف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند إطار (فرعي) (type هو main_frame أو sub_frame)، يشير frameId إلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. تكون معرّفات الإطارات فريدة ضمن علامة تبويب معيّنة.

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

        نوع الإطار الذي حدث فيه الطلب

      • أداة البدء

        string اختياري

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

        المصدر الذي تم بدء الطلب منه ولا يتغيّر هذا من خلال عمليات إعادة التوجيه. إذا كان هذا المصدر غير واضح، سيتم استخدام السلسلة "null".

      • method

        سلسلة

        طريقة HTTP عادية

      • parentDocumentId

        string اختياري

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

        المعرّف الفريد العالمي (UUID) للمستند الرئيسي الذي يملك هذا الإطار لا يتم ضبط هذه السمة في حال عدم توفّر عنصر رئيسي.

      • parentFrameId

        الرقم

        رقم تعريف الإطار الذي يلتف حول الإطار الذي أرسل الطلب يتم ضبطها على -1 في حال عدم توفّر إطار رئيسي.

      • requestHeaders

        HttpHeaders اختياري

        عناوين طلبات HTTP التي تم إرسالها مع هذا الطلب

      • requestId

        سلسلة

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

      • tabId

        الرقم

        رقم تعريف علامة التبويب التي يتم فيها الطلب يتم ضبطها على -1 إذا لم يكن الطلب مرتبطًا بعلامة تبويب.

      • timeStamp

        الرقم

        الوقت الذي يتم فيه تشغيل هذه الإشارة، بالملي ثانية منذ بدء حقبة يونكس

      • النوع

        كيفية استخدام المورد المطلوب

      • url

        سلسلة

  • تصفية
  • extraInfoSpec

    OnSendHeadersOptions[] اختياري