chrome を browser に改名することは、プロキシ拡張機能の完全な移植ではありません。

Chrome の固定サーバー設定は、モードとルールのオブジェクトを使います。Firefox は独自のグローバルプロキシ設定インターフェースと、リクエストごとの proxy.onRequest API を公開しています。名前が似ていても、入力オブジェクトが互換になるわけではありません。

表現したいポリシーから始めます。1 つの固定エンドポイント、PAC 設定、またはリクエストごとに個別に選択するルートです。そのうえで、各ブラウザ向けに文書化されたインターフェースを使います。

Firefox のリクエストごとのリスナーは、拡張機能のコードからプロキシ情報を返せます。プロキシ権限と、傍受したリクエストに対する適切なホストアクセスが必要です。これは、Chrome の固定サーバー設定オブジェクトをコピーし、ブラウザがすべてのフィールドを認識してくれると期待するのとは別の設計です。

対応する Firefox のバージョンと manifest の要件も確認してください。proxy.register() を使う古い例は以前の API を説明しており、現在の拡張機能の土台にすべきではありません。

共有するポリシーデータは、ブラウザ固有の適応から分離してください。テストと診断では、各ブラウザで宛先に対して選ばれたルートを示すべきで、意図的な直接接続の結果も含めます。有効な manifest と例外を投げない API 呼び出しは、始まりにすぎません。

関連記事