chrome.webRequest

توضیحات

از chrome.webRequest API برای مشاهده و تجزیه و تحلیل ترافیک و رهگیری، مسدود کردن یا تغییر درخواست‌های حین پرواز استفاده کنید.

مجوزها

webRequest

برای استفاده از API درخواست وب، همراه با مجوزهای میزبان لازم، باید مجوز "webRequest" در مانیفست افزونه اعلام کنید. برای رهگیری یک درخواست زیر منبع، برنامه افزودنی باید هم به URL درخواستی و هم به آغازگر آن دسترسی داشته باشد. به عنوان مثال:

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

webRequestBlocking

برای ثبت کنترل کننده های رویداد مسدود کننده لازم است. از Manifest V3، این فقط برای برنامه‌های افزودنی نصب شده در خط مشی در دسترس است.

webRequestAuthProvider

برای استفاده از روش onAuthRequired لازم است. به بررسی احراز هویت مراجعه کنید.

مفاهیم و کاربرد

چرخه زندگی درخواست ها

وب درخواست API مجموعه ای از رویدادها را تعریف می کند که چرخه عمر یک درخواست وب را دنبال می کنند. می توانید از این رویدادها برای مشاهده و تجزیه و تحلیل ترافیک استفاده کنید. برخی رویدادهای همزمان به شما این امکان را می دهند که یک درخواست را رهگیری، مسدود یا تغییر دهید.

چرخه حیات رویداد برای درخواست‌های موفق در اینجا نشان داده شده است و به دنبال آن تعاریف رویداد آمده است:

چرخه عمر یک درخواست وب از دیدگاه وب درخواست 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 پشتیبانی نمی‌شوند .

درخواست شناسه

هر درخواست با یک شناسه درخواست شناسایی می شود. این شناسه در یک جلسه مرورگر و زمینه یک برنامه افزودنی منحصر به فرد است. در طول چرخه عمر یک درخواست ثابت می ماند و می توان از آن برای مطابقت با رویدادهای همان درخواست استفاده کرد. توجه داشته باشید که چندین درخواست 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 تعیین کنید تا اطلاعات بیشتری درباره درخواست درخواست کنید. فقط در صورت درخواست صریح از این برای ارائه اطلاعات دقیق در مورد داده های درخواست استفاده می شود.

رسیدگی به احراز هویت

برای رسیدگی به درخواست‌های احراز هویت 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']
);

جزئیات پیاده سازی

هنگام توسعه افزونه ای که از 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

Chrome 66+

حاوی داده‌های ارسال شده در داده‌های فرم است. برای فرم urlencoded اگر داده ها رشته utf-8 باشد به صورت رشته و در غیر این صورت به صورت ArrayBuffer ذخیره می شود. برای فرم داده ها ArrayBuffer است. اگر فرم-داده نشان دهنده فایل آپلود است، اگر نام فایل ارائه شده باشد، رشته ای با نام فایل است.

Enum

ArrayBuffer

رشته

HttpHeaders

آرایه ای از هدرهای HTTP. هر سرصفحه به عنوان یک فرهنگ لغت حاوی name کلید و value یا binaryValue Value نمایش داده می شود.

تایپ کنید

شیء[]

خواص

  • باینری ارزش

    شماره[] اختیاری

    مقدار هدر HTTP اگر نتواند با UTF-8 نمایش داده شود، به عنوان مقادیر بایت جداگانه ذخیره می شود (0..255).

  • نام

    رشته

    نام هدر HTTP.

  • ارزش

    رشته اختیاری

    مقدار هدر HTTP اگر بتوان آن را با UTF-8 نشان داد.

IgnoredActionType

Chrome 70+

Enum

"تغییر مسیر"

"headers_ request"

"response_headers"

"auth_credentials"

OnAuthRequiredOptions

Chrome 44+

Enum

"responseheaders"
مشخص می کند که سرصفحه های پاسخ باید در رویداد گنجانده شوند.

"مسدود کردن"
مشخص می کند که درخواست تا زمانی که عملکرد برگشت به تماس بازگردد مسدود شود.

"asyncBlocking"
مشخص می کند که عملکرد برگشت به تماس به صورت ناهمزمان مدیریت می شود.

