Firefox минималиста: радикальная оптимизация через user.js

Я вырос на Netscape Communicator, поэтому до сих пор воспринимаю браузер не как комбайн, а как окно в сеть. Мой сценарий прост: открыл, прочитал, закрыл. Никаких следов в системе, никакой телеметрии и кэша на диске — только чистый текст и гиперссылки, как в старые добрые времена. С помощью файла user.js я настраиваю Firefox в рамках этой философии. Естественно, я не фанатик: это не единственный мой браузер, да и использую я его только на одном устройстве.

Сейчас я покажу, как превратить Firefox в герметичную среду для веб-серфинга: перенести кэш в оперативную память, внедрить режим полной очистки при выходе, заблокировать автозаполнение, вырезать телеметрию с Pocket и отключить лишние анимации интерфейса.

Поехали!

Куда поместить файл user.js?

Прежде всего нужно создать такой файл и поместить его в папку профиля браузера, расположение которого зависит от ОС.

Нам нужно найти именно корневой каталог профиля, для чего в адресной строке вводим about:profiles.

корневой каталог профиля firefox

Профилей может быть несколько, необходимо выбрать используемый в данный момент.

Если вы используете Linux, это может быть такая папка в хомяке:

~/.mozilla/firefox/*.default-default/

Для Flatpak-версии путь будет существенно отличаться, так как это изолированное приложение:

~/.var/app/org.mozilla.firefox/config/mozilla/firefox/*.default-release-*/

Короче, с этим разобрались. Переходим к содержимому конфигурирующего файла, я разделил его на секции для удобочитаемости статьи. Если нужен уже готовый файл, то скачайте его в этом разделе статьи.

Полный запрет кэша на диске (RAM-only)


user_pref("browser.cache.disk.enable", false);
user_pref("browser.cache.disk.capacity", 0);
user_pref("browser.cache.disk.smart_size.enabled", false);
user_pref("browser.cache.offline.enable", false);
user_pref("browser.cache.disk_cache_ssl", false);
user_pref("browser.cache.memory.enable", true);
user_pref("browser.cache.memory.capacity", -1);

Режим амнезии (очистка при выходе)


user_pref("privacy.sanitize.sanitizeOnShutdown", true);
user_pref("privacy.clearOnShutdown.cache", true);
user_pref("privacy.clearOnShutdown.cookies", true);
user_pref("privacy.clearOnShutdown.downloads", true);
user_pref("privacy.clearOnShutdown.history", true);
user_pref("privacy.clearOnShutdown.formdata", true);
user_pref("privacy.clearOnShutdown.sessions", true);
user_pref("network.cookie.lifetimePolicy", 2);

Последняя строчка в этой секции означает следующее: принимать куки только на время текущей сессии.

Добавляем https://accounts.google.com в исключения. Вы можете так поступить с любым доменом: «Настройки» → «Приватность и защита» → раздел «Куки и данные сайтов» → «Управление исключениями».

Вырезаем менеджер паролей и автозаполнение


user_pref("signon.rememberSignons", false);
user_pref("signon.autofillForms", false);
user_pref("browser.formfill.enable", false);
user_pref("browser.search.suggest.enabled", false);
user_pref("browser.urlbar.suggest.searches", false);
user_pref("browser.urlbar.autoFill", false);
user_pref("browser.urlbar.speculativeConnect.enabled", false);

Отключаем телеметрию и прочий мусор


user_pref("datareporting.healthreport.uploadEnabled", false);
user_pref("datareporting.policy.dataSubmissionEnabled", false);
user_pref("toolkit.telemetry.enabled", false);
user_pref("toolkit.telemetry.unified", false);
user_pref("toolkit.telemetry.archive.enabled", false);
user_pref("toolkit.telemetry.newProfilePing.enabled", false);
user_pref("toolkit.telemetry.shutdownPingSender.enabled", false);
user_pref("toolkit.telemetry.updatePing.enabled", false);
user_pref("toolkit.telemetry.bhrPing.enabled", false);
user_pref("toolkit.telemetry.firstShutdownPing.enabled", false);
user_pref("app.shield.optoutstudies.enabled", false);
user_pref("app.normandy.enabled", false);
user_pref("app.normandy.api_url", "");
user_pref("browser.newtabpage.enabled", false);
user_pref("browser.newtabpage.activity-stream.feeds.telemetry", false);
user_pref("browser.newtabpage.activity-stream.telemetry", false);
user_pref("browser.newtabpage.activity-stream.showSponsored", false);
user_pref("browser.newtabpage.activity-stream.showSponsoredTopSites", false);
user_pref("extensions.pocket.enabled", false);
user_pref("browser.send_pings", false);
user_pref("browser.aboutConfig.showWarning", false);

