الوصف
يمكنك استخدام واجهة برمجة تطبيقات chrome.webRequest
لمراقبة حركة الزيارات وتحليلها واعتراض الطلبات أو حظرها أو تعديلها أثناء الطيران.
الأذونات
webRequest
يجب الإفصاح عن إذن "webRequest"
في بيان الإضافة لاستخدام واجهة برمجة تطبيقات طلب الويب،
إلى جانب أذونات المضيف اللازمة. لاعتراض طلب مورد فرعي، يجب أن تمتلك الإضافة إمكانية الوصول إلى كلٍّ من عنوان URL المطلوب ومنشئه. مثلاً:
{
"name": "My extension",
...
"permissions": [
"webRequest"
],
"host_permissions": [
"*://*.google.com/*"
],
...
}
webRequestBlocking
مطلوب لتسجيل معالِجات أحداث الحظر. اعتبارًا من إصدار Manifest V3، لن يتوفّر هذا إلا للإضافات المثبَّتة من خلال السياسة.
webRequestAuthProvider
هذا الإذن مطلوب لاستخدام طريقة onAuthRequired
. راجِع
التعامل مع المصادقة.
المفاهيم والاستخدام
دورة حياة الطلبات
تحدِّد واجهة برمجة التطبيقات لطلب الويب مجموعة من الأحداث التي تتابع دورة حياة طلب الويب. يمكنك استخدام هذه الأحداث لمراقبة عدد الزيارات وتحليلها ستسمح لك بعض الأحداث المتزامنة باعتراض الطلب أو حظره أو تعديله.
ويتم هنا توضيح دورة حياة الحدث للطلبات الناجحة، متبوعة بتعريفات الأحداث:
onBeforeRequest
(متزامن اختياريًا)- يتم تنشيطها عندما يكون الطلب على وشك الحدوث. يتم إرسال هذا الحدث قبل إجراء أي اتصال TCP ويمكن استخدامه لإلغاء الطلبات أو إعادة توجيهها.
onBeforeSendHeaders
(متزامن اختياريًا)- يتم تنشيطها عندما يكون الطلب على وشك الحدوث وعند تحضير الرؤوس الأولية. يهدف الحدث
إلى السماح للإضافات بإضافة عناوين الطلبات وتعديلها وحذفها (*). تمّ تمرير
حدث
onBeforeSendHeaders
إلى جميع المشتركين، لذلك قد يحاول المشتركون المختلفون تعديل الطلب. راجِع قسم تفاصيل التنفيذ للاطّلاع على كيفية التعامل مع هذا الحدث. يمكن استخدام هذا الحدث لإلغاء الطلب. onSendHeaders
- بعد إتاحة الفرصة لجميع الإضافات لتعديل عناوين الطلبات، يجب أن يتم عرض نسخة (*) النهائية. يبدأ الحدث قبل إرسال الرؤوس إلى الشبكة. يعد هذا الحدث معلوماتي ويتم التعامل معه بشكل غير متزامن. ولا يسمح بتعديل الطلب أو إلغائه.
onHeadersReceived
(متزامن اختياريًا)- يتم تنشيطها في كل مرة يتم فيها تلقّي عنوان لاستجابة HTTP(S). قد يحدث ذلك عدة مرات لكل طلب بسبب عمليات إعادة التوجيه وطلبات المصادقة. يهدف هذا الحدث إلى السماح للإضافات بإضافة عناوين الردود وتعديلها وحذفها، مثل عناوين نوع المحتوى الواردة. وتعالج أوامر التخزين المؤقت قبل بدء هذا الحدث، لذا فإن تعديل العناوين مثل التحكم في ذاكرة التخزين المؤقت لا يؤثر على ذاكرة التخزين المؤقت للمتصفح. ويتيح لك أيضًا إلغاء الطلب أو إعادة توجيهه.
onAuthRequired
(متزامن اختياريًا)- يتم تنشيطه عندما يتطلب الطلب مصادقة المستخدم. يمكن معالجة هذا الحدث بشكل متزامن لتوفير بيانات اعتماد المصادقة. يُرجى العلم بأنّ الإضافات قد توفّر بيانات اعتماد غير صالحة. احرص على عدم إدخال تكرار لا نهائي من خلال تقديم بيانات اعتماد غير صالحة بشكل متكرر. يمكن استخدام هذه الطريقة أيضًا لإلغاء الطلب.
onBeforeRedirect
- يتم تنشيطها عندما تكون عملية إعادة التوجيه على وشك التنفيذ. يمكن بدء عملية إعادة التوجيه باستخدام رمز استجابة HTTP أو إضافة معيّنة. يُرجى العلم أنّ هذا الحدث يقدّم معلومات وتتم معالجته بشكل غير متزامن. ولا يسمح لك بتعديل الطلب أو إلغائه.
onResponseStarted
- يتم تنشيطها عند تلقّي البايت الأول من نص الاستجابة. بالنسبة إلى طلبات HTTP، يعني هذا توفّر سطر الحالة وعناوين الاستجابة. يعد هذا الحدث إعلاميًا وتتم التعامل معه بشكل غير متزامن. ولا يسمح بتعديل الطلب أو إلغائه.
onCompleted
- يتم تنشيطها عند معالجة الطلب بنجاح.
onErrorOccurred
- يتم تنشيطها عندما تعذّرت معالجة الطلب بنجاح.
تضمن واجهة برمجة التطبيقات لطلب الويب أنّه قد تم تفعيل onCompleted
أو onErrorOccurred
كحدث نهائي مع استثناء واحد لكل طلب: إذا تمت إعادة توجيه طلب إلى عنوان URL خاص بالسمة data://
، سيكون onBeforeRedirect
هو آخر حدث تم الإبلاغ عنه.
* تجدر الإشارة إلى أنّ واجهة برمجة التطبيقات لطلب الويب تقدّم ملخّصًا عن حزمة الشبكة في الإضافة. داخليًا، يمكن تقسيم طلب عنوان URL واحد إلى عدة طلبات HTTP (على سبيل المثال، لجلب نطاقات بايت فردية من ملف كبير) أو يمكن التعامل معه من خلال حزمة الشبكة بدون الاتصال بالشبكة. لهذا السبب، لا توفّر واجهة برمجة التطبيقات عناوين HTTP النهائية التي يتم إرسالها إلى الشبكة. على سبيل المثال، تكون جميع العناوين المرتبطة بالتخزين المؤقت غير مرئية للإضافة.
لم يتم توفير العناوين التالية حاليًا لحدث "onBeforeSendHeaders
". لا نضمن لك أن تكون هذه القائمة كاملة أو ثابتة.
- التفويض
- التحكّم في ذاكرة التخزين المؤقت
- الاتصال
- Content-Length
- المضيف
- إذا تم تعديلها منذ
- علامة If-None-Match
- If-Range (إذا كان النطاق)
- البيانات الجزئية
- براغما
- تفويض الخادم الوكيل
- الاتصال بالخادم الوكيل
- ترميز النقل
بدءًا من الإصدار 79 من Chrome، ستؤثّر تعديلات عناوين الطلبات في عمليات التحقُّق من مشاركة الموارد المتعدّدة المصادر (CORS). إذا كانت العناوين المعدَّلة الخاصة بطلبات البحث من نطاقات أخرى لا تستوفي المعايير، سيؤدّي ذلك إلى إرسال طلب CORS مبدئي للسؤال عن الخادم عمّا إذا كان من الممكن قبول هذه العناوين. إذا كنت تريد تعديل العناوين بطريقة تخالف بروتوكول CORS، عليك تحديد السمة 'extraHeaders'
في opt_extraInfoSpec
. ومن ناحية أخرى، لا تعمل تعديلات عنوان الاستجابة لخداع عمليات تحقق CORS. إذا كنت تريد خداع بروتوكول CORS، عليك أيضًا تحديد 'extraHeaders'
لتعديلات الاستجابة.
بدءًا من الإصدار 79 من Chrome، لا تعترض واجهة برمجة التطبيقات webRequest API طلبات الاستجابة لطلبات 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
:
- الموافقة-اللغة
- قبول الترميز
- المُحيل
- كعكة
بدايةً من الإصدار 72 من Chrome، لا يتم توفير عنوان الاستجابة Set-Cookie
ولا يمكن تعديله أو إزالته بدون تحديد 'extraHeaders'
في opt_extraInfoSpec
.
بدءًا من الإصدار 89 من Chrome، لا يمكن تعديل عنوان الاستجابة X-Frame-Options
أو إزالته
بدون تحديد 'extraHeaders'
في opt_extraInfoSpec
.
لا تعرض واجهة webRequest API سوى الطلبات التي لدى الإضافة إذن بالاطّلاع عليها، وذلك بموجب أذونات المضيف. بالإضافة إلى ذلك، يمكن الوصول إلى المخطّطات التالية فقط: http://
أو https://
أو
ftp://
أو file://
أو ws://
(منذ إصدار Chrome 58) أو wss://
(اعتبارًا من الإصدار 58 من متصفِّح Chrome) أو urn:
(اعتبارًا من الإصدار 91 من متصفِّح Chrome) أو
chrome-extension://
. علاوة على ذلك، يتم إخفاء حتى طلبات معيّنة التي تحتوي على عناوين URL تستخدم أحد المخططات المذكورة أعلاه. ويشمل ذلك chrome-extension://other_extension_id
حيث لا يكون other_extension_id
معرّف الإضافة لمعالجة الطلب وhttps://www.google.com/chrome
وغيرها من الطلبات الحساسة
الأساسية لوظائف المتصفّح. ويتم أيضًا إخفاء طلبات XMLHttpRequest المتزامنة من الإضافة
عن حظر معالِجات الأحداث لمنع الوصول إلى حالة توقف تام. لاحظ أنه بالنسبة إلى بعض المخططات المتوافقة، قد تكون مجموعة الأحداث المتاحة محدودة بسبب طبيعة البروتوكول المقابل. على سبيل المثال، بالنسبة إلى الملف: scheme، قد يتم إرسال onBeforeRequest
وonResponseStarted
وonCompleted
وonErrorOccurred
فقط.
بدءًا من Chrome 58، تدعم واجهة برمجة التطبيقات webRequest API اعتراض طلب تأكيد الاتصال بخادم WebSocket. بما أنّ عملية تأكيد الاتصال تتم عن طريق طلب ترقية HTTP، يتناسب تدفقها مع نموذج webRequest الموجَّه إلى HTTP. يُرجى العِلم أنّ واجهة برمجة التطبيقات لا تعترض ما يلي:
- الرسائل الفردية المرسلة عبر اتصال WebSocket محدد.
- جارٍ إغلاق الاتصال بخادم WebSocket.
عمليات إعادة التوجيه غير متاحة لطلبات WebSocket.
بدءًا من الإصدار 72 من Chrome، لن تتمكن الإضافة من اعتراض طلب إلا إذا كانت لديها أذونات مضيف لكل من عنوان URL المطلوب ومنشئ الطلب.
بدءًا من الإصدار 96 من Chrome، تدعم واجهة برمجة التطبيقات webRequest API اعتراض طلب WebTransport عبر طلب تأكيد الاتصال عبر HTTP/3. بما أنّ عملية تأكيد الاتصال تتم عن طريق طلب اتصال HTTP، يتناسب تدفقها مع نموذج WebRequest المُرسَل إلى بروتوكول HTTP. ملاحظة:
- بعد إنشاء الجلسة، لا يمكن للإضافات تتبُّع الجلسة أو التدخل فيها عبر واجهة برمجة تطبيقات webRequest.
- تم تجاهل تعديل عناوين طلبات HTTP في
onBeforeSendHeaders
. - عمليات إعادة التوجيه والمصادقة غير متاحة في WebTransport عبر HTTP/3.
معرّفات الطلبات
يتم تحديد كل طلب من خلال رقم تعريف الطلب. ويكون هذا المعرّف فريدًا داخل جلسة المتصفّح وسياق الإضافة. يظل ثابتًا خلال دورة حياة الطلب، ويمكن استخدامه لمطابقة الأحداث للطلب نفسه. تجدر الإشارة إلى أنّه يتم ربط العديد من طلبات HTTP بطلب ويب واحد في حال إعادة توجيه HTTP أو مصادقة HTTP.
جارٍ تسجيل أدوات معالجة الأحداث
لتسجيل أداة معالجة حدث لطلب ويب، يمكنك استخدام صيغة مختلفة من دالة addListener()
المعتادة. بالإضافة إلى تحديد دالة معاودة الاتصال، يجب تحديد وسيطة فلتر، ويمكنك تحديد وسيطة معلومات إضافية اختيارية.
تحتوي الوسيطات الثلاثة لواجهة برمجة تطبيقات طلب الويب addListener()
على التعريفات التالية:
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
).
إذا كانت مصفوفة opt_extraInfoSpec
الاختيارية تحتوي على السلسلة 'asyncBlocking'
بدلاً من ذلك (يُسمح
بالقيمة onAuthRequired
فقط)، يمكن للإضافة إنشاء webRequest.BlockingResponse
بشكل غير متزامن.
تسمح filter
webRequest.RequestFilter
بتقييد الطلبات التي يتم بدء الأحداث
فيها بسمات مختلفة:
- عناوين URL
- أنماط عناوين URL، مثل
*://www.google.com/foo*bar
- الأنواع
- أنواع الطلبات، مثل
main_frame
(مستند يتم تحميله لإطار من المستوى الأعلى) وsub_frame
(مستند تم تحميله لإطار مضمّن) وimage
(صورة على موقع إلكتروني) يمكنك الاطّلاع علىwebRequest.RequestFilter
. - رقم تعريف علامة التبويب
- معرّف علامة تبويب واحدة
- رقم تعريف النافذة
- معرّف نافذة
بناءً على نوع الحدث، يمكنك تحديد سلاسل في opt_extraInfoSpec
لطلب معلومات إضافية عن الطلب. يُستخدم هذا الإجراء لتقديم معلومات تفصيلية حول بيانات الطلب فقط إذا تم طلبها صراحةً.
التعامل مع المصادقة
لمعالجة طلبات مصادقة HTTP، عليك إضافة الإذن "webRequestAuthProvider"
إلى ملف البيان:
{
"permissions": [
"webRequest",
"webRequestAuthProvider"
]
}
يُرجى العِلم أنّ هذا الإذن غير مطلوب لإضافة سياسة مثبَّتة لديها إذن "webRequestBlocking"
.
لتقديم بيانات الاعتماد بشكل متزامن:
chrome.webRequest.onAuthRequired.addListener((details) => {
return {
authCredentials: {
username: 'guest',
password: 'guest'
}
};
},
{ urls: ['https://httpbin.org/basic-auth/guest/guest'] },
['blocking']
);
لتقديم بيانات الاعتماد بشكل غير متزامن:
chrome.webRequest.onAuthRequired.addListener((details, callback) => {
callback({
authCredentials: {
username: 'guest',
password: 'guest'
}
});
},
{ urls: ['https://httpbin.org/basic-auth/guest/guest'] },
['asyncBlocking']
);
تفاصيل التنفيذ
قد يكون من المهم فهم العديد من تفاصيل التنفيذ عند تطوير إضافة تستخدم واجهة برمجة تطبيقات طلب الويب:
web_accessible_resources
عند استخدام إضافة لواجهات برمجة تطبيقات webRequest لإعادة توجيه طلب مورد عام إلى مورد لا يمكن الوصول إليه عبر الويب، يتم حظر الإضافة ويؤدي إلى حدوث خطأ. ينطبق ما سبق حتى إذا كان المورد الذي لا يمكن الوصول إليه من خلال الويب مملوكًا لإضافة إعادة التوجيه. للإعلان عن الموارد التي سيتم استخدامها مع واجهات clarativeWebRequest API، يجب الإعلان عن المصفوفة "web_accessible_resources"
وتعبئتها في ملف البيان على النحو الموضَّح هنا.
حل النزاعات
في طريقة التنفيذ الحالية لواجهة برمجة تطبيقات Web request API، يتم اعتبار الطلب ملغىً إذا طلبت إضافة واحدة على الأقل إلغاء الطلب. إذا ألغت الإضافة طلبًا، يتم إشعار
جميع الإضافات من خلال حدث 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"]
);
يوضّح المثال التالي كيفية حذف عنوان وكيل المستخدم من جميع الطلبات:
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-pattern.
الأنواع
BlockingResponse
تعرض قيمة لمعالِجات الأحداث التي تم فيها تطبيق additionalInfoSpec بشأن "الحظر". يسمح لمعالج الأحداث بتعديل طلبات الشبكة.
أماكن إقامة
-
authCredentials
الكائن اختياري
تُستخدم فقط كاستجابة لحدث onAuthrequired. وفي حال ضبط هذه السياسة، يتم تقديم الطلب باستخدام بيانات الاعتماد المقدَّمة.
-
كلمة مرور
سلسلة
-
اسم مستخدم
سلسلة
-
-
إلغاء
منطقية اختيارية
إذا كانت القيمة true، يتم إلغاء الطلب. ويؤدي ذلك إلى منع إرسال الطلب. يمكن استخدام هذا النوع من الأحداث كاستجابة لأحداث on beforeRequest وonbeforeSendHeaders وonHeadersReceived وonAuthrequired.
-
redirectUrl
سلسلة اختيارية
يُستخدم فقط كاستجابة للحدثين onbeforeRequest وonHeadersReceived. وفي حال ضبط هذه السياسة، يتم منع إرسال أو إكمال الطلب الأصلي، وستتم إعادة توجيهه إلى عنوان URL المحدَّد بدلاً من ذلك. يُسمح بعمليات إعادة التوجيه إلى أنظمة غير HTTP، مثل
data:
. تستخدم عمليات إعادة التوجيه التي بدأت من خلال إجراء إعادة توجيه طريقة الطلب الأصلية لإعادة التوجيه، باستثناء واحد: إذا بدأت عملية إعادة التوجيه في مرحلة onHeadersReceived، سيتم إصدارها باستخدام طريقة GET. ويتم تجاهل عمليات إعادة التوجيه من عناوين URL التي تتضمّن المخطَّطَينws://
وwss://
. -
requestHeaders
HttpHeaders اختياري
يُستخدم فقط كاستجابة لحدث onbeforeSendHeaders. وفي حال ضبطها، يتم تقديم الطلب باستخدام عناوين الطلبات هذه بدلاً من ذلك.
-
responseHeaders
HttpHeaders اختياري
يُستخدم فقط كاستجابة لحدث onHeadersReceived. في حال ضبط السياسة، يُفترض أن يكون الخادم قد استجاب باستخدام عناوين الاستجابة هذه بدلاً من ذلك. لا تعرض
responseHeaders
إلا إذا كنت تريد فعلاً تعديل الرؤوس للحد من عدد التعارضات (لا يمكن تعديل أكثر منresponseHeaders
لكل طلب إلا من خلال إضافة واحدة).
FormDataItem
يحتوي على البيانات التي تم تمريرها ضمن بيانات النموذج. بالنسبة إلى نموذج urlEncrypt، يتم تخزينها كسلسلة إذا كانت البيانات عبارة عن سلسلة utf-8 وكطريقة مصفوفة ArrayBuffer في الحالات الأخرى. بالنسبة إلى بيانات النموذج، يكون ArrayBuffer. إذا كانت بيانات النموذج تمثل ملف تحميل، تكون عبارة عن سلسلة مع اسم الملف، إذا تم توفير اسم الملف.
التعداد
ArrayBuffer
سلسلة
HttpHeaders
تمثّل هذه السمة مصفوفة من عناوين HTTP. ويتم تمثيل كل عنوان كقاموس يحتوي على المفاتيح name
وإما value
أو binaryValue
.
النوع
الكائن[]
أماكن إقامة
-
binaryValue
number[] اختيارية
قيمة عنوان HTTP إذا تعذّر تمثيله بترميز UTF-8، مُخزَّنة كقيم بايت فردية (0..255).
-
اسم
سلسلة
اسم عنوان HTTP.
-
القيمة
سلسلة اختيارية
قيمة عنوان HTTP إذا كان من الممكن تمثيله بترميز UTF-8.
IgnoredActionType
التعداد
"request_headers"
"auth_credentials"
OnAuthRequiredOptions
التعداد
"ResponseHeaders"
تشير إلى أنّه يجب تضمين عناوين الاستجابة في الحدث.
"blocking"
يحدد هذا الخيار أن الطلب تم حظره إلى أن يتم عرض وظيفة معاودة الاتصال.
"asyncblock"
يحدد هذا الإعداد أنه يتم التعامل مع وظيفة معاودة الاتصال بشكل غير متزامن.
"extraHeaders"
تحديد أنّ العناوين يمكن أن تنتهك مشاركة الموارد المتعدّدة المصادر (CORS).
OnBeforeRedirectOptions
التعداد
"ResponseHeaders"
تشير إلى أنّه يجب تضمين عناوين الاستجابة في الحدث.
"extraHeaders"
تحديد أنّ العناوين يمكن أن تنتهك مشاركة الموارد المتعدّدة المصادر (CORS).
OnBeforeRequestOptions
التعداد
"blocking"
يحدد هذا الخيار أن الطلب تم حظره إلى أن يتم عرض وظيفة معاودة الاتصال.
"requestBody"
يحدد نص الطلب أنه يجب تضمين نص الطلب في الحدث.
"extraHeaders"
تحديد أنّ العناوين يمكن أن تنتهك مشاركة الموارد المتعدّدة المصادر (CORS).
OnBeforeSendHeadersOptions
التعداد
"requestHeaders"
يحدد تضمين عنوان الطلب في الحدث.
"blocking"
يحدد هذا الخيار أن الطلب تم حظره إلى أن يتم عرض وظيفة معاودة الاتصال.
"extraHeaders"
تحديد أنّ العناوين يمكن أن تنتهك مشاركة الموارد المتعدّدة المصادر (CORS).
OnCompletedOptions
التعداد
"ResponseHeaders"
تشير إلى أنّه يجب تضمين عناوين الاستجابة في الحدث.
"extraHeaders"
تحديد أنّ العناوين يمكن أن تنتهك مشاركة الموارد المتعدّدة المصادر (CORS).
OnErrorOccurredOptions
القيمة
"extraHeaders"
OnHeadersReceivedOptions
التعداد
"blocking"
يحدد هذا الخيار أن الطلب تم حظره إلى أن يتم عرض وظيفة معاودة الاتصال.
"ResponseHeaders"
تشير إلى أنّه يجب تضمين عناوين الاستجابة في الحدث.
"extraHeaders"
تحديد أنّ العناوين يمكن أن تنتهك مشاركة الموارد المتعدّدة المصادر (CORS).
OnResponseStartedOptions
التعداد
"ResponseHeaders"
تشير إلى أنّه يجب تضمين عناوين الاستجابة في الحدث.
"extraHeaders"
تحديد أنّ العناوين يمكن أن تنتهك مشاركة الموارد المتعدّدة المصادر (CORS).
OnSendHeadersOptions
التعداد
"requestHeaders"
يحدد تضمين عنوان الطلب في الحدث.
"extraHeaders"
تحديد أنّ العناوين يمكن أن تنتهك مشاركة الموارد المتعدّدة المصادر (CORS).
RequestFilter
كائن يصف الفلاتر لتطبيقها على أحداث webRequest.
أماكن إقامة
-
tabId
الرقم اختياري
-
الأنواع
ResourceType[] اختيارية
قائمة بأنواع الطلبات وسيتم استبعاد الطلبات التي لا يمكن أن تتطابق مع أي من الأنواع.
-
urls
سلسلة[]
قائمة بعناوين URL أو أنماط عناوين URL وستتم فلترة الطلبات التي لا يمكن أن تتطابق مع أيٍّ من عناوين URL.
-
windowId
الرقم اختياري
ResourceType
التعداد
"main_frame"
تحديد المورد كإطار رئيسي
"sub_frame"
يحدد المورد كإطار فرعي.
"stylesheet"
يحدد المورد على أنه ورقة أنماط.
"script"
يحدد المورد على أنه نص برمجي.
"image"
لتحديد المورد كصورة.
"font"
يحدد المورد كخط.
"object"
يحدد المورد على أنه كائن.
"xmlhttprequest"
يحدد المورد على أنه XMLHttpRequest.
"ping"
يحدد المورد على أنه فحص اتصال.
"csp_report"
يحدّد المورد كتقرير سياسة أمان المحتوى (CSP).
"media"
يحدد المورد على أنه كائن وسائط.
"websocket"
يحدد المورد على أنه WebSocket.
"webbundle"
تحدّد المورد على أنّه WebBundle.
"other"
يحدد المورد كنوع غير مضمَّن في الأنواع المدرَجة.
UploadData
يحتوي على بيانات تم تحميلها في طلب عنوان URL.
أماكن إقامة
-
بايت
أي اختياري
مصفوفة مصفوفة تضمّ نسخة من البيانات.
-
ملف
سلسلة اختيارية
سلسلة تحتوي على مسار الملف واسمه
أماكن إقامة
MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES
الحد الأقصى لعدد مرات استدعاء handlerBehaviorChanged
لكل 10 دقائق من الفاصل الزمني المستمر. handlerBehaviorChanged
هو استدعاء دالة باهظ الثمن لا ينبغي استدعاؤه كثيرًا.
القيمة
20
الطُرق
handlerBehaviorChanged()
chrome.webRequest.handlerBehaviorChanged(
callback?: function,
)
يجب طلبه عند تغيير سلوك معالِجات webRequest لمنع المعالجة غير الصحيحة بسبب التخزين المؤقت. استدعاء الدالة هذا مكلف. لا تدعه كثيرًا.
المَعلمات
-
معاودة الاتصال
الدالة اختيارية
تبدو معلَمة
callback
على النحو التالي:() => void
المرتجعات
-
Promise<void>
Chrome 116 والإصدارات الأحدثتتوفّر الوعود في إصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير عمليات معاودة الاتصال من أجل التوافق مع الأنظمة القديمة. لا يمكنك استخدام كليهما في نفس استدعاء الدالة. يتم حل الوعد بنفس النوع الذي يتم تمريره إلى معاودة الاتصال.
فعاليات
onActionIgnored
chrome.webRequest.onActionIgnored.addListener(
callback: function,
)
يتم تنشيطها عند تجاهل التعديل المقترَح على الإضافة في طلب الشبكة. يحدث ذلك في حال حدوث تعارض مع إضافات أخرى.
المَعلمات
-
معاودة الاتصال
الوظيفة
تبدو معلَمة
callback
على النحو التالي:(details: object) => void
-
التفاصيل
عنصر
-
إجراء
الإجراء المقترَح الذي تم تجاهله
-
requestId
سلسلة
رقم تعريف الطلب. تكون أرقام تعريف الطلبات فريدة ضمن جلسة متصفّح. ونتيجةً لذلك، يمكن استخدامها لربط أحداث مختلفة للطلب نفسه.
-
-
onAuthRequired
chrome.webRequest.onAuthRequired.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnAuthRequiredOptions[],
)
يتم تنشيطها عند تلقي إخفاق المصادقة. وتتوفر للمستمع ثلاثة خيارات: يمكنه تقديم بيانات اعتماد المصادقة، أو إلغاء الطلب وعرض صفحة الخطأ، أو عدم اتخاذ أي إجراء بشأن التحدي. وفي حال تقديم بيانات اعتماد غير صالحة للمستخدم، قد يتم استدعاء هذه العملية عدة مرات للطلب نفسه. ملاحظة: يجب تحديد وضع واحد فقط من وضعَي 'blocking'
أو 'asyncBlocking'
في المعلَمة extraInfoSpec
.
المَعلمات
-
معاودة الاتصال
الوظيفة
تبدو معلَمة
callback
على النحو التالي:(details: object, asyncCallback?: function) => BlockingResponse | undefined
-
التفاصيل
عنصر
-
منافس
عنصر
الخادم الذي يطلب المصادقة.
-
مضيف
سلسلة
-
المنفذ
الرقم
-
-
documentId
سلسلة
Chrome 106 والإصدارات الأحدثالمعرِّف الفريد العالمي للمستند الذي يُرسل الطلب
-
documentLifecycleChrome 106 والإصدارات الأحدث
دورة حياة المستند.
-
frameId
الرقم
تشير القيمة 0 إلى أن الطلب يحدث في الإطار الرئيسي، وتشير القيمة الموجبة إلى معرّف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند الإطار (الفرعي) (
type
هوmain_frame
أوsub_frame
)، تشير السمةframeId
إلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. معرّفات الإطارات فريدة داخل علامة التبويب. -
frameTypeChrome 106 والإصدارات الأحدث
نوع الإطار الذي حدث فيه الطلب.
-
بادئ تشغيل
سلسلة اختيارية
الإصدار 63 من Chrome والإصدارات الأحدثالمصدر الذي تم تقديم الطلب منه. لا يتغير ذلك من خلال عمليات إعادة التوجيه. وإذا كان هذا المصدر مبهمًا، سيتم استخدام السلسلة "null".
-
isProxy
boolean
True بالنسبة إلى Proxy-Authenticate، وخطأ لـ WWW-Authenticate.
-
method
سلسلة
طريقة HTTP القياسية.
-
parentDocumentId
سلسلة اختيارية
Chrome 106 والإصدارات الأحدثالمعرّف الفريد العالمي للمستند الرئيسي الذي يحتوي على هذا الإطار لا يتم ضبط هذا الإعداد في حال عدم توفّر عنصر رئيسي.
-
parentFrameId
الرقم
رقم تعريف الإطار الذي يحيط بالإطار الذي أرسل الطلب اضبط القيمة على -1 في حال عدم توفّر إطار رئيسي.
-
عالم
سلسلة اختيارية
نطاق المصادقة الذي يوفّره الخادم، في حال توفُّره
-
requestId
سلسلة
رقم تعريف الطلب. تكون أرقام تعريف الطلبات فريدة ضمن جلسة متصفّح. ونتيجةً لذلك، يمكن استخدامها لربط أحداث مختلفة للطلب نفسه.
-
responseHeaders
HttpHeaders اختياري
عناوين استجابة HTTP التي تم تلقّيها مع هذه الاستجابة.
-
المخطط
سلسلة
مخطط المصادقة، مثل "أساسي" أو "ملخص".
-
statusCode
الرقم
Chrome 43 والإصدارات الأحدثالرمز العادي لحالة HTTP التي يعرضها الخادم.
-
statusLine
سلسلة
سطر حالة HTTP للاستجابة أو سلسلة "HTTP/0.9 200 OK" لاستجابات HTTP/0.9 (أي الاستجابات التي تفتقر إلى سطر حالة) أو سلسلة فارغة في حال عدم وجود رؤوس.
-
tabId
الرقم
رقم تعريف علامة التبويب التي يتم فيها تقديم الطلب. يمكنك ضبط القيمة على -1 إذا لم يكن الطلب مرتبطًا بعلامة تبويب.
-
timeStamp
الرقم
الوقت الذي يتم فيه تشغيل هذه الإشارة، بالمللي ثانية منذ تاريخ بدء حساب الفترة
-
كتابة
طريقة استخدام المرجع المطلوب
-
url
سلسلة
-
-
asyncCallback
الدالة اختيارية
Chrome 58 والإصدارات الأحدثتبدو معلَمة
asyncCallback
على النحو التالي:(response: BlockingResponse) => void
-
returns
BlockingResponse | غير محدّد
إذا تم تحديد "الحظر" في المعلمة "extraInfoSpec"، يجب أن تعرض أداة معالجة الحدث كائنًا من هذا النوع.
-
-
filter
-
extraInfoSpec
OnAuthRequiredOptions[] اختيارية
onBeforeRedirect
chrome.webRequest.onBeforeRedirect.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeRedirectOptions[],
)
يتم تنشيطها عندما تكون عملية إعادة توجيه بدأها الخادم على وشك الحدوث.
المَعلمات
-
معاودة الاتصال
الوظيفة
تبدو معلَمة
callback
على النحو التالي:(details: object) => void
-
التفاصيل
عنصر
-
documentId
سلسلة
Chrome 106 والإصدارات الأحدثالمعرِّف الفريد العالمي للمستند الذي يُرسل الطلب
-
documentLifecycleChrome 106 والإصدارات الأحدث
دورة حياة المستند.
-
frameId
الرقم
تشير القيمة 0 إلى أن الطلب يحدث في الإطار الرئيسي، وتشير القيمة الموجبة إلى معرّف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند الإطار (الفرعي) (
type
هوmain_frame
أوsub_frame
)، تشير السمةframeId
إلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. معرّفات الإطارات فريدة داخل علامة التبويب. -
frameTypeChrome 106 والإصدارات الأحدث
نوع الإطار الذي حدث فيه الطلب.
-
fromCache
boolean
يشير إلى ما إذا تم استرجاع هذه الاستجابة من ذاكرة التخزين المؤقت على القرص.
-
بادئ تشغيل
سلسلة اختيارية
الإصدار 63 من Chrome والإصدارات الأحدثالمصدر الذي تم تقديم الطلب منه. لا يتغير ذلك من خلال عمليات إعادة التوجيه. وإذا كان هذا المصدر مبهمًا، سيتم استخدام السلسلة "null".
-
ip
سلسلة اختيارية
عنوان IP للخادم الذي تم إرسال الطلب إليه. لاحظ أنه قد يكون عنوان IPv6 حرفيًا.
-
method
سلسلة
طريقة HTTP القياسية.
-
parentDocumentId
سلسلة اختيارية
Chrome 106 والإصدارات الأحدثالمعرّف الفريد العالمي للمستند الرئيسي الذي يحتوي على هذا الإطار لا يتم ضبط هذا الإعداد في حال عدم توفّر عنصر رئيسي.
-
parentFrameId
الرقم
رقم تعريف الإطار الذي يحيط بالإطار الذي أرسل الطلب اضبط القيمة على -1 في حال عدم توفّر إطار رئيسي.
-
redirectUrl
سلسلة
عنوان URL الجديد
-
requestId
سلسلة
رقم تعريف الطلب. تكون أرقام تعريف الطلبات فريدة ضمن جلسة متصفّح. ونتيجةً لذلك، يمكن استخدامها لربط أحداث مختلفة للطلب نفسه.
-
responseHeaders
HttpHeaders اختياري
عناوين استجابة HTTP التي تم تلقّيها مع عملية إعادة التوجيه هذه.
-
statusCode
الرقم
الرمز العادي لحالة HTTP التي يعرضها الخادم.
-
statusLine
سلسلة
سطر حالة HTTP للاستجابة أو سلسلة "HTTP/0.9 200 OK" لاستجابات HTTP/0.9 (أي الاستجابات التي تفتقر إلى سطر حالة) أو سلسلة فارغة في حال عدم وجود رؤوس.
-
tabId
الرقم
رقم تعريف علامة التبويب التي يتم فيها تقديم الطلب. يمكنك ضبط القيمة على -1 إذا لم يكن الطلب مرتبطًا بعلامة تبويب.
-
timeStamp
الرقم
الوقت الذي يتم فيه تشغيل هذه الإشارة، بالمللي ثانية منذ تاريخ بدء حساب الفترة
-
كتابة
طريقة استخدام المرجع المطلوب
-
url
سلسلة
-
-
-
filter
-
extraInfoSpec
OnBeforeRedirectOptions[] اختيارية
onBeforeRequest
chrome.webRequest.onBeforeRequest.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeRequestOptions[],
)
يتم تنشيطها عندما يكون الطلب على وشك الحدوث.
المَعلمات
-
معاودة الاتصال
الوظيفة
تبدو معلَمة
callback
على النحو التالي:(details: object) => BlockingResponse | undefined
-
التفاصيل
عنصر
-
documentId
سلسلة اختيارية
Chrome 106 والإصدارات الأحدثالمعرِّف الفريد العالمي للمستند الذي يُرسل الطلب
-
documentLifecycle
extensionTypes.DocumentLifecycle اختيارية
Chrome 106 والإصدارات الأحدثدورة حياة المستند.
-
frameId
الرقم
تشير القيمة 0 إلى أن الطلب يحدث في الإطار الرئيسي، وتشير القيمة الموجبة إلى معرّف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند الإطار (الفرعي) (
type
هوmain_frame
أوsub_frame
)، تشير السمةframeId
إلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. معرّفات الإطارات فريدة داخل علامة التبويب. -
frameType
extensionTypes.FrameType اختيارية
Chrome 106 والإصدارات الأحدثنوع الإطار الذي حدث فيه الطلب.
-
بادئ تشغيل
سلسلة اختيارية
الإصدار 63 من Chrome والإصدارات الأحدثالمصدر الذي تم تقديم الطلب منه. لا يتغير ذلك من خلال عمليات إعادة التوجيه. وإذا كان هذا المصدر مبهمًا، سيتم استخدام السلسلة "null".
-
method
سلسلة
طريقة HTTP القياسية.
-
parentDocumentId
سلسلة اختيارية
Chrome 106 والإصدارات الأحدثالمعرّف الفريد العالمي للمستند الرئيسي الذي يحتوي على هذا الإطار لا يتم ضبط هذا الإعداد في حال عدم توفّر عنصر رئيسي.
-
parentFrameId
الرقم
رقم تعريف الإطار الذي يحيط بالإطار الذي أرسل الطلب اضبط القيمة على -1 في حال عدم توفّر إطار رئيسي.
-
requestBody
الكائن اختياري
يحتوي على بيانات النص الأساسي لطلب HTTP. يتم توفير هذه السمة فقط إذا كانت قيمة additionalInfoSpec تحتوي على "requestBody".
-
خطأ
سلسلة اختيارية
الأخطاء التي تحدث عند الحصول على بيانات نص الطلب.
-
formData
الكائن اختياري
إذا كانت طريقة الطلب هي POST وكان النص عبارة عن سلسلة من أزواج المفتاح/القيم التي تم ترميزها بترميز UTF8، بالترميز المتعدد الأجزاء/النموذج-البيانات، أو app/x-www-form-url encrypted، يكون هذا القاموس متاحًا ويشتمل كل مفتاح على قائمة بجميع القيم لهذا المفتاح. إذا كانت البيانات من نوع وسائط آخر، أو إذا كانت مكتوبة بشكل غير صحيح، فإن القاموس غير موجود. مثال على قيمة هذا القاموس هي {'key': ['value1', 'value2']}.
-
نقي
UploadData[] اختيارية
إذا كانت طريقة الطلب هي PUT أو POST، ولم يسبق تحليل النص الأساسي في formData، يتم تضمين عناصر نص الطلب التي لم يتم تحليلها في هذا الصفيف.
-
-
requestId
سلسلة
رقم تعريف الطلب. تكون أرقام تعريف الطلبات فريدة ضمن جلسة متصفّح. ونتيجةً لذلك، يمكن استخدامها لربط أحداث مختلفة للطلب نفسه.
-
tabId
الرقم
رقم تعريف علامة التبويب التي يتم فيها تقديم الطلب. يمكنك ضبط القيمة على -1 إذا لم يكن الطلب مرتبطًا بعلامة تبويب.
-
timeStamp
الرقم
الوقت الذي يتم فيه تشغيل هذه الإشارة، بالمللي ثانية منذ تاريخ بدء حساب الفترة
-
كتابة
طريقة استخدام المرجع المطلوب
-
url
سلسلة
-
-
returns
BlockingResponse | غير محدّد
إذا تم تحديد "الحظر" في المعلمة "extraInfoSpec"، يجب أن تعرض أداة معالجة الحدث كائنًا من هذا النوع.
-
-
filter
-
extraInfoSpec
OnBeforeRequestOptions[] اختيارية
onBeforeSendHeaders
chrome.webRequest.onBeforeSendHeaders.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeSendHeadersOptions[],
)
يتم تنشيطها قبل إرسال طلب HTTP، فور توفر عناوين الطلبات. قد يحدث هذا بعد إجراء اتصال TCP بالخادم، ولكن قبل إرسال أي بيانات HTTP.
المَعلمات
-
معاودة الاتصال
الوظيفة
تبدو معلَمة
callback
على النحو التالي:(details: object) => BlockingResponse | undefined
-
التفاصيل
عنصر
-
documentId
سلسلة
Chrome 106 والإصدارات الأحدثالمعرِّف الفريد العالمي للمستند الذي يُرسل الطلب
-
documentLifecycleChrome 106 والإصدارات الأحدث
دورة حياة المستند.
-
frameId
الرقم
تشير القيمة 0 إلى أن الطلب يحدث في الإطار الرئيسي، وتشير القيمة الموجبة إلى معرّف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند الإطار (الفرعي) (
type
هوmain_frame
أوsub_frame
)، تشير السمةframeId
إلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. معرّفات الإطارات فريدة داخل علامة التبويب. -
frameTypeChrome 106 والإصدارات الأحدث
نوع الإطار الذي حدث فيه الطلب.
-
بادئ تشغيل
سلسلة اختيارية
الإصدار 63 من Chrome والإصدارات الأحدثالمصدر الذي تم تقديم الطلب منه. لا يتغير ذلك من خلال عمليات إعادة التوجيه. وإذا كان هذا المصدر مبهمًا، سيتم استخدام السلسلة "null".
-
method
سلسلة
طريقة HTTP القياسية.
-
parentDocumentId
سلسلة اختيارية
Chrome 106 والإصدارات الأحدثالمعرّف الفريد العالمي للمستند الرئيسي الذي يحتوي على هذا الإطار لا يتم ضبط هذا الإعداد في حال عدم توفّر عنصر رئيسي.
-
parentFrameId
الرقم
رقم تعريف الإطار الذي يحيط بالإطار الذي أرسل الطلب اضبط القيمة على -1 في حال عدم توفّر إطار رئيسي.
-
requestHeaders
HttpHeaders اختياري
عناوين طلبات HTTP التي سيتم إرسالها مع هذا الطلب
-
requestId
سلسلة
رقم تعريف الطلب. تكون أرقام تعريف الطلبات فريدة ضمن جلسة متصفّح. ونتيجةً لذلك، يمكن استخدامها لربط أحداث مختلفة للطلب نفسه.
-
tabId
الرقم
رقم تعريف علامة التبويب التي يتم فيها تقديم الطلب. يمكنك ضبط القيمة على -1 إذا لم يكن الطلب مرتبطًا بعلامة تبويب.
-
timeStamp
الرقم
الوقت الذي يتم فيه تشغيل هذه الإشارة، بالمللي ثانية منذ تاريخ بدء حساب الفترة
-
كتابة
طريقة استخدام المرجع المطلوب
-
url
سلسلة
-
-
returns
BlockingResponse | غير محدّد
إذا تم تحديد "الحظر" في المعلمة "extraInfoSpec"، يجب أن تعرض أداة معالجة الحدث كائنًا من هذا النوع.
-
-
filter
-
extraInfoSpec
OnBeforeSendHeadersOptions[] اختيارية
onCompleted
chrome.webRequest.onCompleted.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnCompletedOptions[],
)
يتم تنشيطها عند اكتمال الطلب.
المَعلمات
-
معاودة الاتصال
الوظيفة
تبدو معلَمة
callback
على النحو التالي:(details: object) => void
-
التفاصيل
عنصر
-
documentId
سلسلة
Chrome 106 والإصدارات الأحدثالمعرِّف الفريد العالمي للمستند الذي يُرسل الطلب
-
documentLifecycleChrome 106 والإصدارات الأحدث
دورة حياة المستند.
-
frameId
الرقم
تشير القيمة 0 إلى أن الطلب يحدث في الإطار الرئيسي، وتشير القيمة الموجبة إلى معرّف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند الإطار (الفرعي) (
type
هوmain_frame
أوsub_frame
)، تشير السمةframeId
إلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. معرّفات الإطارات فريدة داخل علامة التبويب. -
frameTypeChrome 106 والإصدارات الأحدث
نوع الإطار الذي حدث فيه الطلب.
-
fromCache
boolean
يشير إلى ما إذا تم استرجاع هذه الاستجابة من ذاكرة التخزين المؤقت على القرص.
-
بادئ تشغيل
سلسلة اختيارية
الإصدار 63 من Chrome والإصدارات الأحدثالمصدر الذي تم تقديم الطلب منه. لا يتغير ذلك من خلال عمليات إعادة التوجيه. وإذا كان هذا المصدر مبهمًا، سيتم استخدام السلسلة "null".
-
ip
سلسلة اختيارية
عنوان IP للخادم الذي تم إرسال الطلب إليه. لاحظ أنه قد يكون عنوان IPv6 حرفيًا.
-
method
سلسلة
طريقة HTTP القياسية.
-
parentDocumentId
سلسلة اختيارية
Chrome 106 والإصدارات الأحدثالمعرّف الفريد العالمي للمستند الرئيسي الذي يحتوي على هذا الإطار لا يتم ضبط هذا الإعداد في حال عدم توفّر عنصر رئيسي.
-
parentFrameId
الرقم
رقم تعريف الإطار الذي يحيط بالإطار الذي أرسل الطلب اضبط القيمة على -1 في حال عدم توفّر إطار رئيسي.
-
requestId
سلسلة
رقم تعريف الطلب. تكون أرقام تعريف الطلبات فريدة ضمن جلسة متصفّح. ونتيجةً لذلك، يمكن استخدامها لربط أحداث مختلفة للطلب نفسه.
-
responseHeaders
HttpHeaders اختياري
عناوين استجابة HTTP التي تم تلقّيها مع هذه الاستجابة.
-
statusCode
الرقم
الرمز العادي لحالة HTTP التي يعرضها الخادم.
-
statusLine
سلسلة
سطر حالة HTTP للاستجابة أو سلسلة "HTTP/0.9 200 OK" لاستجابات HTTP/0.9 (أي الاستجابات التي تفتقر إلى سطر حالة) أو سلسلة فارغة في حال عدم وجود رؤوس.
-
tabId
الرقم
رقم تعريف علامة التبويب التي يتم فيها تقديم الطلب. يمكنك ضبط القيمة على -1 إذا لم يكن الطلب مرتبطًا بعلامة تبويب.
-
timeStamp
الرقم
الوقت الذي يتم فيه تشغيل هذه الإشارة، بالمللي ثانية منذ تاريخ بدء حساب الفترة
-
كتابة
طريقة استخدام المرجع المطلوب
-
url
سلسلة
-
-
-
filter
-
extraInfoSpec
OnCompletedOptions[] اختيارية
onErrorOccurred
chrome.webRequest.onErrorOccurred.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnErrorOccurredOptions[],
)
يتم تنشيطها عند حدوث خطأ.
المَعلمات
-
معاودة الاتصال
الوظيفة
تبدو معلَمة
callback
على النحو التالي:(details: object) => void
-
التفاصيل
عنصر
-
documentId
سلسلة
Chrome 106 والإصدارات الأحدثالمعرِّف الفريد العالمي للمستند الذي يُرسل الطلب تكون هذه القيمة غير موجودة إذا كان الطلب تنقُّل في إطار.
-
documentLifecycleChrome 106 والإصدارات الأحدث
دورة حياة المستند.
-
خطأ
سلسلة
وصف الخطأ لا يمكن ضمان بقاء هذه السلسلة متوافقة مع الأنظمة القديمة بين الإصدارات. يجب عدم التحليل واتخاذ الإجراءات استنادًا إلى المحتوى.
-
frameId
الرقم
تشير القيمة 0 إلى أن الطلب يحدث في الإطار الرئيسي، وتشير القيمة الموجبة إلى معرّف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند الإطار (الفرعي) (
type
هوmain_frame
أوsub_frame
)، تشير السمةframeId
إلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. معرّفات الإطارات فريدة داخل علامة التبويب. -
frameTypeChrome 106 والإصدارات الأحدث
نوع الإطار الذي حدث فيه الطلب.
-
fromCache
boolean
يشير إلى ما إذا تم استرجاع هذه الاستجابة من ذاكرة التخزين المؤقت على القرص.
-
بادئ تشغيل
سلسلة اختيارية
الإصدار 63 من Chrome والإصدارات الأحدثالمصدر الذي تم تقديم الطلب منه. لا يتغير ذلك من خلال عمليات إعادة التوجيه. وإذا كان هذا المصدر مبهمًا، سيتم استخدام السلسلة "null".
-
ip
سلسلة اختيارية
عنوان IP للخادم الذي تم إرسال الطلب إليه. لاحظ أنه قد يكون عنوان IPv6 حرفيًا.
-
method
سلسلة
طريقة HTTP القياسية.
-
parentDocumentId
سلسلة اختيارية
Chrome 106 والإصدارات الأحدثالمعرّف الفريد العالمي للمستند الرئيسي الذي يحتوي على هذا الإطار لا يتم ضبط هذا الإعداد في حال عدم توفّر عنصر رئيسي.
-
parentFrameId
الرقم
رقم تعريف الإطار الذي يحيط بالإطار الذي أرسل الطلب اضبط القيمة على -1 في حال عدم توفّر إطار رئيسي.
-
requestId
سلسلة
رقم تعريف الطلب. تكون أرقام تعريف الطلبات فريدة ضمن جلسة متصفّح. ونتيجةً لذلك، يمكن استخدامها لربط أحداث مختلفة للطلب نفسه.
-
tabId
الرقم
رقم تعريف علامة التبويب التي يتم فيها تقديم الطلب. يمكنك ضبط القيمة على -1 إذا لم يكن الطلب مرتبطًا بعلامة تبويب.
-
timeStamp
الرقم
الوقت الذي يتم فيه تشغيل هذه الإشارة، بالمللي ثانية منذ تاريخ بدء حساب الفترة
-
كتابة
طريقة استخدام المرجع المطلوب
-
url
سلسلة
-
-
-
filter
-
extraInfoSpec
OnErrorOccurredOptions[] اختيارية
onHeadersReceived
chrome.webRequest.onHeadersReceived.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnHeadersReceivedOptions[],
)
يتم تنشيطها عند استلام رؤوس استجابة HTTP لأحد الطلبات.
المَعلمات
-
معاودة الاتصال
الوظيفة
تبدو معلَمة
callback
على النحو التالي:(details: object) => BlockingResponse | undefined
-
التفاصيل
عنصر
-
documentId
سلسلة
Chrome 106 والإصدارات الأحدثالمعرِّف الفريد العالمي للمستند الذي يُرسل الطلب
-
documentLifecycleChrome 106 والإصدارات الأحدث
دورة حياة المستند.
-
frameId
الرقم
تشير القيمة 0 إلى أن الطلب يحدث في الإطار الرئيسي، وتشير القيمة الموجبة إلى معرّف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند الإطار (الفرعي) (
type
هوmain_frame
أوsub_frame
)، تشير السمةframeId
إلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. معرّفات الإطارات فريدة داخل علامة التبويب. -
frameTypeChrome 106 والإصدارات الأحدث
نوع الإطار الذي حدث فيه الطلب.
-
بادئ تشغيل
سلسلة اختيارية
الإصدار 63 من Chrome والإصدارات الأحدثالمصدر الذي تم تقديم الطلب منه. لا يتغير ذلك من خلال عمليات إعادة التوجيه. وإذا كان هذا المصدر مبهمًا، سيتم استخدام السلسلة "null".
-
method
سلسلة
طريقة HTTP القياسية.
-
parentDocumentId
سلسلة اختيارية
Chrome 106 والإصدارات الأحدثالمعرّف الفريد العالمي للمستند الرئيسي الذي يحتوي على هذا الإطار لا يتم ضبط هذا الإعداد في حال عدم توفّر عنصر رئيسي.
-
parentFrameId
الرقم
رقم تعريف الإطار الذي يحيط بالإطار الذي أرسل الطلب اضبط القيمة على -1 في حال عدم توفّر إطار رئيسي.
-
requestId
سلسلة
رقم تعريف الطلب. تكون أرقام تعريف الطلبات فريدة ضمن جلسة متصفّح. ونتيجةً لذلك، يمكن استخدامها لربط أحداث مختلفة للطلب نفسه.
-
responseHeaders
HttpHeaders اختياري
عناوين استجابة HTTP التي تم استلامها مع هذه الاستجابة.
-
statusCode
الرقم
Chrome 43 والإصدارات الأحدثالرمز العادي لحالة HTTP التي يعرضها الخادم.
-
statusLine
سلسلة
سطر حالة HTTP للاستجابة أو سلسلة "HTTP/0.9 200 OK" لاستجابات HTTP/0.9 (أي الاستجابات التي تفتقر إلى سطر حالة).
-
tabId
الرقم
رقم تعريف علامة التبويب التي يتم فيها تقديم الطلب. يمكنك ضبط القيمة على -1 إذا لم يكن الطلب مرتبطًا بعلامة تبويب.
-
timeStamp
الرقم
الوقت الذي يتم فيه تشغيل هذه الإشارة، بالمللي ثانية منذ تاريخ بدء حساب الفترة
-
كتابة
طريقة استخدام المرجع المطلوب
-
url
سلسلة
-
-
returns
BlockingResponse | غير محدّد
إذا تم تحديد "الحظر" في المعلمة "extraInfoSpec"، يجب أن تعرض أداة معالجة الحدث كائنًا من هذا النوع.
-
-
filter
-
extraInfoSpec
OnHeadersReceivedOptions[] اختيارية
onResponseStarted
chrome.webRequest.onResponseStarted.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnResponseStartedOptions[],
)
يتم تنشيطها عند تلقّي البايت الأول من نص الاستجابة. بالنسبة إلى طلبات HTTP، يعني هذا توفر سطر الحالة ورؤوس الاستجابة.
المَعلمات
-
معاودة الاتصال
الوظيفة
تبدو معلَمة
callback
على النحو التالي:(details: object) => void
-
التفاصيل
عنصر
-
documentId
سلسلة
Chrome 106 والإصدارات الأحدثالمعرِّف الفريد العالمي للمستند الذي يُرسل الطلب
-
documentLifecycleChrome 106 والإصدارات الأحدث
دورة حياة المستند.
-
frameId
الرقم
تشير القيمة 0 إلى أن الطلب يحدث في الإطار الرئيسي، وتشير القيمة الموجبة إلى معرّف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند الإطار (الفرعي) (
type
هوmain_frame
أوsub_frame
)، تشير السمةframeId
إلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. معرّفات الإطارات فريدة داخل علامة التبويب. -
frameTypeChrome 106 والإصدارات الأحدث
نوع الإطار الذي حدث فيه الطلب.
-
fromCache
boolean
يشير إلى ما إذا تم استرجاع هذه الاستجابة من ذاكرة التخزين المؤقت على القرص.
-
بادئ تشغيل
سلسلة اختيارية
الإصدار 63 من Chrome والإصدارات الأحدثالمصدر الذي تم تقديم الطلب منه. لا يتغير ذلك من خلال عمليات إعادة التوجيه. وإذا كان هذا المصدر مبهمًا، سيتم استخدام السلسلة "null".
-
ip
سلسلة اختيارية
عنوان IP للخادم الذي تم إرسال الطلب إليه. لاحظ أنه قد يكون عنوان IPv6 حرفيًا.
-
method
سلسلة
طريقة HTTP القياسية.
-
parentDocumentId
سلسلة اختيارية
Chrome 106 والإصدارات الأحدثالمعرّف الفريد العالمي للمستند الرئيسي الذي يحتوي على هذا الإطار لا يتم ضبط هذا الإعداد في حال عدم توفّر عنصر رئيسي.
-
parentFrameId
الرقم
رقم تعريف الإطار الذي يحيط بالإطار الذي أرسل الطلب اضبط القيمة على -1 في حال عدم توفّر إطار رئيسي.
-
requestId
سلسلة
رقم تعريف الطلب. تكون أرقام تعريف الطلبات فريدة ضمن جلسة متصفّح. ونتيجةً لذلك، يمكن استخدامها لربط أحداث مختلفة للطلب نفسه.
-
responseHeaders
HttpHeaders اختياري
عناوين استجابة HTTP التي تم تلقّيها مع هذه الاستجابة.
-
statusCode
الرقم
الرمز العادي لحالة HTTP التي يعرضها الخادم.
-
statusLine
سلسلة
سطر حالة HTTP للاستجابة أو سلسلة "HTTP/0.9 200 OK" لاستجابات HTTP/0.9 (أي الاستجابات التي تفتقر إلى سطر حالة) أو سلسلة فارغة في حال عدم وجود رؤوس.
-
tabId
الرقم
رقم تعريف علامة التبويب التي يتم فيها تقديم الطلب. يمكنك ضبط القيمة على -1 إذا لم يكن الطلب مرتبطًا بعلامة تبويب.
-
timeStamp
الرقم
الوقت الذي يتم فيه تشغيل هذه الإشارة، بالمللي ثانية منذ تاريخ بدء حساب الفترة
-
كتابة
طريقة استخدام المرجع المطلوب
-
url
سلسلة
-
-
-
filter
-
extraInfoSpec
OnResponseStartedOptions[] اختيارية
onSendHeaders
chrome.webRequest.onSendHeaders.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnSendHeadersOptions[],
)
يتم تنشيطها قبل إرسال الطلب مباشرةً إلى الخادم (تظهر التعديلات على استدعاءات onPreviousHeaders السابقة عند تنشيط onSendHeaders).
المَعلمات
-
معاودة الاتصال
الوظيفة
تبدو معلَمة
callback
على النحو التالي:(details: object) => void
-
التفاصيل
عنصر
-
documentId
سلسلة
Chrome 106 والإصدارات الأحدثالمعرِّف الفريد العالمي للمستند الذي يُرسل الطلب
-
documentLifecycleChrome 106 والإصدارات الأحدث
دورة حياة المستند.
-
frameId
الرقم
تشير القيمة 0 إلى أن الطلب يحدث في الإطار الرئيسي، وتشير القيمة الموجبة إلى معرّف الإطار الفرعي الذي يحدث فيه الطلب. إذا تم تحميل مستند الإطار (الفرعي) (
type
هوmain_frame
أوsub_frame
)، تشير السمةframeId
إلى رقم تعريف هذا الإطار، وليس رقم تعريف الإطار الخارجي. معرّفات الإطارات فريدة داخل علامة التبويب. -
frameTypeChrome 106 والإصدارات الأحدث
نوع الإطار الذي حدث فيه الطلب.
-
بادئ تشغيل
سلسلة اختيارية
الإصدار 63 من Chrome والإصدارات الأحدثالمصدر الذي تم تقديم الطلب منه. لا يتغير ذلك من خلال عمليات إعادة التوجيه. وإذا كان هذا المصدر مبهمًا، سيتم استخدام السلسلة "null".
-
method
سلسلة
طريقة HTTP القياسية.
-
parentDocumentId
سلسلة اختيارية
Chrome 106 والإصدارات الأحدثالمعرّف الفريد العالمي للمستند الرئيسي الذي يحتوي على هذا الإطار لا يتم ضبط هذا الإعداد في حال عدم توفّر عنصر رئيسي.
-
parentFrameId
الرقم
رقم تعريف الإطار الذي يحيط بالإطار الذي أرسل الطلب اضبط القيمة على -1 في حال عدم توفّر إطار رئيسي.
-
requestHeaders
HttpHeaders اختياري
عناوين طلبات HTTP التي تم إرسالها مع هذا الطلب.
-
requestId
سلسلة
رقم تعريف الطلب. تكون أرقام تعريف الطلبات فريدة ضمن جلسة متصفّح. ونتيجةً لذلك، يمكن استخدامها لربط أحداث مختلفة للطلب نفسه.
-
tabId
الرقم
رقم تعريف علامة التبويب التي يتم فيها تقديم الطلب. يمكنك ضبط القيمة على -1 إذا لم يكن الطلب مرتبطًا بعلامة تبويب.
-
timeStamp
الرقم
الوقت الذي يتم فيه تشغيل هذه الإشارة، بالمللي ثانية منذ تاريخ بدء حساب الفترة
-
كتابة
طريقة استخدام المرجع المطلوب
-
url
سلسلة
-
-
-
filter
-
extraInfoSpec
OnSendHeadersOptions[] اختيارية