Firefox のグローバルプロキシ設定は、通常のウィンドウとプライベートウィンドウの両方に影響します。そのため proxy.settings API は、操作が通常のウィンドウから開始された場合でも、拡張機能にプライベートウィンドウへのアクセスを要求します。

拡張機能は設定を変更する前にこの条件を確認できます:

const allowed = await browser.extension.isAllowedIncognitoAccess();
if (!allowed) {
  throw new Error('Private-window access is required for global proxy settings');
}
await browser.proxy.settings.set({ value: proxyConfig });

proxyConfig は既存の Firefox 形式の設定オブジェクトです。拡張機能には通常のプロキシ API の権限も必要です。

マニフェストがプライベート利用を許可している場合、ユーザーは拡張機能の管理詳細で Run in Private Windows を通じてそのアクセスを制御します。確認はその選択を報告するだけで、権限を自動的に付与するものではありません。

必要なアクセスがない場合、proxy.settings.set は例外を投げます。これは拡張機能が提案されたプロキシへの接続を一切示す前の段階で起こるため、その IP やポートを置き換えてもこの失敗とは関係ありません。

拡張機能の UI で拒否を処理し、ユーザーの選択を保持してください。権限と設定の適用が成功したら、実際の宛先ルートを別途評価します。

関連記事