Как изменить настройки прокси-сервера Firefox из внешней программы?

Я видел несколько программ (например, Charles Web Developer Proxy), которые могут изменять настройки прокси-сервера Firefox. Последовательность:

  1. Firefox работает с настройками прокси-сервера пользователей.
  2. пользователь запускает внешнее стороннее приложение, которое
  3. изменяет настройки прокси Firefox, а затем
  4. пользователь выходит из сторонней программы и,
  5. Firefox возобновляет работу с исходным прокси-сервером настройки.

предполагая, что внешнее приложение запоминает старые настройки прокси-сервера и восстанавливает их при выходе как я могу читать и писать настройки прокси-сервера Firefox? Попробовали гуглить через Firefox doco, но пока не повезло.

Варианты:

  • напишите новый конфигурационный файл пользовательских настроек и запустите новый экземпляр браузера. Будет работать, но не совсем правильно-Чарльз, например, может изменить настройки уже запущен браузер и восстановите их без перезапуска.
  • написать плагин. Может написать плагин Firefox, который предлагал какой-то IPC снаружи, а затем обрабатывал настройку предпочтений Firefox. На самом деле, я думаю, это единственный способ. Отключение плагина Firefox Чарльза, похоже, отключает его способность изменять настройки на лету.

Возможные Ресурсы

7 ответов


из того, что я мог видеть из документации, у Чарльза есть соответствующее расширение Firefox, которое он устанавливает/использует. Это может быть, как он может перезагрузить информацию прокси на лету.

информация о прокси хранится в префах вашего профиля.js, но это не может быть перезагружено на лету. Firefox читает из него при запуске и записывает в него, когда он выключается, и не загружается из него между ними. Кроме того, если Firefox работает при редактировании префов.js, ваши изменения будут перезаписанный.

Я думал, что вы могли бы сделать что-то с файлом PAC, но после копания немного, я обнаружил, что он, похоже, не перезагружается на лету. Вам придется перезапустить, чтобы перезагрузить любые изменения в настройках.


вы можете посмотреть, как Fiddler это делает (www.fiddler2.com). В C:\program files\fiddler2\fiddlerhook\ folder имеет расширение Firefox, которое показывает, как это можно сделать.


все настройки прокси-сервера для Firefox на моей машине хранятся в C:\DOCUME~1\BRUCEX~1\APPLIC~1\Mozilla\Firefox\профили\licga1pg.по умолчанию\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
 */

ссылка на настройки.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 перечитывать их.


Если вы проверите некоторые из ссылок в ответах на мой предыдущий вопрос вы можете найти код, который можно использовать для настройки параметров прокси-сервера по мере необходимости.


существует подключение ActiveX к Firefox через элемент управления ActiveX для размещения подключаемых модулей Netscape в IE но я сомневаюсь, что это поможет. Тем не менее, стоит взглянуть.


даже я столкнулся с проблемой настроек подключения, сделанных для использования ручного прокси-сервера, не отражался, когда я запускал браузер firefox из приложения thir party (я работаю над selenium)

Я устал добавлять пользователей.файл js в C:\Program файлы\Mozilla Firefox\по умолчанию\профиль

с изменениями, предложенными выше (добавление user_pref), но каким-то образом мой браузер firefox не собирал упомянутые изменения. То же самое и с моими префами.Яш на том же месте (на самом деле мои префы.JS-это пустое !!)

но есть другой способ сделать это... в C:\Program файлы\Mozilla Firefox\greprefs\все.js, сделайте те же изменения, предложенные выше прив (сети".полномочие.тип", 0); до 1 прив (сети".полномочие.http",""); к localhost прив (сети".полномочие.http_port", 0); to 4444

и все начало работать.. Но я не уверен, что это правильный способ сделать это, так как мы меняем файл в каталоге установки.. Кстати, это ошибка с firefox ??

ценю ваши комментарии


Я попытался загрузить selenium rc 1.0.3 и использовал * chrome/usr/lib/firefox-3.0.10 / firefox-bin с последующим URL-адресом AUT.Это сработало.Предположительно, они удалили * пользовательский режим работы с 1.0.3 (мое предположение) , потому что на , распаковывая selenium-server.файл jar, я не мог найти никаких обычаев.файл класса в отличие от более ранних версиях, где присутствовал обычай.файл класса на selenium-сервере.файл jar.