Расширение Firefox собственным Меню -- это очень просто
В последних версиях Gnome появилось довольно назойливое окно переключения прокси серверов и это стало весьма напрягать при включении и отключении моего прокси, к тому же на сколько я помню в опере имелась кнопочка отключить картинки или иногда хочется отключить анимацию GIF. Разумеется для всего этого есть различные расширения но суть этих расширений сводится к изменению одной или двух внутренних для Firefox переменных и я не вижу особого смысла в их установке
Покопавшись во внутренностях Firefox я выяснил, что он как большое вебприложение и состоит их XML и JS, то-есть, при желании, его можно подстроить под себя, к тому же код этого приложения удивительно легко читается, можно сказать, что все примеры находятся прямо в самом Firefox
Итак, задача добавить в меню "Инструменты" кнопку включающую и выключающую прокси
Как известно настройками прокси управляет переменная 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" и добавляем туда новый пункт меню "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-не закачивать
текст недоступен
другие страницы раздела
- C/C++: Разбор параметров командной строки - unistd.h :: getopt
- С/C++: libconfig - библиотека для обработки конфигурационных файлов
- Python: strip split join
- jQuery: простые примеры
- python: работа со строками и словарями, формирование sql запросов
- Выбор платформы для презентаций
- Пакетная обработка DBF Foxpro файлов, Import в FoxPRO
- Разработка открытой альтернативы закрытому отраслевому ПО "Архивный Фонд"
- Django использование select_related для оптимизации работы
- Linux Django pyodbc MSSQL
- Sqlite3 работа с несколькими базами
- python ProxyError
- Python: сортировка списков
- Flask.admin FileAdmin проблема с локалями
- Flask restful сериализация sqlalchemy моделей в Json поток
комментарии (1)
2011-09-17 02:38:58