"extraheaders"
مشخص می‌کند که هدرها می‌توانند اشتراک‌گذاری منابع متقاطع (CORS) را نقض کنند.

OnBeforeRedirectOptions

Chrome 44+

Enum

"responseheaders"
مشخص می کند که سرصفحه های پاسخ باید در رویداد گنجانده شوند.

"extraheaders"
مشخص می‌کند که هدرها می‌توانند اشتراک‌گذاری منابع متقاطع (CORS) را نقض کنند.

OnBeforeRequestOptions

Chrome 44+

Enum

"مسدود کردن"
مشخص می کند که درخواست تا زمانی که عملکرد برگشت به تماس بازگردد مسدود شود.

"RequestBody"
مشخص می کند که بدنه درخواست باید در رویداد گنجانده شود.

"extraheaders"
مشخص می‌کند که هدرها می‌توانند اشتراک‌گذاری منابع متقاطع (CORS) را نقض کنند.

OnBeforeSendHeadersOptions

Chrome 44+

Enum

"Request Headers"
مشخص می کند که هدر درخواست باید در رویداد گنجانده شود.

"مسدود کردن"
مشخص می کند که درخواست تا زمانی که عملکرد برگشت به تماس بازگردد مسدود شود.

"extraheaders"
مشخص می‌کند که هدرها می‌توانند اشتراک‌گذاری منابع متقاطع (CORS) را نقض کنند.

OnCompletedOptions

Chrome 44+

Enum

"responseheaders"
مشخص می کند که سرصفحه های پاسخ باید در رویداد گنجانده شوند.

"extraheaders"
مشخص می‌کند که هدرها می‌توانند اشتراک‌گذاری منابع متقاطع (CORS) را نقض کنند.

OnErrorOccurredOptions

Chrome 79+

ارزش

"extraheaders"

OnHeadersReceivedOptions

Chrome 44+

Enum

"مسدود کردن"
مشخص می کند که درخواست تا زمانی که عملکرد برگشت به تماس بازگردد مسدود شود.

"responseheaders"
مشخص می کند که سرصفحه های پاسخ باید در رویداد گنجانده شوند.

"extraheaders"
مشخص می‌کند که هدرها می‌توانند اشتراک‌گذاری منابع متقاطع (CORS) را نقض کنند.

OnResponseStartedOptions

Chrome 44+

Enum

"responseheaders"
مشخص می کند که سرصفحه های پاسخ باید در رویداد گنجانده شوند.

"extraheaders"
مشخص می‌کند که هدرها می‌توانند اشتراک‌گذاری منابع متقاطع (CORS) را نقض کنند.

OnSendHeadersOptions

Chrome 44+

Enum

"Request Headers"
مشخص می کند که هدر درخواست باید در رویداد گنجانده شود.

"extraheaders"
مشخص می‌کند که هدرها می‌توانند اشتراک‌گذاری منابع متقاطع (CORS) را نقض کنند.

RequestFilter

یک شی که فیلترهایی را برای اعمال در رویدادهای webRequest توصیف می کند.

خواص

  • tabId

    شماره اختیاری

  • انواع

    نوع منبع [] اختیاری است

    لیستی از انواع درخواست درخواست هایی که نمی توانند با هیچ یک از انواع مطابقت داشته باشند، فیلتر می شوند.

  • آدرس های اینترنتی

    رشته[]

    فهرستی از URL ها یا الگوهای URL. درخواست هایی که نمی توانند با هیچ یک از URL ها مطابقت داشته باشند، فیلتر می شوند.

  • شناسه پنجره

    شماره اختیاری

ResourceType

Chrome 44+

Enum

"فریم_اصلی"
منبع را به عنوان فریم اصلی مشخص می کند.

"sub_frame"
منبع را به عنوان فریم فرعی مشخص می کند.

"شیوه نامه"
منبع را به عنوان یک شیوه نامه مشخص می کند.

"اسکریپت"
منبع را به عنوان یک اسکریپت مشخص می کند.

"تصویر"
منبع را به صورت تصویر مشخص می کند.

