通常スコープでプロキシを設定した拡張機能は、その設定を次のように解放できます:

chrome.proxy.settings.clear({ scope: 'regular' }, () => {
  if (chrome.runtime.lastError) {
    console.error(chrome.runtime.lastError.message);
    return;
  }
  chrome.proxy.settings.get({ incognito: false }, details => {
    console.log(details.value, details.levelOfControl);
  });
});

これは拡張機能の許可されたバックグラウンド コンテキストで実行します。オーバーライドがシークレット スコープで設定されていた場合は、同じスコープをクリアします。通常スコープをクリアしても、別個のシークレット オーバーライドは削除されません。

clear は拡張機能の設定を解放します。その後 Chrome は、システム設定、コマンドライン オプション、別の拡張機能、ポリシーなど、他に適用できる構成を使用できます。そのため clear が成功しても、システム プロキシが有効なまま残ることがあります。

明示的な機能が直接モードである拡張機能では、mode: 'direct' を設定することで、拡張機能が制御を保持したままその選択を表現します。制御の解放と直接モードの選択は別のユーザー操作なので、UI のオフまたは復元の操作は意図した方に結び付けます。

関連記事