2

ローカルホスト(127.0.0.1)でプロキシサーバーを実行していますが、ブロックされたWebサイトをバイパスするためにFirefoxでプロキシを切り替える方法についてユーザーをトレーニングする必要があることにうんざりしています。
アドオンを書くことにしました。xpcomを使用して、Firefoxに特定のプロキシを使用するように指示する方法を知りたいです。たとえばhttp
の場合、127.0.0.1ポート8080を使用します
。インターネット上の例はほとんどありません。

ありがとう

4

1 に答える 1

6

プロキシ設定は設定に保存されます。おそらく変更したいでしょうnetwork.proxy.typenetwork.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);
于 2012-05-15T17:13:06.240 に答える