"فونت"
منبع را به عنوان یک فونت مشخص می کند.

"شیء"
منبع را به عنوان یک شی مشخص می کند.

"xmlhttpدرخواست"
منبع را به عنوان یک XMLHttpRequest مشخص می کند.

"پینگ"
منبع را به صورت پینگ مشخص می کند.

"csp_report"
منبع را به عنوان گزارش خط مشی امنیت محتوا (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 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.

رویدادها

onActionIgnored

Chrome 70+
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 سند درخواست کننده.

      • Chrome 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 سند درخواست کننده.

      • Chrome 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 سند درخواست کننده.

      • Chrome 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 سند درخواست کننده.

      • Chrome 106+

        چرخه عمر سند در آن است.

      • frameId

        شماره

        مقدار 0 نشان می دهد که درخواست در فریم اصلی اتفاق می افتد. یک مقدار مثبت نشان دهنده شناسه زیرفریمی است که درخواست در آن انجام می شود. اگر سند یک قاب (زیر) بارگذاری شود ( type main_frame یا sub_frame است)، frameId نشان دهنده شناسه این قاب است، نه شناسه قاب بیرونی. شناسه‌های فریم در یک برگه منحصربه‌فرد هستند.

      • Chrome 106+

        نوع فریمی که درخواست در آن رخ داده است.

      • از کش

        بولی

        نشان می دهد که آیا این پاسخ از حافظه پنهان دیسک واکشی شده است یا خیر.

      • آغازگر

        رشته اختیاری

        Chrome 63+

        مبدایی که در آن درخواست آغاز شد. این از طریق تغییر مسیر تغییر نمی کند. اگر منشا مات باشد، از رشته «تهی» استفاده خواهد شد.

      • آی پی

        رشته اختیاری

        آدرس IP سروری که درخواست واقعاً به آن ارسال شده است. توجه داشته باشید که ممکن است یک آدرس IPv6 تحت اللفظی باشد.

      • روش

        رشته

        روش استاندارد HTTP.

      • وابسته به جبهه والدین

        رشته اختیاری

        Chrome 106+

        UUID سند والدین که دارای این قاب است. اگر پدر و مادر وجود نداشته باشد ، این تنظیم نشده است.

      • پدر و مادر

        شماره

        شناسه قاب که قاب را ارسال می کند که درخواست ارسال می کند. در صورت عدم وجود قاب والدین ، ​​روی -1 تنظیم کنید.

      • خواسته

        رشته

        شناسه درخواست شناسه درخواست در یک جلسه مرورگر بی نظیر است. در نتیجه ، می توان از آنها برای ارتباط وقایع مختلف همان درخواست استفاده کرد.

      • سرپرستان

        httpheaders اختیاری

        هدرهای پاسخ HTTP که همراه با این پاسخ دریافت شده اند.

      • کد وضعیت

        شماره

        کد وضعیت HTTP استاندارد توسط سرور برگردانده شده است.

      • خط وضعیت

        رشته

        خط وضعیت HTTP از پاسخ یا رشته "HTTP/0.9 200 OK" برای پاسخ HTTP/0.9 (به عنوان مثال ، پاسخ هایی که فاقد خط وضعیت هستند) یا در صورت عدم وجود هدر.

      • زبانه

        شماره

        شناسه زبانه ای که در آن درخواست صورت می گیرد. اگر درخواست مربوط به برگه نیست ، روی -1 تنظیم کنید.

      • زمان سنج

        شماره

        زمان شروع این سیگنال ، در میلی ثانیه از زمان دوره.

      • نوع

        نحوه استفاده از منبع درخواست شده.

      • آدرس اینترنتی

        رشته

  • فیلتر کنید
  • بیرونی

    onCompletedoptions [] اختیاری

onErrorOccurred

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

هنگام بروز خطا ، اخراج شد.

پارامترها

  • پاسخ به تماس

    تابع

    پارامتر callback به نظر می رسد:

    (details: object) => void

    • جزئیات

      شی

      • مستند

        رشته

        Chrome 106+

        UUID سند که درخواست را می کند. اگر درخواست ناوبری یک قاب باشد ، این مقدار موجود نیست.

      • Chrome 106+

        چرخه عمر سند در آن قرار دارد.

      • خطا

        رشته

        توضیحات خطا این رشته تضمین نمی شود که بین نسخه ها سازگار باشد. شما نباید بر اساس محتوای آن تجزیه و عمل کنید.

      • قاب

        شماره

        مقدار 0 نشان می دهد که درخواست در قاب اصلی اتفاق می افتد. یک مقدار مثبت نشان دهنده شناسه زیر فریم است که در آن درخواست اتفاق می افتد. اگر سند یک قاب (زیر) بارگذاری شود ( type main_frame یا sub_frame است) ، frameId شناسه این قاب را نشان می دهد ، نه شناسه قاب بیرونی. شناسه های فریم در یک برگه منحصر به فرد هستند.

      • Chrome 106+

        نوع قاب درخواست در آن رخ داده است.

      • کاسه

        بولی

        نشان می دهد که آیا این پاسخ از حافظه نهان دیسک گرفته شده است.

      • آغازگر

        رشته اختیاری

        Chrome 63+

        منشأ جایی که درخواست آغاز شده است. این از طریق تغییر مسیر تغییر نمی کند. اگر این یک منشأ مات باشد ، از رشته "تهی" استفاده می شود.

      • آی پی

        رشته اختیاری

        آدرس IP سرور که درخواست در واقع به آن ارسال شده است. توجه داشته باشید که ممکن است یک آدرس IPv6 تحت اللفظی باشد.

      • روش

        رشته

        روش استاندارد HTTP.

      • وابسته به جبهه والدین

        رشته اختیاری

        Chrome 106+

        UUID سند والدین که دارای این قاب است. اگر پدر و مادر وجود نداشته باشد ، این تنظیم نشده است.

      • پدر و مادر

        شماره

        شناسه قاب که قاب را ارسال می کند که درخواست ارسال می کند. در صورت عدم وجود قاب والدین ، ​​روی -1 تنظیم کنید.

      • خواسته

        رشته

        شناسه درخواست شناسه درخواست در یک جلسه مرورگر بی نظیر است. در نتیجه ، می توان از آنها برای ارتباط وقایع مختلف همان درخواست استفاده کرد.

      • زبانه

        شماره

        شناسه زبانه ای که در آن درخواست صورت می گیرد. اگر درخواست مربوط به برگه نیست ، روی -1 تنظیم کنید.

      • زمان سنج

        شماره

        زمان شروع این سیگنال ، در میلی ثانیه از زمان دوره.

      • نوع

        نحوه استفاده از منبع درخواست شده.

      • آدرس اینترنتی

        رشته

  • فیلتر کنید
  • بیرونی

    Onerroroccurredoptions [] اختیاری

onHeadersReceived

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

هنگامی که عنوان های پاسخ HTTP یک درخواست دریافت شده است ، اخراج شد.

پارامترها

  • پاسخ به تماس

    تابع

    پارامتر callback به نظر می رسد:

    (details: object) => BlockingResponse | undefined

    • جزئیات

      شی

      • مستند

        رشته

        Chrome 106+

        UUID سند که درخواست را می کند.

      • Chrome 106+

        چرخه عمر سند در آن قرار دارد.

      • قاب

        شماره

        مقدار 0 نشان می دهد که درخواست در قاب اصلی اتفاق می افتد. یک مقدار مثبت نشان دهنده شناسه زیر فریم است که در آن درخواست اتفاق می افتد. اگر سند یک قاب (زیر) بارگذاری شود ( type main_frame یا sub_frame است) ، frameId شناسه این قاب را نشان می دهد ، نه شناسه قاب بیرونی. شناسه های فریم در یک برگه منحصر به فرد هستند.

      • Chrome 106+

        نوع قاب درخواست در آن رخ داده است.

      • آغازگر

        رشته اختیاری

        Chrome 63+

        منشأ جایی که درخواست آغاز شده است. این از طریق تغییر مسیر تغییر نمی کند. اگر این یک منشأ مات باشد ، از رشته "تهی" استفاده می شود.

      • روش

        رشته

        روش استاندارد HTTP.

      • وابسته به جبهه والدین

        رشته اختیاری

        Chrome 106+

        UUID سند والدین که دارای این قاب است. اگر پدر و مادر وجود نداشته باشد ، این تنظیم نشده است.

      • پدر و مادر

        شماره

        شناسه قاب که قاب را ارسال می کند که درخواست ارسال می کند. در صورت عدم وجود قاب والدین ، ​​روی -1 تنظیم کنید.

      • خواسته

        رشته

        شناسه درخواست شناسه درخواست در یک جلسه مرورگر بی نظیر است. در نتیجه ، می توان از آنها برای ارتباط وقایع مختلف همان درخواست استفاده کرد.

      • سرپرستان

        httpheaders اختیاری

        هدرهای پاسخ HTTP که با این پاسخ دریافت شده اند.

      • کد وضعیت

        شماره

        Chrome 43+

        کد وضعیت HTTP استاندارد توسط سرور برگردانده شده است.

      • خط وضعیت

        رشته

        خط وضعیت HTTP پاسخ یا رشته "HTTP/0.9 200 OK" برای پاسخ HTTP/0.9 (یعنی پاسخ هایی که فاقد خط وضعیت هستند).

      • زبانه

        شماره

        شناسه زبانه ای که در آن درخواست صورت می گیرد. اگر درخواست مربوط به برگه نیست ، روی -1 تنظیم کنید.

      • زمان سنج

        شماره

        زمان شروع این سیگنال ، در میلی ثانیه از زمان دوره.

      • نوع

        نحوه استفاده از منبع درخواست شده.

      • آدرس اینترنتی

        رشته

    • برمی گرداند

      BlockingResponse | تعریف نشده

      اگر "مسدود کردن" در پارامتر "ExtrainFospec" مشخص شده باشد ، شنونده رویداد باید یک شی از این نوع را برگرداند.

  • فیلتر کنید
  • بیرونی

    OneHeadersReceivedOptions [] اختیاری

onResponseStarted

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

هنگامی که اولین بایت بدنه پاسخ دریافت می شود ، اخراج شد. برای درخواست های HTTP ، این بدان معنی است که خط وضعیت و هدرهای پاسخ در دسترس هستند.

پارامترها

  • پاسخ به تماس

    تابع

    پارامتر callback به نظر می رسد:

    (details: object) => void

    • جزئیات

      شی

      • مستند

        رشته

        Chrome 106+

        UUID سند که درخواست را می کند.

      • Chrome 106+

        چرخه عمر سند در آن قرار دارد.

      • قاب

        شماره

        مقدار 0 نشان می دهد که درخواست در قاب اصلی اتفاق می افتد. یک مقدار مثبت نشان دهنده شناسه زیر فریم است که در آن درخواست اتفاق می افتد. اگر سند یک قاب (زیر) بارگذاری شود ( type main_frame یا sub_frame است) ، frameId شناسه این قاب را نشان می دهد ، نه شناسه قاب بیرونی. شناسه های فریم در یک برگه منحصر به فرد هستند.

      • Chrome 106+

        نوع قاب درخواست در آن رخ داده است.

      • کاسه

        بولی

        نشان می دهد که آیا این پاسخ از حافظه نهان دیسک گرفته شده است.

      • آغازگر

        رشته اختیاری

        Chrome 63+

        منشأ جایی که درخواست آغاز شده است. این از طریق تغییر مسیر تغییر نمی کند. اگر این یک منشأ مات باشد ، از رشته "تهی" استفاده می شود.

      • آی پی

        رشته اختیاری

        آدرس IP سرور که درخواست در واقع به آن ارسال شده است. توجه داشته باشید که ممکن است یک آدرس IPv6 تحت اللفظی باشد.

      • روش

        رشته

        روش استاندارد HTTP.

      • وابسته به جبهه والدین

        رشته اختیاری

        Chrome 106+

        UUID سند والدین که دارای این قاب است. اگر پدر و مادر وجود نداشته باشد ، این تنظیم نشده است.

      • پدر و مادر

        شماره

        شناسه قاب که قاب را ارسال می کند که درخواست ارسال می کند. در صورت عدم وجود قاب والدین ، ​​روی -1 تنظیم کنید.

      • خواسته

        رشته

        شناسه درخواست شناسه درخواست در یک جلسه مرورگر بی نظیر است. در نتیجه ، می توان از آنها برای ارتباط وقایع مختلف همان درخواست استفاده کرد.

      • سرپرستان

        httpheaders اختیاری

        هدرهای پاسخ HTTP که همراه با این پاسخ دریافت شده اند.

      • کد وضعیت

        شماره

        کد وضعیت HTTP استاندارد توسط سرور برگردانده شده است.

      • خط وضعیت

        رشته

        خط وضعیت HTTP از پاسخ یا رشته "HTTP/0.9 200 OK" برای پاسخ HTTP/0.9 (به عنوان مثال ، پاسخ هایی که فاقد خط وضعیت هستند) یا در صورت عدم وجود هدر.

      • زبانه

        شماره

        شناسه زبانه ای که در آن درخواست صورت می گیرد. اگر درخواست مربوط به برگه نیست ، روی -1 تنظیم کنید.

      • زمان سنج

        شماره

        زمان شروع این سیگنال ، در میلی ثانیه از زمان دوره.

      • نوع

        نحوه استفاده از منبع درخواست شده.

      • آدرس اینترنتی

        رشته

  • فیلتر کنید
  • بیرونی

    onResponseStartEdoptions [] اختیاری

onSendHeaders

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

درست قبل از ارسال درخواست به سرور ، شلیک شد (اصلاح تماس های قبلی onbeforesendeders تا زمان اخراج از سرنوشت ها قابل مشاهده است).

پارامترها

  • پاسخ به تماس

    تابع

    پارامتر callback به نظر می رسد:

    (details: object) => void

    • جزئیات

      شی

      • مستند

        رشته

        Chrome 106+

        UUID سند که درخواست را می کند.

      • Chrome 106+

        چرخه عمر سند در آن قرار دارد.

      • قاب

        شماره

        مقدار 0 نشان می دهد که درخواست در قاب اصلی اتفاق می افتد. یک مقدار مثبت نشان دهنده شناسه زیر فریم است که در آن درخواست اتفاق می افتد. اگر سند یک قاب (زیر) بارگذاری شود ( type main_frame یا sub_frame است) ، frameId شناسه این قاب را نشان می دهد ، نه شناسه قاب بیرونی. شناسه های فریم در یک برگه منحصر به فرد هستند.

      • Chrome 106+

        نوع قاب درخواست در آن رخ داده است.

      • آغازگر

        رشته اختیاری

        Chrome 63+

        منشأ جایی که درخواست آغاز شده است. این از طریق تغییر مسیر تغییر نمی کند. اگر این یک منشأ مات باشد ، از رشته "تهی" استفاده می شود.

      • روش

        رشته

        روش استاندارد HTTP.

      • وابسته به جبهه والدین

        رشته اختیاری

        Chrome 106+

        UUID سند والدین که دارای این قاب است. اگر پدر و مادر وجود نداشته باشد ، این تنظیم نشده است.

      • پدر و مادر

        شماره

        شناسه قاب که قاب را ارسال می کند که درخواست ارسال می کند. در صورت عدم وجود قاب والدین ، ​​روی -1 تنظیم کنید.

      • سرپرستان

        httpheaders اختیاری

        هدرهای درخواست HTTP که با این درخواست ارسال شده اند.

      • خواسته

        رشته

        شناسه درخواست شناسه درخواست در یک جلسه مرورگر بی نظیر است. در نتیجه ، می توان از آنها برای ارتباط وقایع مختلف همان درخواست استفاده کرد.

      • زبانه

        شماره

        شناسه زبانه ای که در آن درخواست صورت می گیرد. اگر درخواست مربوط به برگه نیست ، روی -1 تنظیم کنید.

      • زمان سنج

        شماره

        زمان شروع این سیگنال ، در میلی ثانیه از زمان دوره.

      • نوع

        نحوه استفاده از منبع درخواست شده.

      • آدرس اینترنتی

        رشته

  • فیلتر کنید
  • بیرونی

    onsendheadersoptions [] اختیاری