Как я могу изменить настройки прокси-сервера Firefox с помощью внешней программы?
Вопрос
Я видел несколько программ (например, Charles Web Developer Proxy), которые могут изменять настройки прокси-сервера Firefox.Последовательность такова:
- Firefox запущен с настройками прокси-сервера пользователя.
- Пользователь запускает внешнее стороннее приложение, которое
- изменяет настройки прокси-сервера Firefox, а затем
- пользователь выходит из сторонней программы и,
- Firefox возобновляет работу с исходными настройками прокси-сервера.
Предполагая, что внешнее приложение запоминает старые настройки прокси-сервера и восстанавливает их при выходе, как я могу прочитать и записать настройки прокси-сервера Firefox?Пробовал гуглить через Firefox doco, но пока безуспешно.
Рассмотренные варианты:
- Напишите новый конфигурационный файл пользовательских настроек и запустите новый экземпляр браузера.Это сработало бы, но не совсем правильно - Чарльз, например, может изменить настройки уже работающего браузера и восстановить их без перезагрузки.
- Напишите подключаемый модуль.Можно было бы написать плагин Firefox, который предлагал бы какой-то IPC извне, а затем обрабатывал бы саму настройку настроек Firefox.На самом деле, я думаю, что это может быть единственным выходом.Отключение плагина Charles для Firefox, похоже, отключает его способность изменять настройки "на лету".
Возможные Ресурсы
- Программное изменение настроек Firefox: Предпочтения - MDC
- Создание расширений Firefox: Расширения - MDC
Решение
Из того, что я смог увидеть из документации, у Charles есть соответствующее расширение Firefox, которое он устанавливает / использует.Возможно, именно так он может перезагрузить информацию о прокси-сервере "на лету".
Информация о прокси-сервере хранится в вашем профиле prefs.js, но ее нельзя перезагрузить "на лету".Firefox считывает из него данные при запуске и записывает в него, когда он завершает работу, и не загружается из него в промежутках.Кроме того, если Firefox запущен при редактировании prefs.js, ваши изменения будут перезаписаны.
Я думал, вы могли бы что-то сделать с файлом 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 перечитать их.
Если вы ознакомитесь с некоторыми ссылками в ответах на мой предыдущий вопрос возможно, вы найдете код, с помощью которого сможете настроить настройки прокси-сервера по своему усмотрению.
Существует ActiveX-соединение с Firefox через Элемент управления ActiveX для размещения плагинов Netscape в IE но я сомневаюсь, что это как-то поможет.И все же на это стоит взглянуть.
Даже я столкнулся с проблемой настроек подключения, выполненных для использования ручного прокси, которые не отражались при запуске браузера firefox из стороннего приложения (я работаю над selenium)
Я устал добавлять users.js файл в C:\Program Files\Mozilla Firefox\defaults\profile
с изменениями, как было предложено выше (добавление инструкций user_pref), но почему-то мой браузер firefox все еще не улавливал упомянутые изменения.То же самое даже на моем prefs.js в том же месте (на самом деле мой prefs.js пуст !!)
Но есть какой-то другой способ сделать это...в C:\Program Files\Mozilla Firefox\greprefs\all.js внесите те же изменения, что и предложенные выше pref("network.proxy.type", 0);до 1 префикс("network.proxy.http", "");для локального хостинга pref("network.proxy.http_port", 0);до 4444
и все начало получаться..Но я не уверен, что это правильный способ сделать это, поскольку мы меняем файл в каталоге установки..Кстати, это ошибка в firefox??
Ценю ваши комментарии
Я попытался загрузить selenium rc 1.0.3 и использовал * chrome / usr /lib/firefox-3.0.10 / firefox-bin, за которым следовал URL-адрес AUT.Это сработало.Предположительно, они удалили * пользовательский режим запуска с 1.0.3 (мое предположение), потому что при распаковке selenium-server.jar файла я не смог найти ни одного custom.class файла в отличие от более ранних версий, где присутствовал custom.class файл в файле selenium-server.jar.