В последних версиях Gnome появилось довольно раздражающее окно переключения прокси-сервера, и оно стало очень раздражать, когда я включал и выключал прокси-сервер. Также, насколько я помню, в Опере была кнопка отключения изображений, или иногда хочется отключить GIF-анимацию. Конечно, для всего этого есть разные расширения, но суть этих расширений заключается в изменении одной или двух внутренних переменных Firefox, и я не вижу особого смысла их устанавливать
Покопавшись во внутренностях Firefox, я узнал, что это похоже на большое веб-приложение и сделано оно из XML и JS, а значит при желании его можно настроить под себя, плюс код этого приложения на удивление прост. Для прочтения мы можно сказать, что все примеры в самом Firefox правильные
Значит задача добавить в меню Tools кнопку для включения и отключения прокси
Как вы знаете, настройками прокси управляет переменная network.proxy.type. Значение 0 не использует прокси, а значение 5 использует сервер, указанный в настройках рабочего стола. В этом легко убедиться, изменив настройки и посмотрев на вкладку about:config.
Это означает, что мне нужно добавить меню с функцией, которая изменяет значение этой переменной. Таким образом, вам нужно отредактировать только два файла.
sudo vim /usr/lib/firefox-3.6.3/chrome/browser.jar
В полученном списке файлов выберите файл content/browser/browser.xul, найдите раздел подменю id=»tools-menu» и добавьте туда новый пункт меню «Переключить прокси» (вставка должна соответствовать стандартам XML).
<menuseparator id="imageprefs"/>
<menuitem id="menu_switchproxy" label="Switch proxy" oncommand="switch_proxy()"/>Сохраните, перейдите в конец файла content/browser/browser.js и добавьте туда функцию
function switch_proxy(){
if (gPrefService.getIntPref("network.proxy.type") == 5) {
gPrefService.setIntPref("network.proxy.type", 0);
}else{
gPrefService.setIntPref("network.proxy.type", 5);
}
}Сохраняем файл (если редактируете его через vim, можно не беспокоиться об обновлении JAR-архива) и перезапускаем Firefox. Все работает. Точно так же вы можете сделать переключатель, который управляет анимацией и автоматической загрузкой изображений. Для этого нужно обработать переменные:
image.animation_mode – Активировать анимацию с помощью «true», деактивировать с «false».
Разрешения.default.image — 1-загружать изображения, 2-не загружать