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".
دورة حياة الطلبات
تحدّد واجهة برمجة التطبيقات لطلبات الويب مجموعة من الأحداث التي تتبع دورة حياة طلب الويب. ويمكنك استخدام هذه الأحداث لمراقبة الزيارات وتحليلها. ستسمح لك بعض الأحداث المتزامنة باعتراض طلب أو حظره أو تعديله.
يتم توضيح دورة حياة الحدث للطلبات الناجحة هنا، متبوعة بتعريفات الأحداث:

-
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
يحتوي على بيانات تم تمريرها ضمن بيانات النموذج. بالنسبة إلى نموذج 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
Enum
"redirect"
"request_headers"
"response_headers"
"auth_credentials"
OnAuthRequiredOptions
Enum
"responseHeaders"
تحدّد هذه السمة أنّه يجب تضمين عناوين الاستجابة في الحدث.
"blocking"
تحدّد هذه السمة أنّه يتم حظر الطلب إلى أن تعرض دالّة ردّ الاتصال النتيجة.
"asyncBlocking"
تحدّد أنّه تتم معالجة دالّة ردّ الاتصال بشكل غير متزامن.
"extraHeaders"
يحدّد أنّ العناوين يمكن أن تنتهك سياسة مشاركة الموارد المتعدّدة المصادر (CORS).
OnBeforeRedirectOptions
Enum
"responseHeaders"
تحدّد هذه السمة أنّه يجب تضمين عناوين الاستجابة في الحدث.
"extraHeaders"
يحدّد أنّ العناوين يمكن أن تنتهك سياسة مشاركة الموارد المتعدّدة المصادر (CORS).
OnBeforeRequestOptions
Enum
"blocking"
تحدّد هذه السمة أنّه يتم حظر الطلب إلى أن تعرض دالّة ردّ الاتصال النتيجة.
"requestBody"
يحدّد أنّه يجب تضمين نص الطلب في الحدث.
"extraHeaders"
يحدّد أنّ العناوين يمكن أن تنتهك سياسة مشاركة الموارد المتعدّدة المصادر (CORS).
OnBeforeSendHeadersOptions
Enum
"requestHeaders"
يحدّد أنّه يجب تضمين عنوان الطلب في الحدث.
"blocking"
تحدّد هذه السمة أنّه يتم حظر الطلب إلى أن تعرض دالّة ردّ الاتصال النتيجة.
"extraHeaders"
يحدّد أنّ العناوين يمكن أن تنتهك سياسة مشاركة الموارد المتعدّدة المصادر (CORS).
OnCompletedOptions
Enum
"responseHeaders"
تحدّد هذه السمة أنّه يجب تضمين عناوين الاستجابة في الحدث.
"extraHeaders"
يحدّد أنّ العناوين يمكن أن تنتهك سياسة مشاركة الموارد المتعدّدة المصادر (CORS).
OnErrorOccurredOptions
القيمة
"extraHeaders"
OnHeadersReceivedOptions
Enum
"blocking"
تحدّد هذه السمة أنّه يتم حظر الطلب إلى أن تعرض دالّة ردّ الاتصال النتيجة.
"responseHeaders"
تحدّد هذه السمة أنّه يجب تضمين عناوين الاستجابة في الحدث.
"extraHeaders"
يحدّد أنّ العناوين يمكن أن تنتهك سياسة مشاركة الموارد المتعدّدة المصادر (CORS).
"securityInfo"
تحدّد أنّه يجب تضمين SecurityInfo في الحدث.
"securityInfoRawDer"
يحدّد أنّه يجب تضمين SecurityInfo مع وحدات البايت الأولية للشهادات في الحدث.
OnResponseStartedOptions
Enum
"responseHeaders"
تحدّد هذه السمة أنّه يجب تضمين عناوين الاستجابة في الحدث.
"extraHeaders"
يحدّد أنّ العناوين يمكن أن تنتهك سياسة مشاركة الموارد المتعدّدة المصادر (CORS).
OnSendHeadersOptions
Enum
"requestHeaders"
يحدّد أنّه يجب تضمين عنوان الطلب في الحدث.
"extraHeaders"
يحدّد أنّ العناوين يمكن أن تنتهك سياسة مشاركة الموارد المتعدّدة المصادر (CORS).
RequestFilter
تمثّل هذه السمة فلاتر يتم تطبيقها على أحداث webRequest.
الخصائص
-
tabId
number اختيارية
-
الأنواع
ResourceType[] اختيارية
قائمة بأنواع الطلبات سيتم استبعاد الطلبات التي لا تتطابق مع أي من الأنواع.
-
عناوين url
string[]
قائمة بعناوين URL أو أنماط عناوين URL وستتم فلترة الطلبات التي لا تتطابق مع أي من عناوين URL.
-
windowId
number اختيارية
ResourceType
Enum
"main_frame"
يحدّد المورد كإطار رئيسي.
"sub_frame"
يحدّد المورد كإطار فرعي.
"stylesheet"
يحدّد المورد كورقة أنماط.
"script"
يحدّد المورد كنص برمجي.
"image"
تحدّد المورد كصورة.
"font"
تحدّد المورد كخط.
"object"
تحدّد المورد كعنصر.
"xmlhttprequest"
تحدّد المورد على أنّه XMLHttpRequest.
"ping"
تحدّد المورد كإشارة اختبار اتصال.
"csp_report"
يحدّد المورد كتقرير "سياسة أمان المحتوى" (CSP).
"media"
تحدّد المرجع كعنصر وسائط.
"websocket"
يحدّد المورد على أنّه WebSocket.
"webbundle"
تحدّد المورد على أنّه WebBundle.
"other"
تحدّد المورد كنوع غير مدرَج في الأنواع المذكورة.
SecurityInfo
الخصائص
-
الشهادات
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()
chrome.webRequest.handlerBehaviorChanged(
callback?: function,
): Promise<void>
يجب استدعاء هذه الطريقة عندما يتغيّر سلوك معالِجات webRequest لمنع المعالجة غير الصحيحة بسبب التخزين المؤقت. استدعاء الدالة هذا مكلف. لا تستدعِها كثيرًا.
المعلمات
-
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:() => void
المرتجعات
-
وعد<فراغ>
الإصدار 116 من Chrome والإصدارات الأحدثلا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
الفعاليات
onActionIgnored
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) للمستند الذي يقدّم الطلب
-
documentLifecycleالإصدار 106 من Chrome والإصدارات الأحدث
مرحلة النشاط التي يمر بها المستند
-
frameId
الرقم
تشير القيمة 0 إلى أنّ الطلب يحدث في الإطار الرئيسي، بينما تشير القيمة الموجبة إلى رقم تعريف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند إطار (فرعي) (
typeهوmain_frameأوsub_frame)، يشيرframeIdإلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. تكون معرّفات الإطارات فريدة ضمن علامة تبويب معيّنة. -
frameTypeالإصدار 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) للمستند الذي يقدّم الطلب
-
documentLifecycleالإصدار 106 من Chrome والإصدارات الأحدث
مرحلة النشاط التي يمر بها المستند
-
frameId
الرقم
تشير القيمة 0 إلى أنّ الطلب يحدث في الإطار الرئيسي، بينما تشير القيمة الموجبة إلى رقم تعريف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند إطار (فرعي) (
typeهوmain_frameأوsub_frame)، يشيرframeIdإلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. تكون معرّفات الإطارات فريدة ضمن علامة تبويب معيّنة. -
frameTypeالإصدار 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
extensionTypes.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) للمستند الذي يقدّم الطلب
-
documentLifecycleالإصدار 106 من Chrome والإصدارات الأحدث
مرحلة النشاط التي يمر بها المستند
-
frameId
الرقم
تشير القيمة 0 إلى أنّ الطلب يحدث في الإطار الرئيسي، بينما تشير القيمة الموجبة إلى رقم تعريف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند إطار (فرعي) (
typeهوmain_frameأوsub_frame)، يشيرframeIdإلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. تكون معرّفات الإطارات فريدة ضمن علامة تبويب معيّنة. -
frameTypeالإصدار 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) للمستند الذي يقدّم الطلب
-
documentLifecycleالإصدار 106 من Chrome والإصدارات الأحدث
مرحلة النشاط التي يمر بها المستند
-
frameId
الرقم
تشير القيمة 0 إلى أنّ الطلب يحدث في الإطار الرئيسي، بينما تشير القيمة الموجبة إلى رقم تعريف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند إطار (فرعي) (
typeهوmain_frameأوsub_frame)، يشيرframeIdإلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. تكون معرّفات الإطارات فريدة ضمن علامة تبويب معيّنة. -
frameTypeالإصدار 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) للمستند الذي يقدّم الطلب لا تظهر هذه القيمة إذا كان الطلب عبارة عن تنقّل في إطار.
-
documentLifecycleالإصدار 106 من Chrome والإصدارات الأحدث
مرحلة النشاط التي يمر بها المستند
-
خطأ
سلسلة
وصف الخطأ هذه السلسلة غير مضمونة للحفاظ على التوافق مع الأنظمة القديمة بين الإصدارات. ويجب عدم تحليل محتواه واتّخاذ إجراءات بناءً عليه.
-
frameId
الرقم
تشير القيمة 0 إلى أنّ الطلب يحدث في الإطار الرئيسي، بينما تشير القيمة الموجبة إلى رقم تعريف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند إطار (فرعي) (
typeهوmain_frameأوsub_frame)، يشيرframeIdإلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. تكون معرّفات الإطارات فريدة ضمن علامة تبويب معيّنة. -
frameTypeالإصدار 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) للمستند الذي يقدّم الطلب
-
documentLifecycleالإصدار 106 من Chrome والإصدارات الأحدث
مرحلة النشاط التي يمر بها المستند
-
frameId
الرقم
تشير القيمة 0 إلى أنّ الطلب يحدث في الإطار الرئيسي، بينما تشير القيمة الموجبة إلى رقم تعريف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند إطار (فرعي) (
typeهوmain_frameأوsub_frame)، يشيرframeIdإلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. تكون معرّفات الإطارات فريدة ضمن علامة تبويب معيّنة. -
frameTypeالإصدار 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) للمستند الذي يقدّم الطلب
-
documentLifecycleالإصدار 106 من Chrome والإصدارات الأحدث
مرحلة النشاط التي يمر بها المستند
-
frameId
الرقم
تشير القيمة 0 إلى أنّ الطلب يحدث في الإطار الرئيسي، بينما تشير القيمة الموجبة إلى رقم تعريف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند إطار (فرعي) (
typeهوmain_frameأوsub_frame)، يشيرframeIdإلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. تكون معرّفات الإطارات فريدة ضمن علامة تبويب معيّنة. -
frameTypeالإصدار 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) للمستند الذي يقدّم الطلب
-
documentLifecycleالإصدار 106 من Chrome والإصدارات الأحدث
مرحلة النشاط التي يمر بها المستند
-
frameId
الرقم
تشير القيمة 0 إلى أنّ الطلب يحدث في الإطار الرئيسي، بينما تشير القيمة الموجبة إلى رقم تعريف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند إطار (فرعي) (
typeهوmain_frameأوsub_frame)، يشيرframeIdإلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. تكون معرّفات الإطارات فريدة ضمن علامة تبويب معيّنة. -
frameTypeالإصدار 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[] اختياري