Firefoxのプロキシ設定を外部プログラムから変更するにはどうすればよいですか?
質問
Firefoxのプロキシ設定を変更できるプログラム(Charles Web Developer Proxyなど)をいくつか見ました。シーケンスは次のとおりです。
- Firefoxは、ユーザープロキシ設定で実行されています。
- ユーザーが外部のサードパーティ製アプリケーションを起動します
- Firefoxのプロキシ設定を変更してから、
- ユーザーがサードパーティのプログラムを終了し、
- Firefoxは元のプロキシ設定で実行を再開します。
外部アプリケーションが古いプロキシ設定を記憶し、終了時にそれらを復元すると仮定すると、Firefoxのプロキシ設定をどのように読み書きできますか? Firefox docoでGooglingを試しましたが、まだ運がありません。
考慮されるオプション:
- 新しいユーザー設定設定ファイルを作成し、ブラウザの新しいインスタンスを起動します。動作しますが、まったく正しくありません。たとえば、Charlesは、既に実行中のブラウザーの設定を変更し、再起動せずにそれらを復元できます。
- プラグインを作成します。何らかのIPCを外部に提供し、Firefoxの設定自体を処理するFirefoxプラグインを作成できます。実際、これが唯一の方法だと思います。 CharlesのFirefoxプラグインを無効にすると、その場で設定を変更する機能が無効になります。
可能なリソース
解決
ドキュメンテーションから私が見ることができるものから、チャールズはインストール/使用する一致するFirefox拡張機能を持っています。それは、プロキシ情報をその場でリロードできる方法かもしれません。
プロキシ情報はプロファイルのprefs.jsに保存されますが、その場でリロードすることはできません。 Firefoxは起動時にそれから読み取り、シャットダウン時に書き込みを行い、その間は読み込まれません。また、prefs.jsの編集時にFirefoxが実行されている場合、変更は上書きされます。
PACファイルで何かできるかもしれないと思っていましたが、少し掘り下げてみると、その場でリロードされていないようです。設定の変更をリロードするには、再起動する必要があります。
他のヒント
Fiddlerがこれをどのように行うかをご覧ください(www.fiddler2.com)。 C:\ program files \ fiddler2 \ fiddlerhook \フォルダーには、これを行う方法を示すFirefox拡張機能があります。
私のマシン上のFirefoxのプロキシ設定はすべて、C:\ DOCUME〜1 \ BRUCEX〜1 \ APPLIC〜1 \ Mozilla \ Firefox \ Profiles \ licga1pg.default \ prefs.jsに保存されています。そのファイルのヘッダーには次のように記載されています
# Mozilla User Preferences
/* Do not edit this file.
*
* If you make changes to this file while the application is running,
* the changes will be overwritten when the application exits.
*
* To make a manual change to preferences, you can visit the URL about:config
* For more information, see http://www.mozilla.org/unix/customizing.html#prefs
*/
customizing.htmlへのリンクはこちらです。したがって、理論的には、これらの一部またはすべてを調整できます
user_pref("network.proxy.backup.ftp", "squid.home-server");
user_pref("network.proxy.backup.ftp_port", 3128);
user_pref("network.proxy.backup.gopher", "squid.home-server");
user_pref("network.proxy.backup.gopher_port", 3128);
user_pref("network.proxy.backup.socks", "squid.home-server");
user_pref("network.proxy.backup.socks_port", 3128);
user_pref("network.proxy.backup.ssl", "squid.home-server");
user_pref("network.proxy.backup.ssl_port", 3128);
user_pref("network.proxy.ftp", "squid.home-server");
user_pref("network.proxy.ftp_port", 3128);
user_pref("network.proxy.gopher", "squid.home-server");
user_pref("network.proxy.gopher_port", 3128);
user_pref("network.proxy.http", "squid.home-server");
user_pref("network.proxy.http_port", 3128);
user_pref("network.proxy.no_proxies_on", "localhost, 127.0.0.1, *.my-domain");
user_pref("network.proxy.share_proxy_settings", true);
user_pref("network.proxy.socks", "squid.home-server");
user_pref("network.proxy.socks_port", 3128);
user_pref("network.proxy.ssl", "squid.home-server");
user_pref("network.proxy.ssl_port", 3128);
user_pref("network.proxy.type", 1);
しかし、Firefoxにそれらを再読み込みさせる問題があります。
以前の質問への回答のリンクをチェックアウトした場合必要に応じてプロキシ設定を調整するために使用できるコードを見つけることができます。
IEでNetscapeプラグインをホストするためのActiveXコントロールを介して、FirefoxへのActiveX接続がありますしかし、それが助けになるかどうかは疑問です。それでも、一見の価値があります。
サードパーティのアプリケーションからFirefoxブラウザを起動すると、手動プロキシを使用するために行われた接続設定の問題に直面していました(私はセレンに取り組んでいます)
C:\ Program Files \ Mozilla Firefox \ defaults \ profileにusers.jsファイルを追加するのはうんざりです
上記で提案された変更(user_prefの追加)ステートメントを使用しますが、どういうわけか、私のFirefoxブラウザーは上記の変更を反映していません。同じ場所のprefs.jsでも同じことです(実際、prefs.jsは空です!!)
しかし、それを行う他の方法があります... C:\ Program Files \ Mozilla Firefox \ greprefs \ all.jsで、上記と同じ変更を行います pref(" network.proxy.type&quot ;, 0); 1に pref(" network.proxy.http&quot ;,"");ローカルホストへ pref(" network.proxy.http_port&quot ;, 0); 4444へ
そして物事は働き始めた.. ただし、インストールディレクトリのファイルを変更しているため、これが正しい方法かどうかはわかりません。 ところで、Firefoxのバグですか??
コメントに感謝
selenium rc 1.0.3をダウンロードして、* chrome /usr/lib/firefox-3.0.10/firefox-binに続いてAUTのURLを使用してみましたが、うまくいきました。 1.0.3(私の推測)から実行しています。なぜなら、selenium-server.jarファイルを解凍すると、selenium-serverにcustom.classファイルが存在していた以前のバージョンとは対照的に、custom.classファイルが見つかりませんでした.jarファイル。