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

StackOverflow https://stackoverflow.com/questions/404729

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

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

Рассмотренные варианты:

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

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

Это было полезно?

Решение

Из того, что я смог увидеть из документации, у 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top