Chrome と Firefox の間でプロキシ拡張機能を移植する
Firefox と Chrome は似た名前の拡張 API を公開していますが、設定モデルは異なります。名前空間だけでなく、ルーティングポリシーを移植してください。
chrome を browser に改名することは、プロキシ拡張機能の完全な移植ではありません。
Chrome の固定サーバー設定は、モードとルールのオブジェクトを使います。Firefox は独自のグローバルプロキシ設定インターフェースと、リクエストごとの proxy.onRequest API を公開しています。名前が似ていても、入力オブジェクトが互換になるわけではありません。
表現したいポリシーから始めます。1 つの固定エンドポイント、PAC 設定、またはリクエストごとに個別に選択するルートです。そのうえで、各ブラウザ向けに文書化されたインターフェースを使います。
Firefox のリクエストごとのリスナーは、拡張機能のコードからプロキシ情報を返せます。プロキシ権限と、傍受したリクエストに対する適切なホストアクセスが必要です。これは、Chrome の固定サーバー設定オブジェクトをコピーし、ブラウザがすべてのフィールドを認識してくれると期待するのとは別の設計です。
対応する Firefox のバージョンと manifest の要件も確認してください。proxy.register() を使う古い例は以前の API を説明しており、現在の拡張機能の土台にすべきではありません。
共有するポリシーデータは、ブラウザ固有の適応から分離してください。テストと診断では、各ブラウザで宛先に対して選ばれたルートを示すべきで、意図的な直接接続の結果も含めます。有効な manifest と例外を投げない API 呼び出しは、始まりにすぎません。