Расширение Firefox собственным Меню -- это очень просто

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

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

Итак, задача добавить в меню "Инструменты" кнопку включающую и выключающую прокси

Как известно настройками прокси управляет переменная network.proxy.type. При значении 0 прокси не используется, а при значении 5 используется сервер заданный в настройках рабочего стола, это легко увидеть меняя настройки и глядя на закладку about:config.

Работа с внутренними переменными FirefoxНовый пункт меню в Firefox

То-есть Я должен добавить меню с функцией которая изменяет значение этой переменной. Итак, нужно отредактировать всего два файла

sudo vim /usr/lib/firefox-3.6.3/chrome/browser.jar

в полученном списке файлов выбираем файл content/browser/browser.xul находим раздел подменю id="tools-menu" и добавляем туда новый пункт меню "Switch proxy" (вставка должна соответствовать стандартам 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-выключение

permissions.default.image -- 1-закачивать картинки, 2-не закачивать

Комментариев 0
Нужна авторизация с помощью
Об авторе
Илья Илья

меня можно найти тут