توضیحات
از chrome.webRequest
API برای مشاهده و تجزیه و تحلیل ترافیک و رهگیری، مسدود کردن یا تغییر درخواستهای حین پرواز استفاده کنید.
مجوزها
webRequest
آشکار
برای استفاده از API درخواست وب، همراه با مجوزهای میزبان لازم، باید مجوز "webRequest"
در مانیفست افزونه اعلام کنید. برای رهگیری یک درخواست زیر منبع، برنامه افزودنی باید هم به URL درخواستی و هم به آغازگر آن دسترسی داشته باشد. به عنوان مثال:
{
"name": "My extension",
...
"permissions": [
"webRequest"
],
"host_permissions": [
"*://*.google.com/*"
],
...
}
از Chrome 108، اگر از مجوزهای "webRequest"
و "webRequestAuthProvider"
استفاده میکنید، میتوانید اعتبارنامههای رویدادهای onAuthRequired
را به صورت ناهمزمان ارائه کنید.
چرخه زندگی درخواست ها
وب درخواست API مجموعه ای از رویدادها را تعریف می کند که چرخه عمر یک درخواست وب را دنبال می کنند. می توانید از این رویدادها برای مشاهده و تجزیه و تحلیل ترافیک استفاده کنید. برخی رویدادهای همزمان به شما این امکان را می دهند که یک درخواست را رهگیری، مسدود یا تغییر دهید.
چرخه حیات رویداد برای درخواستهای موفق در اینجا نشان داده شده است و به دنبال آن تعاریف رویداد آمده است:
-
onBeforeRequest
(اختیاری همزمان) - هنگامی که درخواستی در شرف وقوع است آتش می گیرد. این رویداد قبل از برقراری هر گونه اتصال TCP ارسال می شود و می توان از آن برای لغو یا تغییر مسیر درخواست ها استفاده کرد.
-
onBeforeSendHeaders
(به صورت اختیاری همزمان) - هنگامی که درخواستی در شرف وقوع است و سرصفحه های اولیه آماده شده اند، آتش می گیرد. این رویداد برای اجازه دادن به برنامه های افزودنی برای افزودن، اصلاح و حذف سرصفحه های درخواست (*) در نظر گرفته شده است. رویداد
onBeforeSendHeaders
به همه مشترکین منتقل می شود، بنابراین مشترکین مختلف ممکن است سعی کنند درخواست را تغییر دهند. برای نحوه رسیدگی به بخش جزئیات پیاده سازی را ببینید. از این رویداد می توان برای لغو درخواست استفاده کرد. -
onSendHeaders
- بعد از اینکه همه برنامههای افزودنی فرصتی برای اصلاح سرصفحههای درخواست داشتند، آتش میگیرد و نسخه نهایی (*) را ارائه میدهد. این رویداد قبل از ارسال سرصفحه ها به شبکه فعال می شود. این رویداد اطلاعاتی است و به صورت ناهمزمان مدیریت می شود. اجازه تغییر یا لغو درخواست را نمی دهد.
-
onHeadersReceived
(به صورت اختیاری همزمان) - هر بار که سرصفحه پاسخ HTTP(S) دریافت می شود فعال می شود. به دلیل تغییر مسیرها و درخواست های احراز هویت، این می تواند چندین بار در هر درخواست اتفاق بیفتد. این رویداد برای اجازه دادن به برنامههای افزودنی برای افزودن، اصلاح و حذف سرصفحههای پاسخ، مانند سرصفحههای نوع محتوای ورودی، در نظر گرفته شده است. دستورالعملهای ذخیرهسازی قبل از راهاندازی این رویداد پردازش میشوند، بنابراین اصلاح هدرهایی مانند Cache-Control هیچ تأثیری بر حافظه پنهان مرورگر ندارد. همچنین به شما امکان می دهد درخواست را لغو یا تغییر مسیر دهید.
-
onAuthRequired
(اختیاری همزمان) - زمانی فعال می شود که یک درخواست نیاز به احراز هویت کاربر داشته باشد. این رویداد را می توان به طور همزمان برای ارائه اعتبار احراز هویت مدیریت کرد. توجه داشته باشید که برنامه های افزودنی ممکن است اعتبارنامه های نامعتبر ارائه دهند. مراقب باشید با ارائه مکرر اعتبارنامه های نامعتبر وارد یک حلقه بی نهایت نشوید. این همچنین می تواند برای لغو درخواست استفاده شود.
-
onBeforeRedirect
- هنگامی که یک تغییر مسیر در شرف اجرا است، فعال می شود. یک تغییر مسیر می تواند توسط یک کد پاسخ HTTP یا توسط یک برنامه افزودنی فعال شود. این رویداد اطلاعاتی است و به صورت ناهمزمان مدیریت می شود. به شما اجازه تغییر یا لغو درخواست را نمی دهد.
-
onResponseStarted
- هنگامی که اولین بایت بدنه پاسخ دریافت می شود فعال می شود. برای درخواست های HTTP، این بدان معنی است که خط وضعیت و سرصفحه های پاسخ در دسترس هستند. این رویداد اطلاعاتی است و به صورت ناهمزمان مدیریت می شود. اجازه تغییر یا لغو درخواست را نمی دهد.
-
onCompleted
- زمانی فعال می شود که یک درخواست با موفقیت پردازش شود.
-
onErrorOccurred
- زمانی فعال می شود که درخواستی با موفقیت پردازش نشود.
API درخواست وب تضمین میکند که برای هر درخواست، onCompleted
یا onErrorOccurred
به عنوان رویداد نهایی با یک استثنا فعال میشود: اگر درخواستی به یک URL data://
هدایت شود، onBeforeRedirect
آخرین رویداد گزارششده است.
* توجه داشته باشید که API درخواست وب انتزاعی از پشته شبکه را به برنامه افزودنی ارائه می دهد. در داخل، یک درخواست URL را می توان به چندین درخواست HTTP تقسیم کرد (به عنوان مثال، برای واکشی محدوده بایت جداگانه از یک فایل بزرگ) یا می تواند توسط پشته شبکه بدون برقراری ارتباط با شبکه مدیریت شود. به همین دلیل، API هدرهای HTTP نهایی را که به شبکه ارسال می شود، ارائه نمی دهد. به عنوان مثال، تمام هدرهایی که مربوط به کش هستند برای افزونه نامرئی هستند.
سرصفحه های زیر در حال حاضر برای رویداد onBeforeSendHeaders
ارائه نشده است. این لیست تضمینی برای کامل یا پایدار بودن آن نیست.
- مجوز
- Cache-Control
- اتصال
- طول محتوا
- میزبان
- If-Modified-Since
- اگر-هیچ-تطابق
- اگر-محدوده
- جزئی-داده
- پراگما
- پروکسی-مجوز
- پروکسی-اتصال
- انتقال-رمزگذاری
از Chrome 79، تغییرات سرصفحه درخواست بر بررسی اشتراکگذاری منابع متقاطع (CORS) تأثیر میگذارد. اگر سرصفحه های اصلاح شده برای درخواست های متقاطع با معیارها مطابقت نداشته باشند، منجر به ارسال یک پیش پرواز CORS می شود تا از سرور بپرسد که آیا چنین هدرهایی قابل پذیرش هستند یا خیر. اگر واقعاً نیاز دارید هدرها را طوری تغییر دهید که پروتکل CORS را نقض کند، باید 'extraHeaders'
در opt_extraInfoSpec
مشخص کنید. از سوی دیگر، اصلاحات هدر پاسخ برای فریب بررسی های CORS کار نمی کند. اگر میخواهید پروتکل CORS را فریب دهید، باید 'extraHeaders'
برای تغییرات پاسخ نیز مشخص کنید.
از Chrome 79، webRequest API به طور پیشفرض درخواستها و پاسخهای CORS قبل از پرواز را رهگیری نمیکند . اگر شنونده ای با 'extraHeaders'
در opt_extraInfoSpec
برای URL درخواست مشخص شده باشد، یک پیش پرواز CORS برای URL درخواست برای یک برنامه افزودنی قابل مشاهده است. onBeforeRequest
همچنین میتواند 'extraHeaders'
از Chrome 79 بگیرد.
از Chrome 79، سرصفحه درخواست زیر ارائه نشده است و نمیتوان آن را بدون تعیین 'extraHeaders'
در opt_extraInfoSpec
تغییر داد یا حذف کرد:
- مبدا
با شروع از Chrome 72، اگر قبل از اینکه مسدود کردن خواندن Cross Origin (CORB) بتواند پاسخ را مسدود کند، نیاز به تغییر پاسخها دارید، باید 'extraHeaders'
در opt_extraInfoSpec
مشخص کنید.
از Chrome 72، سرصفحههای درخواست زیر ارائه نشدهاند و نمیتوان آنها را بدون تعیین 'extraHeaders'
در opt_extraInfoSpec
اصلاح یا حذف کرد:
- پذیرش-زبان
- پذیرش-رمزگذاری
- ارجاع دهنده
- کوکی
از Chrome 72، سرصفحه پاسخ Set-Cookie
ارائه نشده است و نمیتوان آن را بدون تعیین 'extraHeaders'
در opt_extraInfoSpec
تغییر داد یا حذف کرد.
از Chrome 89، سرصفحه پاسخ X-Frame-Options
را نمیتوان بدون تعیین 'extraHeaders'
در opt_extraInfoSpec
بهطور مؤثر اصلاح یا حذف کرد.
webRequest API تنها درخواستهایی را نشان میدهد که برنامه افزودنی با توجه به مجوزهای میزبانش ، مجوز دیدن آنها را دارد. علاوه بر این، فقط طرحهای زیر قابل دسترسی هستند: http://
، https://
، ftp://
، file://
، ws://
(از Chrome 58)، wss://
(از Chrome 58)، urn:
(از Chrome 91)، یا 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 قرار می گیرد. توجه داشته باشید که API رهگیری نمی کند:
- پیام های فردی از طریق یک اتصال WebSocket ایجاد شده ارسال می شود.
- اتصال WebSocket بسته می شود.
تغییر مسیرها برای درخواست های WebSocket پشتیبانی نمی شوند.
از Chrome 72، یک برنامه افزودنی تنها در صورتی قادر به رهگیری یک درخواست خواهد بود که دارای مجوز میزبان برای URL درخواستی و آغازگر درخواست باشد.
از Chrome 96، webRequest API از رهگیری WebTransport از طریق درخواست دست دادن HTTP/3 پشتیبانی میکند. از آنجایی که دست دادن با استفاده از یک درخواست HTTP CONNECT انجام میشود، جریان آن در مدل webRequest مبتنی بر HTTP قرار میگیرد. توجه داشته باشید که:
- پس از ایجاد جلسه، برنامههای افزودنی نمیتوانند جلسه را از طریق webRequest API مشاهده کنند یا در آن دخالت کنند.
- اصلاح سرصفحههای درخواست HTTP در
onBeforeSendHeaders
نادیده گرفته میشود. - تغییر مسیرها و احراز هویت در WebTransport از طریق HTTP/3 پشتیبانی نمیشوند .
مفاهیم
همانطور که در بخشهای زیر توضیح داده میشود، رویدادها در API درخواست وب از شناسههای درخواست استفاده میکنند و شما میتوانید بهصورت اختیاری فیلترها و اطلاعات اضافی را هنگام ثبت شنوندگان رویداد مشخص کنید.
درخواست شناسه
هر درخواست با یک شناسه درخواست شناسایی می شود. این شناسه در یک جلسه مرورگر و زمینه یک برنامه افزودنی منحصر به فرد است. در طول چرخه عمر یک درخواست ثابت می ماند و می توان از آن برای مطابقت با رویدادهای همان درخواست استفاده کرد. توجه داشته باشید که چندین درخواست HTTP در صورت تغییر مسیر HTTP یا احراز هویت HTTP به یک درخواست وب نگاشت می شوند.
ثبت شنوندگان رویداد
برای ثبت یک شنونده رویداد برای درخواست وب، از یک تغییر در تابع معمول addListener()
استفاده می کنید. علاوه بر تعیین یک تابع تماس، شما باید یک آرگومان فیلتر را مشخص کنید، و ممکن است یک آرگومان اطلاعات اضافی اختیاری را مشخص کنید.
سه آرگومان به addListener()
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'
باشد (فقط برای رویدادهای خاص مجاز است)، تابع callback به طور همزمان مدیریت می شود. این بدان معناست که درخواست تا زمانی که تابع برگشت به تماس برگردد مسدود می شود. در این مورد، پاسخ به تماس میتواند یک 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
تعیین کنید تا اطلاعات بیشتری درباره درخواست درخواست کنید. فقط در صورت درخواست صریح از این برای ارائه اطلاعات دقیق در مورد داده های درخواست استفاده می شود.
جزئیات پیاده سازی
هنگام توسعه افزونه ای که از API درخواست وب استفاده می کند، می توان چندین جزئیات پیاده سازی را درک کرد:
web_accessible_resources
هنگامی که یک برنامه افزودنی از webRequest APIها برای هدایت یک درخواست منبع عمومی به منبعی استفاده می کند که قابل دسترسی به وب نیست، مسدود شده و منجر به خطا می شود. موارد فوق صادق است حتی اگر منبعی که در وب قابل دسترسی نیست متعلق به پسوند تغییر مسیر باشد. برای اعلام منابع برای استفاده با APIهای DeclarativeWebRequest، آرایه "web_accessible_resources"
باید اعلام شده و در مانیفست پر شود، همانطور که در اینجا مستند شده است.
حل تعارض
در اجرای فعلی API درخواست وب، اگر حداقل یکی از برنامههای افزودنی دستور لغو درخواست را بدهد، یک درخواست لغو شده در نظر گرفته میشود. اگر یک برنامه افزودنی درخواستی را لغو کند، همه برنامههای افزودنی توسط یک رویداد onErrorOccurred
مطلع میشوند. فقط یک برنامه افزودنی می تواند یک درخواست را تغییر مسیر دهد یا یک سرصفحه را در یک زمان تغییر دهد. اگر بیش از یک برنامه افزودنی بخواهد درخواست را تغییر دهد، برنامه افزودنی که اخیراً نصب شده برنده می شود و بقیه برنامه ها نادیده گرفته می شوند. اگر دستورالعمل آن برای تغییر یا تغییر مسیر نادیده گرفته شده باشد، به یک برنامه افزودنی اطلاع داده نمی شود.
ذخیره سازی
کروم از دو کش استفاده میکند—یک حافظه نهان روی دیسک و یک کش بسیار سریع در حافظه. طول عمر یک کش در حافظه به طول عمر یک فرآیند رندر متصل می شود که تقریباً با یک برگه مطابقت دارد. درخواستهایی که از حافظه پنهان در حافظه پاسخ داده میشوند برای API درخواست وب نامرئی هستند. اگر یک کنترل کننده درخواست رفتار خود را تغییر دهد (به عنوان مثال، رفتاری که طبق آن درخواست ها مسدود می شوند)، یک بازخوانی ساده صفحه ممکن است این رفتار تغییر یافته را رعایت نکند. برای اطمینان از انجام تغییر رفتار، handlerBehaviorChanged()
را فراخوانی کنید تا کش درون حافظه را پاکسازی کند. اما این کار را اغلب انجام ندهید. شستشوی کش یک عملیات بسیار گران است. پس از ثبت یا لغو ثبت شنونده رویداد، نیازی به فراخوانی handlerBehaviorChanged()
ندارید.
مهر زمانی
ویژگی timestamp
رویدادهای درخواست وب فقط به صورت داخلی تضمین شده است. مقایسه یک رویداد با رویداد دیگر به شما افست صحیح بین آنها را می دهد، اما مقایسه آنها با زمان فعلی در داخل برنامه افزودنی (مثلاً از طریق (new Date()).getTime()
) ممکن است نتایج غیرمنتظره ای به همراه داشته باشد.
رسیدگی به خطا
اگر بخواهید رویدادی را با آرگومان های نامعتبر ثبت کنید، یک خطای جاوا اسکریپت ایجاد می شود و کنترل کننده رویداد ثبت نمی شود. اگر هنگام مدیریت یک رویداد خطایی رخ دهد یا اگر یک کنترل کننده رویداد یک پاسخ مسدودکننده نامعتبر را برگرداند، یک پیام خطا در کنسول برنامه افزودنی شما ثبت می شود و کنترل کننده برای آن درخواست نادیده گرفته می شود.
نمونه ها
مثال زیر نحوه مسدود کردن تمام درخواستها به 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
API، نمونه webRequest را از مخزن chrome-extension-samples نصب کنید.
انواع
BlockingResponse
مقدار را برای کنترلکنندههای رویداد که «مسدود کردن» extraInfoSpec اعمال شده است، برمیگرداند. به کنترل کننده رویداد اجازه می دهد تا درخواست های شبکه را تغییر دهد.
خواص
- اعتبارنامه
شی اختیاری
فقط به عنوان پاسخ به رویداد onAuthRequired استفاده می شود. در صورت تنظیم، درخواست با استفاده از اعتبارنامه ارائه شده انجام می شود.
- رمز عبور
رشته
- نام کاربری
رشته
- لغو
بولی اختیاری
اگر درست باشد، درخواست لغو می شود. این امر از ارسال درخواست جلوگیری می کند. این می تواند به عنوان پاسخی به رویدادهای onBeforeRequest، onBeforeSendHeaders، onHeadersReceived و onAuthRequired استفاده شود.
- redirectUrl
رشته اختیاری
فقط به عنوان پاسخ به رویدادهای onBeforeRequest و onHeadersReceived استفاده می شود. در صورت تنظیم، درخواست اصلی از ارسال/تکمیل جلوگیری می شود و در عوض به URL داده شده هدایت می شود. هدایت مجدد به طرح های غیر HTTP مانند
data:
مجاز است. ریدایرکتهایی که توسط یک اقدام تغییر مسیر آغاز میشوند از روش درخواست اصلی برای تغییر مسیر استفاده میکنند، با یک استثنا: اگر تغییر مسیر در مرحله onHeadersReceived آغاز شود، تغییر مسیر با استفاده از روش GET صادر میشود. تغییر مسیرها از آدرسهای اینترنتی با طرحهایws://
وwss://
نادیده گرفته میشوند. - درخواست سرصفحه ها
HttpHeaders اختیاری است
فقط به عنوان پاسخ به رویداد onBeforeSendHeaders استفاده می شود. در صورت تنظیم، درخواست در عوض با این سرصفحههای درخواست انجام میشود.
- پاسخ سرصفحه ها
HttpHeaders اختیاری است
فقط به عنوان پاسخ به رویداد onHeadersReceived استفاده می شود. در صورت تنظیم، فرض می شود که سرور در عوض با این سرصفحه های پاسخ پاسخ داده است. فقط در صورتی که واقعاً میخواهید سرصفحهها را تغییر دهید تا تعداد تداخلها را محدود کنید،
responseHeaders
را برگردانید (فقط یک برنامه افزودنی میتواندresponseHeaders
برای هر درخواست تغییر دهد).
FormDataItem
حاوی دادههای ارسال شده در دادههای فرم است. برای فرم urlencoded اگر داده ها رشته utf-8 باشد به صورت رشته و در غیر این صورت به صورت ArrayBuffer ذخیره می شود. برای فرم داده ها ArrayBuffer است. اگر فرم-داده نشان دهنده فایل آپلود است، اگر نام فایل ارائه شده باشد، رشته ای با نام فایل است.
Enum
ArrayBuffer رشته
HttpHeaders
آرایه ای از هدرهای HTTP. هر سرصفحه به عنوان یک فرهنگ لغت حاوی name
کلید و value
یا binaryValue
Value نمایش داده می شود.
تایپ کنید
شیء[]
خواص
- باینری ارزش
شماره[] اختیاری
مقدار هدر HTTP اگر نتواند با UTF-8 نمایش داده شود، به عنوان مقادیر بایت جداگانه ذخیره می شود (0..255).
- نام
رشته
نام هدر HTTP.
- ارزش
رشته اختیاری
مقدار هدر HTTP اگر بتوان آن را با UTF-8 نشان داد.
IgnoredActionType
Enum
"تغییر مسیر" "headers_ request" "response_headers" "auth_credentials"
OnAuthRequiredOptions
Enum
"responseheaders" "مسدود کردن" "asyncBlocking" "extraheaders"
مشخص می کند که سرصفحه های پاسخ باید در رویداد گنجانده شوند.
مشخص می کند که درخواست تا زمانی که عملکرد برگشت به تماس بازگردد مسدود شود.
مشخص می کند که عملکرد برگشت به تماس به صورت ناهمزمان مدیریت می شود.
مشخص میکند که هدرها میتوانند اشتراکگذاری منابع متقاطع (CORS) را نقض کنند.
OnBeforeRedirectOptions
Enum
"responseheaders" "extraheaders"
مشخص می کند که سرصفحه های پاسخ باید در رویداد گنجانده شوند.
مشخص میکند که هدرها میتوانند اشتراکگذاری منابع متقاطع (CORS) را نقض کنند.
OnBeforeRequestOptions
Enum
"مسدود کردن" "RequestBody" "extraheaders"
مشخص می کند که درخواست تا زمانی که عملکرد برگشت به تماس بازگردد مسدود شود.
مشخص می کند که بدنه درخواست باید در رویداد گنجانده شود.
مشخص میکند که هدرها میتوانند اشتراکگذاری منابع متقاطع (CORS) را نقض کنند.
OnBeforeSendHeadersOptions
Enum
"Request Headers" "مسدود کردن" "extraheaders"
مشخص می کند که هدر درخواست باید در رویداد گنجانده شود.
مشخص می کند که درخواست مسدود شده است تا زمانی که عملکرد برگشت به تماس بازگردد.
مشخص میکند که هدرها میتوانند اشتراکگذاری منابع متقاطع (CORS) را نقض کنند.
OnCompletedOptions
Enum
"responseheaders" "extraheaders"
مشخص می کند که سرصفحه های پاسخ باید در رویداد گنجانده شوند.
مشخص میکند که هدرها میتوانند اشتراکگذاری منابع متقاطع (CORS) را نقض کنند.
OnErrorOccurredOptions
ارزش
"extraheaders"
OnHeadersReceivedOptions
Enum
"مسدود کردن" "responseheaders" "extraheaders"
مشخص می کند که درخواست تا زمانی که عملکرد برگشت به تماس بازگردد مسدود شود.
مشخص می کند که سرصفحه های پاسخ باید در رویداد گنجانده شوند.
مشخص میکند که هدرها میتوانند اشتراکگذاری منابع متقاطع (CORS) را نقض کنند.
OnResponseStartedOptions
Enum
"responseheaders" "extraheaders"
مشخص می کند که سرصفحه های پاسخ باید در رویداد گنجانده شوند.
مشخص میکند که هدرها میتوانند اشتراکگذاری منابع متقاطع (CORS) را نقض کنند.
OnSendHeadersOptions
Enum
"Request Headers" "extraheaders"
مشخص می کند که هدر درخواست باید در رویداد گنجانده شود.
مشخص میکند که هدرها میتوانند اشتراکگذاری منابع متقاطع (CORS) را نقض کنند.
RequestFilter
یک شی که فیلترهایی را برای اعمال در رویدادهای webRequest توصیف می کند.
خواص
- tabId
شماره اختیاری
- انواع
نوع منبع [] اختیاری است
لیستی از انواع درخواست درخواست هایی که نمی توانند با هیچ یک از انواع مطابقت داشته باشند، فیلتر می شوند.
- آدرس های اینترنتی
رشته[]
فهرستی از URL ها یا الگوهای URL. درخواست هایی که نمی توانند با هیچ یک از URL ها مطابقت داشته باشند، فیلتر می شوند.
- شناسه پنجره
شماره اختیاری
ResourceType
Enum
"فریم_اصلی" "sub_frame" "شیوه نامه" "اسکریپت" "تصویر" "فونت" "شیء" "xmlhttpدرخواست" "پینگ" "csp_report" "رسانه" "وب سوکت" "وبندل" "دیگر"
منبع را به عنوان فریم اصلی مشخص می کند.
منبع را به عنوان فریم فرعی مشخص می کند.
منبع را به عنوان یک شیوه نامه مشخص می کند.
منبع را به عنوان یک اسکریپت مشخص می کند.
منبع را به صورت تصویر مشخص می کند.
منبع را به عنوان یک فونت مشخص می کند.
منبع را به عنوان یک شی مشخص می کند.
منبع را به عنوان یک XMLHttpRequest مشخص می کند.
منبع را به صورت پینگ مشخص می کند.
منبع را به عنوان گزارش خط مشی امنیت محتوا (CSP) مشخص می کند.
منبع را به عنوان یک شی رسانه مشخص می کند.
منبع را به عنوان WebSocket مشخص می کند.
منبع را به عنوان WebBundle مشخص می کند.
منبع را به عنوان نوعی مشخص می کند که در انواع فهرست شده گنجانده نشده است.
UploadData
حاوی داده های آپلود شده در یک درخواست URL است.
خواص
- بایت ها
هر اختیاری
یک ArrayBuffer با یک کپی از داده ها.
- فایل
رشته اختیاری
رشته ای با مسیر و نام فایل.
خواص
MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES
حداکثر تعداد دفعاتی که handlerBehaviorChanged
را می توان در هر بازه 10 دقیقه ای پایدار فراخوانی کرد. handlerBehaviorChanged
یک فراخوانی تابع گران قیمت است که نباید اغلب فراخوانی شود.
ارزش
20
روش ها
handlerBehaviorChanged()
chrome.webRequest.handlerBehaviorChanged(
callback?: function,
)
زمانی که رفتار کنترلکنندههای webRequest تغییر کرده است، باید فراخوانی شود تا از مدیریت نادرست به دلیل ذخیرهسازی پنهان جلوگیری شود. این فراخوانی تابع گران است. اغلب با آن تماس نگیرید.
پارامترها
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:() => void
برمی گرداند
قول<باطل>
Chrome 116+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
رویدادها
onActionIgnored
chrome.webRequest.onActionIgnored.addListener(
callback: function,
)
زمانی فعال می شود که اصلاح پیشنهادی یک برنامه افزودنی برای درخواست شبکه نادیده گرفته شود. این در صورت تداخل با افزونه های دیگر اتفاق می افتد.
پارامترها
- پاسخ به تماس
تابع
پارامتر
callback
به نظر می رسد:(details: object) => void
- جزئیات
شی
- اقدام
اقدام پیشنهادی که نادیده گرفته شد.
- درخواست شناسه
رشته
شناسه درخواست شناسه های درخواست در یک جلسه مرورگر منحصر به فرد هستند. در نتیجه، آنها می توانند برای ارتباط دادن رویدادهای مختلف یک درخواست استفاده شوند.
onAuthRequired
chrome.webRequest.onAuthRequired.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnAuthRequiredOptions[],
)
هنگامی که یک خطای احراز هویت دریافت می شود فعال می شود. شنونده سه گزینه دارد: می تواند اعتبار احراز هویت را ارائه دهد، می تواند درخواست را لغو کند و صفحه خطا را نمایش دهد، یا نمی تواند هیچ اقدامی در مورد چالش انجام دهد. اگر اعتبار کاربری نامناسبی ارائه شده باشد، ممکن است چندین بار برای یک درخواست یکسان فراخوانی شود. توجه داشته باشید، فقط یکی از حالتهای 'blocking'
یا 'asyncBlocking'
باید در پارامتر extraInfoSpec
مشخص شود.
پارامترها
- پاسخ به تماس
تابع
پارامتر
callback
به نظر می رسد:(details: object, asyncCallback?: function) => BlockingResponse | undefined
- جزئیات
شی
- رقیب
شی
سرور درخواست احراز هویت
- میزبان
رشته
- بندر
شماره
- شناسه سند
رشته
Chrome 106+UUID سند درخواست کننده.
- documentLifecycleChrome 106+
چرخه عمر سند در آن است.
- frameId
شماره
مقدار 0 نشان می دهد که درخواست در فریم اصلی اتفاق می افتد. یک مقدار مثبت نشان دهنده شناسه زیرفریمی است که درخواست در آن انجام می شود. اگر سند یک قاب (زیر) بارگذاری شود (
type
main_frame
یاsub_frame
است)،frameId
نشان دهنده شناسه این قاب است، نه شناسه قاب بیرونی. شناسههای فریم در یک برگه منحصربهفرد هستند. - نوع قابChrome 106+
نوع فریمی که درخواست در آن رخ داده است.
- آغازگر
رشته اختیاری
Chrome 63+مبدایی که در آن درخواست آغاز شد. این از طریق تغییر مسیر تغییر نمی کند. اگر منشا مات باشد، از رشته «تهی» استفاده خواهد شد.
- پروکسی است
بولی
درست برای Proxy-Authenticate، نادرست برای WWW-Authenticate.
- روش
رشته
روش استاندارد HTTP
- parentDocumentId
رشته اختیاری
Chrome 106+UUID سند والد مالک این قاب. اگر والد وجود نداشته باشد، این تنظیم نشده است.
- parentFrameId
شماره
شناسه فریمی که فریمی را که درخواست ارسال کرده است میپیچد. اگر فریم والد وجود نداشته باشد، روی -1 تنظیم کنید.
- قلمرو
رشته اختیاری
قلمرو احراز هویت ارائه شده توسط سرور، در صورت وجود.
- درخواست شناسه
رشته
شناسه درخواست شناسه های درخواست در یک جلسه مرورگر منحصر به فرد هستند. در نتیجه، آنها می توانند برای ارتباط دادن رویدادهای مختلف یک درخواست استفاده شوند.
- پاسخ سرصفحه ها
HttpHeaders اختیاری است
سرصفحه های پاسخ HTTP که همراه با این پاسخ دریافت شد.
- طرح
رشته
طرح احراز هویت، به عنوان مثال Basic یا Digest.
- کد وضعیت
شماره
Chrome 43+کد وضعیت استاندارد HTTP که توسط سرور برگردانده شده است.
- وضعیت خط
رشته
خط وضعیت HTTP پاسخ یا رشته «HTTP/0.9 200 OK» برای پاسخهای HTTP/0.9 (یعنی پاسخهایی که فاقد خط وضعیت هستند) یا یک رشته خالی اگر سرصفحهای وجود ندارد.
- tabId
شماره
شناسه برگه ای که درخواست در آن انجام می شود. اگر درخواست مربوط به یک برگه نیست، روی -1 تنظیم کنید.
- مهر زمان
شماره
زمانی که این سیگنال فعال می شود، بر حسب میلی ثانیه از آن دوران.
- نوع
نحوه استفاده از منبع درخواستی
- آدرس اینترنتی
رشته
- asyncCallback
عملکرد اختیاری
Chrome 58+پارامتر
asyncCallback
به شکل زیر است:(response: BlockingResponse) => void
- پاسخ
- برمی گرداند
BlockingResponse | تعریف نشده
اگر "blocking" در پارامتر "extraInfoSpec" مشخص شده باشد، شنونده رویداد باید یک شی از این نوع را برگرداند.
- فیلتر
- extraInfoSpec
OnAuthRequiredOptions [] اختیاری است
onBeforeRedirect
chrome.webRequest.onBeforeRedirect.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeRedirectOptions[],
)
زمانی فعال می شود که یک تغییر مسیر آغاز شده توسط سرور در شرف وقوع است.
پارامترها
- پاسخ به تماس
تابع
پارامتر
callback
به نظر می رسد:(details: object) => void
- جزئیات
شی
- شناسه سند
رشته
Chrome 106+UUID سند درخواست کننده.
- documentLifecycleChrome 106+
چرخه عمر سند در آن است.
- frameId
شماره
مقدار 0 نشان می دهد که درخواست در فریم اصلی اتفاق می افتد. یک مقدار مثبت نشان دهنده شناسه زیرفریمی است که درخواست در آن انجام می شود. اگر سند یک قاب (زیر) بارگذاری شود (
type
main_frame
یاsub_frame
است)،frameId
نشان دهنده شناسه این قاب است، نه شناسه قاب بیرونی. شناسههای فریم در یک برگه منحصربهفرد هستند. - نوع قابChrome 106+
نوع فریمی که درخواست در آن رخ داده است.
- از کش
بولی
نشان می دهد که آیا این پاسخ از حافظه پنهان دیسک واکشی شده است یا خیر.
- آغازگر
رشته اختیاری
Chrome 63+مبدایی که در آن درخواست آغاز شد. این از طریق تغییر مسیر تغییر نمی کند. اگر منشا مات باشد، از رشته «تهی» استفاده خواهد شد.
- آی پی
رشته اختیاری
آدرس IP سروری که درخواست واقعاً به آن ارسال شده است. توجه داشته باشید که ممکن است یک آدرس IPv6 تحت اللفظی باشد.
- روش
رشته
روش استاندارد HTTP
- parentDocumentId
رشته اختیاری
Chrome 106+UUID سند والد مالک این قاب. اگر والد وجود نداشته باشد، این تنظیم نشده است.
- parentFrameId
شماره
شناسه فریمی که فریمی را که درخواست ارسال کرده است میپیچد. اگر فریم والد وجود نداشته باشد، روی -1 تنظیم کنید.
- redirectUrl
رشته
آدرس جدید.
- درخواست شناسه
رشته
شناسه درخواست شناسه های درخواست در یک جلسه مرورگر منحصر به فرد هستند. در نتیجه، آنها می توانند برای ارتباط دادن رویدادهای مختلف یک درخواست استفاده شوند.
- پاسخ سرصفحه ها
HttpHeaders اختیاری است
هدرهای پاسخ HTTP که همراه با این تغییر مسیر دریافت شدند.
- وضعیت کد
شماره
کد وضعیت استاندارد HTTP که توسط سرور برگردانده شده است.
- وضعیت خط
رشته
خط وضعیت HTTP پاسخ یا رشته «HTTP/0.9 200 OK» برای پاسخهای HTTP/0.9 (یعنی پاسخهایی که فاقد خط وضعیت هستند) یا یک رشته خالی اگر سرصفحهای وجود ندارد.
- tabId
شماره
شناسه برگه ای که درخواست در آن انجام می شود. اگر درخواست مربوط به یک برگه نیست، روی -1 تنظیم کنید.
- مهر زمان
شماره
زمانی که این سیگنال فعال می شود، بر حسب میلی ثانیه از آن دوران.
- نوع
نحوه استفاده از منبع درخواستی
- آدرس اینترنتی
رشته
- فیلتر
- extraInfoSpec
OnBeforeRedirectOptions [] اختیاری است
onBeforeRequest
chrome.webRequest.onBeforeRequest.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeRequestOptions[],
)
زمانی که درخواستی در شرف وقوع است اخراج می شود.
پارامترها
- پاسخ به تماس
تابع
پارامتر
callback
به نظر می رسد:(details: object) => BlockingResponse | undefined
- جزئیات
شی
- شناسه سند
رشته اختیاری
Chrome 106+UUID سند درخواست کننده.
- documentLifecycle
extensionTypes.DocumentLifecycle اختیاری است
Chrome 106+چرخه عمر سند در آن است.
- frameId
شماره
مقدار 0 نشان می دهد که درخواست در فریم اصلی اتفاق می افتد. یک مقدار مثبت نشان دهنده شناسه زیرفریمی است که درخواست در آن انجام می شود. اگر سند یک قاب (زیر) بارگذاری شود (
type
main_frame
یاsub_frame
است)،frameId
نشان دهنده شناسه این قاب است، نه شناسه قاب بیرونی. شناسههای فریم در یک برگه منحصربهفرد هستند. - نوع قاب
extensionTypes.FrameType اختیاری است
Chrome 106+نوع فریمی که درخواست در آن رخ داده است.
- آغازگر
رشته اختیاری
Chrome 63+مبدایی که در آن درخواست آغاز شد. این از طریق تغییر مسیر تغییر نمی کند. اگر منشا مات باشد، از رشته «تهی» استفاده خواهد شد.
- روش
رشته
روش استاندارد HTTP
- parentDocumentId
رشته اختیاری
Chrome 106+UUID سند والد مالک این قاب. اگر والد وجود نداشته باشد، این تنظیم نشده است.
- parentFrameId
شماره
شناسه فریمی که فریمی را که درخواست ارسال کرده است میپیچد. اگر فریم والد وجود نداشته باشد، روی -1 تنظیم کنید.
- درخواست بدن
شی اختیاری
حاوی داده های بدنه درخواست HTTP است. فقط در صورتی ارائه می شود که extraInfoSpec حاوی "requestBody" باشد.
- خطا
رشته اختیاری
خطاها هنگام به دست آوردن اطلاعات بدن درخواست.
- formData
شی اختیاری
اگر روش درخواست POST باشد و بدنه آن دنبالهای از جفتهای کلید-مقدار رمزگذاریشده در UTF8 باشد که بهصورت چندبخشی/فرم-داده یا application/x-www-form-urlencoded کدگذاری شده است، این فرهنگ لغت وجود دارد و برای هر کلید حاوی لیست تمام مقادیر آن کلید. اگر داده ها از نوع رسانه دیگری هستند، یا اگر بدشکل هستند، فرهنگ لغت وجود ندارد. یک مقدار نمونه از این فرهنگ لغت {'key': ['value1', 'value2']} است.
- خام
UploadData [] اختیاری است
اگر متد درخواست PUT یا POST باشد و بدنه از قبل در formData تجزیه نشده باشد، عناصر بدن درخواست تجزیه نشده در این آرایه قرار دارند.
- درخواست شناسه
رشته
شناسه درخواست شناسه های درخواست در یک جلسه مرورگر منحصر به فرد هستند. در نتیجه، آنها می توانند برای ارتباط دادن رویدادهای مختلف یک درخواست استفاده شوند.
- tabId
شماره
شناسه برگه ای که درخواست در آن انجام می شود. اگر درخواست مربوط به یک برگه نیست، روی -1 تنظیم کنید.
- مهر زمان
شماره
زمانی که این سیگنال فعال می شود، بر حسب میلی ثانیه از آن دوران.
- نوع
نحوه استفاده از منبع درخواستی
- آدرس اینترنتی
رشته
- برمی گرداند
BlockingResponse | تعریف نشده
اگر "blocking" در پارامتر "extraInfoSpec" مشخص شده باشد، شنونده رویداد باید یک شی از این نوع را برگرداند.
- فیلتر
- extraInfoSpec
OnBeforeRequestOptions [] اختیاری است
onBeforeSendHeaders
chrome.webRequest.onBeforeSendHeaders.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeSendHeadersOptions[],
)
قبل از ارسال درخواست HTTP، پس از در دسترس بودن سرصفحه های درخواست، فعال می شود. این ممکن است پس از ایجاد اتصال TCP به سرور، اما قبل از ارسال هر گونه داده HTTP رخ دهد.
پارامترها
- پاسخ به تماس
تابع
پارامتر
callback
به نظر می رسد:(details: object) => BlockingResponse | undefined
- جزئیات
شی
- شناسه سند
رشته
Chrome 106+UUID سند درخواست کننده.
- documentLifecycleChrome 106+
چرخه عمر سند در آن است.
- frameId
شماره
مقدار 0 نشان می دهد که درخواست در فریم اصلی اتفاق می افتد. یک مقدار مثبت نشان دهنده شناسه زیرفریمی است که درخواست در آن انجام می شود. اگر سند یک قاب (زیر) بارگذاری شود (
type
main_frame
یاsub_frame
است)،frameId
نشان دهنده شناسه این قاب است، نه شناسه قاب بیرونی. شناسههای فریم در یک برگه منحصربهفرد هستند. - نوع قابChrome 106+
نوع فریمی که درخواست در آن رخ داده است.
- آغازگر
رشته اختیاری
Chrome 63+مبدایی که در آن درخواست آغاز شد. این از طریق تغییر مسیر تغییر نمی کند. اگر منشا مات باشد، از رشته «تهی» استفاده خواهد شد.
- روش
رشته
روش استاندارد HTTP
- parentDocumentId
رشته اختیاری
Chrome 106+UUID سند والد مالک این قاب. اگر والد وجود نداشته باشد، این تنظیم نشده است.
- parentFrameId
شماره
شناسه فریمی که فریمی را که درخواست ارسال کرده است میپیچد. اگر فریم والد وجود نداشته باشد، روی -1 تنظیم کنید.
- درخواست سرصفحه ها
HttpHeaders اختیاری است
سرصفحه های درخواست HTTP که قرار است با این درخواست ارسال شوند.
- درخواست شناسه
رشته
شناسه درخواست شناسه های درخواست در یک جلسه مرورگر منحصر به فرد هستند. در نتیجه، آنها می توانند برای ارتباط دادن رویدادهای مختلف یک درخواست استفاده شوند.
- tabId
شماره
شناسه برگه ای که درخواست در آن انجام می شود. اگر درخواست مربوط به یک برگه نیست، روی -1 تنظیم کنید.
- مهر زمان
شماره
زمانی که این سیگنال فعال می شود، بر حسب میلی ثانیه از آن دوران.
- نوع
نحوه استفاده از منبع درخواستی
- آدرس اینترنتی
رشته
- برمی گرداند
BlockingResponse | تعریف نشده
اگر "blocking" در پارامتر "extraInfoSpec" مشخص شده باشد، شنونده رویداد باید یک شی از این نوع را برگرداند.
- فیلتر
- extraInfoSpec
OnBeforeSendHeadersOptions [] اختیاری است
onCompleted
chrome.webRequest.onCompleted.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnCompletedOptions[],
)
هنگامی که یک درخواست تکمیل می شود اخراج می شود.
پارامترها
- پاسخ به تماس
تابع
پارامتر
callback
به نظر می رسد:(details: object) => void
- جزئیات
شی
- شناسه سند
رشته
Chrome 106+UUID سند درخواست کننده.
- documentLifecycleChrome 106+
چرخه عمر سند در آن است.
- frameId
شماره
مقدار 0 نشان می دهد که درخواست در فریم اصلی اتفاق می افتد. یک مقدار مثبت نشان دهنده شناسه زیرفریمی است که درخواست در آن انجام می شود. اگر سند یک قاب (زیر) بارگذاری شود (
type
main_frame
یاsub_frame
است)،frameId
نشان دهنده شناسه این قاب است، نه شناسه قاب بیرونی. شناسههای فریم در یک برگه منحصربهفرد هستند. - نوع قابChrome 106+
نوع فریمی که درخواست در آن رخ داده است.
- از کش
بولی
نشان می دهد که آیا این پاسخ از حافظه پنهان دیسک واکشی شده است یا خیر.
- آغازگر
رشته اختیاری
Chrome 63+مبدایی که در آن درخواست آغاز شد. این از طریق تغییر مسیر تغییر نمی کند. اگر منشا مات باشد، از رشته «تهی» استفاده خواهد شد.
- آی پی
رشته اختیاری
آدرس IP سروری که درخواست واقعاً به آن ارسال شده است. توجه داشته باشید که ممکن است یک آدرس IPv6 تحت اللفظی باشد.
- روش
رشته
روش استاندارد HTTP
- parentDocumentId
رشته اختیاری
Chrome 106+UUID سند والد مالک این قاب. اگر والد وجود نداشته باشد، این تنظیم نشده است.
- parentFrameId
شماره
شناسه فریمی که فریمی را که درخواست ارسال کرده است میپیچد. اگر فریم والد وجود نداشته باشد، روی -1 تنظیم کنید.
- درخواست شناسه
رشته
شناسه درخواست شناسه های درخواست در یک جلسه مرورگر منحصر به فرد هستند. در نتیجه، آنها می توانند برای ارتباط دادن رویدادهای مختلف یک درخواست استفاده شوند.
- پاسخ سرصفحه ها
HttpHeaders اختیاری است
سرصفحه های پاسخ HTTP که همراه با این پاسخ دریافت شد.
- کد وضعیت
شماره
کد وضعیت استاندارد HTTP که توسط سرور برگردانده شده است.
- وضعیت خط
رشته
خط وضعیت HTTP پاسخ یا رشته «HTTP/0.9 200 OK» برای پاسخهای HTTP/0.9 (یعنی پاسخهایی که فاقد خط وضعیت هستند) یا یک رشته خالی اگر سرصفحهای وجود ندارد.
- tabId
شماره
شناسه برگه ای که درخواست در آن انجام می شود. اگر درخواست مربوط به یک برگه نیست، روی -1 تنظیم کنید.
- مهر زمان
شماره
زمانی که این سیگنال فعال می شود، بر حسب میلی ثانیه از آن دوران.
- نوع
نحوه استفاده از منبع درخواستی
- آدرس اینترنتی
رشته
- فیلتر
- extraInfoSpec
OnCompletedOptions [] اختیاری است
onErrorOccurred
chrome.webRequest.onErrorOccurred.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnErrorOccurredOptions[],
)
هنگامی که خطایی رخ می دهد فعال می شود.
پارامترها
- پاسخ به تماس
تابع
پارامتر
callback
به نظر می رسد:(details: object) => void
- جزئیات
شی
- شناسه سند
رشته
Chrome 106+UUID سند درخواست کننده. اگر درخواست ناوبری یک فریم باشد، این مقدار وجود ندارد.
- documentLifecycleChrome 106+
چرخه عمر سند در آن است.
- خطا
رشته
شرح خطا این رشته تضمین نمیشود که بین نسخهها سازگار باشد. شما نباید بر اساس محتوای آن تجزیه و تحلیل کنید و عمل کنید.
- frameId
شماره
مقدار 0 نشان می دهد که درخواست در فریم اصلی اتفاق می افتد. یک مقدار مثبت نشان دهنده شناسه زیرفریمی است که درخواست در آن انجام می شود. اگر سند یک قاب (زیر) بارگذاری شود (
type
main_frame
یاsub_frame
است)،frameId
نشان دهنده شناسه این قاب است، نه شناسه قاب بیرونی. شناسههای فریم در یک برگه منحصربهفرد هستند. - نوع قابChrome 106+
نوع فریمی که درخواست در آن رخ داده است.
- از کش
بولی
نشان می دهد که آیا این پاسخ از حافظه پنهان دیسک واکشی شده است یا خیر.
- آغازگر
رشته اختیاری
Chrome 63+مبدایی که در آن درخواست آغاز شد. این از طریق تغییر مسیر تغییر نمی کند. اگر منشا مات باشد، از رشته «تهی» استفاده خواهد شد.
- آی پی
رشته اختیاری
آدرس IP سروری که درخواست واقعاً به آن ارسال شده است. توجه داشته باشید که ممکن است یک آدرس IPv6 تحت اللفظی باشد.
- روش
رشته
روش استاندارد HTTP
- parentDocumentId
رشته اختیاری
Chrome 106+UUID سند والد مالک این قاب. اگر والد وجود نداشته باشد، این تنظیم نشده است.
- parentFrameId
شماره
شناسه فریمی که فریمی را که درخواست ارسال کرده است میپیچد. اگر فریم والد وجود نداشته باشد، روی -1 تنظیم کنید.
- درخواست شناسه
رشته
شناسه درخواست شناسه های درخواست در یک جلسه مرورگر منحصر به فرد هستند. در نتیجه، آنها می توانند برای ارتباط دادن رویدادهای مختلف یک درخواست استفاده شوند.
- tabId
شماره
شناسه برگه ای که درخواست در آن انجام می شود. اگر درخواست مربوط به یک برگه نیست، روی -1 تنظیم کنید.
- مهر زمان
شماره
زمانی که این سیگنال فعال می شود، بر حسب میلی ثانیه از آن دوران.
- نوع
نحوه استفاده از منبع درخواستی
- آدرس اینترنتی
رشته
- فیلتر
- extraInfoSpec
OnErrorOccurredOptions [] اختیاری است
onHeadersReceived
chrome.webRequest.onHeadersReceived.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnHeadersReceivedOptions[],
)
هنگامی که سرصفحه های پاسخ HTTP یک درخواست دریافت شده است، فعال می شود.
پارامترها
- پاسخ به تماس
تابع
پارامتر
callback
به نظر می رسد:(details: object) => BlockingResponse | undefined
- جزئیات
شی
- شناسه سند
رشته
Chrome 106+UUID سند درخواست کننده.
- documentLifecycleChrome 106+
چرخه عمر سند در آن است.
- frameId
شماره
مقدار 0 نشان می دهد که درخواست در فریم اصلی اتفاق می افتد. یک مقدار مثبت نشان دهنده شناسه زیرفریمی است که درخواست در آن انجام می شود. اگر سند یک قاب (زیر) بارگذاری شود (
type
main_frame
یاsub_frame
است)،frameId
نشان دهنده شناسه این قاب است، نه شناسه قاب بیرونی. شناسههای فریم در یک برگه منحصربهفرد هستند. - نوع قابChrome 106+
نوع فریمی که درخواست در آن رخ داده است.
- آغازگر
رشته اختیاری
Chrome 63+مبدایی که در آن درخواست آغاز شد. این از طریق تغییر مسیر تغییر نمی کند. اگر منشا مات باشد، از رشته «تهی» استفاده خواهد شد.
- روش
رشته
روش استاندارد HTTP
- parentDocumentId
رشته اختیاری
Chrome 106+UUID سند والد مالک این قاب. اگر والد وجود نداشته باشد، این تنظیم نشده است.
- parentFrameId
شماره
شناسه فریمی که فریمی را که درخواست ارسال کرده است میپیچد. اگر فریم والد وجود نداشته باشد، روی -1 تنظیم کنید.
- درخواست شناسه
رشته
شناسه درخواست شناسه های درخواست در یک جلسه مرورگر منحصر به فرد هستند. در نتیجه، آنها می توانند برای ارتباط دادن رویدادهای مختلف یک درخواست استفاده شوند.
- پاسخ سرصفحه ها
HttpHeaders اختیاری است
سرصفحه های پاسخ HTTP که با این پاسخ دریافت شده اند.
- وضعیت کد
شماره
Chrome 43+کد وضعیت استاندارد HTTP که توسط سرور برگردانده شده است.
- وضعیت خط
رشته
خط وضعیت HTTP پاسخ یا رشته «HTTP/0.9 200 OK» برای پاسخهای HTTP/0.9 (یعنی پاسخهایی که فاقد خط وضعیت هستند).
- tabId
شماره
شناسه برگه ای که درخواست در آن انجام می شود. اگر درخواست مربوط به یک برگه نیست، روی -1 تنظیم کنید.
- مهر زمان
شماره
زمانی که این سیگنال فعال می شود، بر حسب میلی ثانیه از آن دوران.
- نوع
نحوه استفاده از منبع درخواستی
- آدرس اینترنتی
رشته
- برمی گرداند
BlockingResponse | تعریف نشده
اگر "blocking" در پارامتر "extraInfoSpec" مشخص شده باشد، شنونده رویداد باید یک شی از این نوع را برگرداند.
- فیلتر
- extraInfoSpec
OnHeadersReceivedOptions [] اختیاری است
onResponseStarted
chrome.webRequest.onResponseStarted.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnResponseStartedOptions[],
)
هنگامی که اولین بایت بدنه پاسخ دریافت می شود، فعال می شود. برای درخواست های HTTP، این بدان معنی است که خط وضعیت و سرصفحه های پاسخ در دسترس هستند.
پارامترها
- پاسخ به تماس
تابع
پارامتر
callback
به نظر می رسد:(details: object) => void
- جزئیات
شی
- شناسه سند
رشته
Chrome 106+UUID سند درخواست کننده.
- documentLifecycleChrome 106+
چرخه عمر سند در آن است.
- frameId
شماره
مقدار 0 نشان می دهد که درخواست در فریم اصلی اتفاق می افتد. یک مقدار مثبت نشان دهنده شناسه زیرفریمی است که درخواست در آن انجام می شود. اگر سند یک قاب (زیر) بارگذاری شود (
type
main_frame
یاsub_frame
است)،frameId
نشان دهنده شناسه این قاب است، نه شناسه قاب بیرونی. شناسههای فریم در یک برگه منحصربهفرد هستند. - نوع قابChrome 106+
نوع فریمی که درخواست در آن رخ داده است.
- از کش
بولی
نشان می دهد که آیا این پاسخ از حافظه پنهان دیسک واکشی شده است یا خیر.
- آغازگر
رشته اختیاری
Chrome 63+مبدایی که در آن درخواست آغاز شد. این از طریق تغییر مسیر تغییر نمی کند. اگر منشا مات باشد، از رشته «تهی» استفاده خواهد شد.
- آی پی
رشته اختیاری
آدرس IP سروری که درخواست واقعاً به آن ارسال شده است. توجه داشته باشید که ممکن است یک آدرس IPv6 تحت اللفظی باشد.
- روش
رشته
روش استاندارد HTTP
- parentDocumentId
رشته اختیاری
Chrome 106+UUID سند والد مالک این قاب. اگر والد وجود نداشته باشد، این تنظیم نشده است.
- parentFrameId
شماره
شناسه فریمی که فریمی را که درخواست ارسال کرده است میپیچد. اگر فریم والد وجود نداشته باشد، روی -1 تنظیم کنید.
- درخواست شناسه
رشته
شناسه درخواست شناسه های درخواست در یک جلسه مرورگر منحصر به فرد هستند. در نتیجه، آنها می توانند برای ارتباط دادن رویدادهای مختلف یک درخواست استفاده شوند.
- پاسخ سرصفحه ها
HttpHeaders اختیاری است
سرصفحه های پاسخ HTTP که همراه با این پاسخ دریافت شد.
- کد وضعیت
شماره
کد وضعیت استاندارد HTTP که توسط سرور برگردانده شده است.
- وضعیت خط
رشته
خط وضعیت HTTP پاسخ یا رشته «HTTP/0.9 200 OK» برای پاسخهای HTTP/0.9 (یعنی پاسخهایی که فاقد خط وضعیت هستند) یا یک رشته خالی اگر سرصفحهای وجود ندارد.
- tabId
شماره
شناسه برگه ای که درخواست در آن انجام می شود. اگر درخواست مربوط به یک برگه نیست، روی -1 تنظیم کنید.
- مهر زمان
شماره
زمانی که این سیگنال فعال می شود، بر حسب میلی ثانیه از آن دوران.
- نوع
نحوه استفاده از منبع درخواستی
- آدرس اینترنتی
رشته
- فیلتر
- extraInfoSpec
OnResponseStartedOptions [] اختیاری است
onSendHeaders
chrome.webRequest.onSendHeaders.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnSendHeadersOptions[],
)
درست قبل از ارسال درخواست به سرور ، شلیک شد (اصلاح تماس های قبلی onbeforesendeders تا زمان اخراج از سرنوشت ها قابل مشاهده است).
پارامترها
- پاسخ به تماس
تابع
پارامتر
callback
به نظر می رسد:(details: object) => void
- جزئیات
شی
- شناسه سند
رشته
Chrome 106+UUID سند که درخواست را می کند.
- documentLifecycleChrome 106+
چرخه عمر سند در آن قرار دارد.
- frameId
شماره
مقدار 0 نشان می دهد که درخواست در فریم اصلی اتفاق می افتد. یک مقدار مثبت نشان دهنده شناسه زیرفریمی است که درخواست در آن انجام می شود. اگر سند یک قاب (زیر) بارگذاری شود (
type
main_frame
یاsub_frame
است)،frameId
نشان دهنده شناسه این قاب است، نه شناسه قاب بیرونی. شناسههای فریم در یک برگه منحصربهفرد هستند. - نوع قابChrome 106+
نوع قاب درخواست در آن رخ داده است.
- آغازگر
رشته اختیاری
Chrome 63+مبدایی که در آن درخواست آغاز شد. این از طریق تغییر مسیر تغییر نمی کند. اگر منشا مات باشد، از رشته «تهی» استفاده خواهد شد.
- روش
رشته
روش استاندارد HTTP
- parentDocumentId
رشته اختیاری
Chrome 106+UUID سند والدین که دارای این قاب است. اگر پدر و مادر وجود نداشته باشد ، این تنظیم نشده است.
- parentFrameId
شماره
شناسه فریمی که فریمی را که درخواست ارسال کرده است میپیچد. اگر فریم والد وجود نداشته باشد، روی -1 تنظیم کنید.
- درخواست سرصفحه ها
httpheaders اختیاری
هدرهای درخواست HTTP که با این درخواست ارسال شده اند.
- درخواست شناسه
رشته
شناسه درخواست شناسه های درخواست در یک جلسه مرورگر منحصر به فرد هستند. در نتیجه ، می توان از آنها برای ارتباط وقایع مختلف همان درخواست استفاده کرد.
- tabId
شماره
شناسه برگه ای که درخواست در آن انجام می شود. اگر درخواست مربوط به یک برگه نیست، روی -1 تنظیم کنید.
- مهر زمان
شماره
زمان شروع این سیگنال ، در میلی ثانیه از زمان دوره.
- نوع
نحوه استفاده از منبع درخواست شده.
- آدرس اینترنتی
رشته
- فیلتر
- بیرونی
onsendheadersoptions [] اختیاری