Минимализм интерфейса


user_pref("browser.tabs.warnOnClose", false);
user_pref("browser.shell.checkDefaultBrowser", false);
user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);
user_pref("browser.compactmode.show", true);
user_pref("browser.uidensity", 1);

В этом блоке мы убираем лишние уведомления и подготавливаем браузер к кастомизации. Мы отключаем проверку на «браузер по умолчанию» и предупреждение при закрытии вкладок. Также мы активируем поддержку файлов userChrome.css и включаем компактный режим интерфейса для экономии места на экране.

Данный CSS-файл управляет внешним видом «огненной лисы» и тоже должен лежать в папке профиля, но в подпапке chrome (chrome/userChrome.css).

Я поступаю немного двояко, сперва через визуальную настройку панели инструментов (стандартный функционал) убираю все мне неугодное, а то, что невозможно убрать стандартно, «срезаю» через этот файл. Результат вы видите на обложке этой статьи. Попробуйте использовать мои свойства:


.titlebar-spacer {
    display: none !important;
}
:root #tabbrowser-tabs {
    border-inline-start: none !important;
    padding-inline-start: 0 !important;
    margin-inline-start: 2px !important;
}
:root {
    --tabstrip-inner-border: 0px none !important;
}
#PanelUI-menu-button {
    display: none !important;
}
#tracking-protection-icon-container,
#identity-box,
#pageActionButton,
#star-button-box,
#reader-mode-button,
#urlbar-searchmode-switcher {
    display: none !important;
}
#urlbar .urlbarView,
#urlbar-results,
.urlbarView-results,
.urlbarView-body-inner {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
}
#urlbar .search-one-offs,
#urlbar .urlbarView-footer {
    display: none !important;
}
#urlbar[breakout][breakout-extend] > #urlbar-background {
    box-shadow: none !important;
    animation: none !important;
}

Скорость и отключение анимаций


user_pref("browser.tabs.animate", false);
user_pref("browser.download.animateNotifications", false);
user_pref("image.mem.decode_on_draw", true);

Графика и рендеринг (борьба с капчей на системах с iGPU)

Ну и вернемся немного к теме капчи. У меня видеокарта, интегрированная в процессор, и в «неравной борьбе» с проверками мне помогли следующие параметры:


user_pref("layers.acceleration.force-enabled", true);
user_pref("webgl.force-enabled", true);
user_pref("gfx.webrender.all", true);

По идее, с этими параметрами Google гораздо реже принимает вас за бота и не мучает бесконечными капчами.

Поиск Google на главной


user_pref("browser.startup.homepage", "https://www.google.com");
user_pref("browser.startup.page", 1);

Теперь при старте программы откроется именно домашняя страница с этим поисковиком. Однако в новых вкладках будет пустота, а я хочу, чтобы при каждом нажатии на «плюсик» снова открывался поиск Google. Это можно сделать только с помощью добавления аддона.

Необходимо установить расширение «New Tab Override» и добавить туда https://www.google.com.

Статью посвящаю всем перфекционистам и параноикам — в хорошем смысле этого слова.

Скачать готовые файлы

  1. user.js >>
  2. userChrome.css >>

P.S.: Оптимизация Firefox для 4K видео

Автор: Kupereal

Занимаюсь разработкой и продвижением веб-сайтов. Развиваю каналы в мессенджерах. Настраиваю рабочее окружение (Win/Lin/Mac) и весь серверный стек для проектов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *