прокси
Используйте API прокси, чтобы проксировать веб-запросы. Вы можете использовать обработчик событий proxy.onRequest, чтобы перехватывать веб-запросы и возвращать объект, описывающий, нужно ли и как их проксировать.
Преимущество подхода с использованием proxy.onRequest заключается в том, что код, реализующий вашу политику проксирования, выполняется в фоновом скрипте вашего расширения, поэтому он получает полный доступ к API WebExtension, доступным вашему расширению (включая, например, доступ к хранилищу вашего расширения storage и сетевым API, таким как dns).
Помимо этого API, расширения также могут использовать свойство browserSettings.proxyConfig для настройки глобальных настроек прокси.
Google Chrome предоставляет API расширений, также называемый "proxy", функционально похожий на этот API, так как расширения могут использовать его для реализации политики проксирования. Однако дизайн API Chrome полностью отличается от этого API. Поскольку этот API несовместим с API Chrome proxy , этот API доступен только через пространство имён browser.
Для использования этого API вам необходимо разрешение "proxy" разрешение. Кроме того, там, где вы хотите перехватывать запросы, вам также нужно разрешение на хосты разрешение на хосты для URL-адресов перехваченных запросов.
Примечание: Разрешение "proxy" требует, чтобы "strict_min_version" было установлено на "91.1.0" или выше. Чтобы использовать это разрешение, добавьте или обновите ключ "browser_specific_settings" в вашем файле manifest.json, чтобы указать минимальную версию Firefox. Более подробную информацию см. в статье Обеспечение безопасности API прокси для дополнений Firefox.
Примечание: Браузер может выполнять спекулятивные подключения, где он определяет, что запрос к URI может появиться вскоре. Такой тип подключения не предоставляет действительной информации о вкладке, поэтому такие сведения о запросе, как tabId, frameId, parentFrameId, и т. д., являются неточными. У этих подключений есть webRequest.ResourceType типа speculative.
Типы
proxy.ProxyInfo-
Описывает прокси-сервер.
proxy.RequestDetails-
Содержит информацию о веб-запросе, который браузер собирается выполнить.
Свойства
proxy.settings-
Получение и установка настроек прокси.
Функции
Предупреждение: Не следует использовать эти методы (proxy.register() или proxy.unregister()) для регистрации и удаления расширенного файла автоконфигурации прокси (PAC). Они были устаревшими в Firefox 68 и удалены в Firefox 71.
-
proxy.register()Устаревший -
Регистрирует указанный скрипт прокси.
-
proxy.unregister()Устаревший -
Отменяет регистрацию скрипта прокси.
События
proxy.onError-
Срабатывает, когда система сталкивается с ошибкой при выполнении скрипта PAC или обработчика событий
onRequest. proxy.onRequest-
Срабатывает, когда собирается быть выполнен веб-запрос, предоставляя расширению возможность его проксирования.
Примеры расширений
Совместимость с браузерами
| Рабочий стол | Мобильный | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | |
ProxyInfo |
Нет | Нет | 60 | ? | Нет | Нет | ? | ? | 60 | ? | Нет | ? |
RequestDetails |
Нет | Нет | 60 | ? | Нет | Нет | ? | ? | 60 | ? | Нет | ? |
onError |
Нет | Нет | 6055–71 | ? | Нет | Нет | ? | ? | 6055 | ? | Нет | ? |
onRequest |
Нет | Нет | 60До версии 78, свойства фильтраtabId и windowId игнорируются. |
? | Нет | Нет | ? | ? | 60 | ? | Нет | ? |
register |
Нет | Нет | 56–7155–71 | ? | Нет | Нет | ? | ? | 56–7955–79 | ? | Нет | ? |
settings |
Нет | Нет | 60Начиная с версии 88, настройкаftp не имеет эффекта, поскольку FTP больше не поддерживается (см. баг 1626365). |
? | Нет | Нет | ? | ? | Нет | ? | Нет | ? |
unregister |
Нет | Нет | 56–71 | ? | Нет | Нет | ? | ? | 56–79 | ? | Нет | ? |
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/proxy