Реєструйте onStartup і onInstalled синхронно на верхньому рівні service worker Manifest V3, коли ці події мають застосувати вибраний проксі. Для розширення, навмисно закріпленого за одним маршрутом:

function applyProxy() {
  chrome.proxy.settings.set({
    value: {
      mode: 'fixed_servers',
      rules: {
        singleProxy: {
          scheme: 'http',
          host: 'proxy.example',
          port: 8080,
        },
      },
    },
    scope: 'regular',
  }, () => {
    if (chrome.runtime.lastError) {
      console.error(chrome.runtime.lastError.message);
    }
  });
}

chrome.runtime.onStartup.addListener(applyProxy);
chrome.runtime.onInstalled.addListener(applyProxy);

manifest має оголосити дозвіл на проксі та назвати цей фоновий worker. Для дозволеного маршруту публічного перегляду без автентифікації проксі замініть кінцеву точку кандидатом зі списку HTTP-проксі, залишивши порт цілим числом.

onStartup — це запуск профілю з установленим розширенням. onInstalled охоплює й оновлення, зокрема перезавантаження розпакованого розширення, яке вважається оновленням. Подія створення вікна описує кожне вікно і може спрацьовувати багаторазово в одній сесії.

Якщо розширення має збережені профілі або вимикач, нехай обробник завантажує й застосовує цей вибір, а не скидає жорстко закодоване значення за замовчуванням під час кожного оновлення. Реєстрація слухачів залишається на верхньому рівні; асинхронна робота може початися, коли Chrome викличе обробник.

Під час розробки перевіряйте встановлення та запуск профілю окремо, звіряючи результат конфігурації для кожного. Це два шляхи ініціалізації, а не доказ, отриманий відкриттям іншого вікна.

Схожі статті