ローカルホスト(127.0.0.1)でプロキシサーバーを実行していますが、ブロックされたWebサイトをバイパスするためにFirefoxでプロキシを切り替える方法についてユーザーをトレーニングする必要があることにうんざりしています。
アドオンを書くことにしました。xpcomを使用して、Firefoxに特定のプロキシを使用するように指示する方法を知りたいです。たとえばhttp
の場合、127.0.0.1ポート8080を使用します
。インターネット上の例はほとんどありません。
ありがとう
ローカルホスト(127.0.0.1)でプロキシサーバーを実行していますが、ブロックされたWebサイトをバイパスするためにFirefoxでプロキシを切り替える方法についてユーザーをトレーニングする必要があることにうんざりしています。
アドオンを書くことにしました。xpcomを使用して、Firefoxに特定のプロキシを使用するように指示する方法を知りたいです。たとえばhttp
の場合、127.0.0.1ポート8080を使用します
。インターネット上の例はほとんどありません。
ありがとう
プロキシ設定は設定に保存されます。おそらく変更したいでしょうnetwork.proxy.type
、network.proxy.http
そしてnetwork.proxy.http_port
(ドキュメンテーション)。このような:
Components.utils.import("resource://gre/modules/Services.jsm");
Services.prefs.setIntPref("network.proxy.type", 1);
Services.prefs.setCharPref("network.proxy.http", "127.0.0.1");
Services.prefs.setIntPref("network.proxy.http_port", 8080);
URL ごとにプロキシを動的に決定する必要がある場合は、nsIProtocolProxyService
インターフェイスごとに機能プロバイダーを使用できます。これにより、「プロキシ フィルター」を定義できます。このようなものが動作するはずです:
var pps = Components.classes["@mozilla.org/network/protocol-proxy-service;1"]
.getService(Components.interfaces.nsIProtocolProxyService);
// Create the proxy info object in advance to avoid creating one every time
var myProxyInfo = pps.newProxyInfo("http", "127.0.0.1", 8080, 0, -1, 0);
var filter = {
applyFilter: function(pps, uri, proxy)
{
if (uri.spec == ...)
return myProxyInfo;
else
return proxy;
}
};
pps.registerFilter(filter, 1000);