Skip to content

About

A lightweight Firefox extension (Manifest V3) and user.js configuration that minimizes RAM usage via aggressive tab discarding, tab limits, prefetch disabling, and profile-level deep performance tweaks.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RAM Optimizer для Firefox

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

🇬🇧 English summary below.

Возможности

Выгрузка вкладок

Выгруженная вкладка остаётся в панели вкладок, но страница удаляется из памяти. При клике она загружается снова.

  • Автовыгрузка по времени. Вкладки, которые не открывались N минут (по умолчанию 20), выгружаются.
  • Лимит загруженных вкладок. Одновременно в памяти держится не больше N вкладок (по умолчанию 12). При превышении первыми выгружаются давно неиспользуемые.
  • Свёрнутые окна. Вкладки в свёрнутых окнах выгружаются.
  • Выгрузка при запуске. Можно выгружать все фоновые вкладки при старте браузера (по умолчанию выключено).
  • Ручные действия через popup, контекстное меню вкладки и горячие клавиши:
    • выгрузить текущую вкладку;
    • выгрузить остальные вкладки окна;
    • выгрузить вкладки во всех окнах или в других окнах.

Защита от выгрузки

Никогда не выгружаются:

  • активная вкладка;
  • закреплённые вкладки (настраивается);
  • вкладки, которые воспроизводят звук (настраивается);
  • вкладки, использующие камеру, микрофон или демонстрацию экрана (настраивается);
  • сайты из белого списка (поддомены тоже);
  • вкладки, защищённые вручную из popup (до перезапуска браузера);
  • служебные страницы (about:, moz-extension: и т. п.).

Дополнительная оптимизация

  • Закрыть дубликаты — закрывает вкладки с одинаковым адресом и оставляет активную или последнюю использованную.
  • Очистить кэш — сбрасывает кэш браузера.
  • Отключение предсказания сети и предзагрузки (DNS-prefetch, link prefetch, speculative connections) — через API privacy.
  • GIF-анимации проигрываются один раз — через API browserSettings.
  • Отключение аудита ссылок (<a ping>).
  • Счётчик на значке — показывает, сколько вкладок сейчас выгружено. В popup также видна примерная экономия памяти.

Все браузерные настройки, которые меняет расширение, возвращаются к значениям по умолчанию, если отключить соответствующую опцию или удалить расширение.

Горячие клавиши

Действие Клавиши
Открыть popup Alt+Shift+M
Выгрузить текущую вкладку Alt+Shift+D
Выгрузить остальные вкладки окна Alt+Shift+O
Выгрузить фоновые вкладки во всех окнах не назначено

Клавиши меняются здесь: about:addons → ⚙ → «Управление горячими клавишами расширений».

Установка

Временная установка (для проверки)

  1. Скачайте репозиторий (git clone или Code → Download ZIP).
  2. Откройте about:debugging#/runtime/this-firefox.
  3. Нажмите «Загрузить временное дополнение…» и выберите src/manifest.json.

Временное дополнение удаляется после перезапуска Firefox.

Постоянная установка

Обычный Firefox устанавливает только подписанные расширения. Варианты:

  • Подписать через AMO (бесплатно, можно как unlisted):
    npx web-ext sign --source-dir src --channel unlisted --api-key=... --api-secret=...
    Затем установите полученный .xpi.
  • Firefox Developer Edition / Nightly / ESR: в about:config установите xpinstall.signatures.required = false, соберите пакет командой ./build.sh и откройте dist/ram-optimizer-1.0.0.xpi в Firefox.

Минимальная версия — Firefox 115.

user.js — глубокая оптимизация

Часть самых полезных для памяти настроек расширениям менять запрещено. Их собрал файл user.js:

  • встроенная выгрузка вкладок при нехватке памяти и её пороги;
  • загрузка вкладок по требованию при восстановлении сессии;
  • отключение bfcache (страницы «Назад/Вперёд» не хранятся в памяти);
  • ограничение кэша в памяти;
  • отключение prefetch, predictor и speculative connect;
  • отключение Pocket, рекламы на новой вкладке, локального ИИ, телеметрии и исследований;
  • в закомментированном блоке [AGGRESSIVE] — уменьшение числа процессов контента и другие сильные, но небезопасные или неудобные настройки. Прочитайте комментарии перед тем, как их включать.

Как применить:

  1. Откройте about:support → «Папка профиля» → «Открыть папку».
  2. Скопируйте туда user.js.
  3. Перезапустите Firefox.

Как откатить: удалите user.js из профиля и сбросьте изменённые параметры в about:config.

Посмотреть реальное потребление памяти можно в about:processes и about:memory (там же есть кнопка «Minimize memory usage»).

Структура проекта

src/
├── manifest.json        # манифест (Manifest V3)
├── common.js            # настройки по умолчанию и общие функции
├── background.js        # логика выгрузки, меню, горячие клавиши, твики браузера
├── popup/               # окно по клику на значок
├── options/             # страница настроек
├── icons/icon.svg
└── _locales/{en,ru}/    # локализация
user.js                  # about:config-оптимизации для профиля
build.sh                 # сборка .xpi в dist/

Разрешения

Разрешение Зачем
tabs читать адрес и состояние вкладок, выгружать их
alarms раз в минуту проверять неактивные вкладки
storage хранить настройки и статистику (только локально)
menus пункты в контекстном меню вкладки
browsingData кнопка «Очистить кэш»
privacy, browserSettings отключение предзагрузки, аудита ссылок, повторов GIF

Расширение не обращается к сети и не встраивает скрипты в страницы.

Разработка

npx web-ext lint --source-dir src   # проверка
npx web-ext run  --source-dir src   # запуск Firefox с расширением
./build.sh                          # сборка dist/*.xpi

Лицензия

MIT


English summary

RAM Optimizer cuts Firefox memory usage:

  • auto-unloads (discards) tabs that have been inactive for N minutes;
  • keeps at most N tabs loaded, unloading the least recently used ones first;
  • unloads tabs in minimized windows, and optionally at startup;
  • protects the active tab, pinned and audible tabs, tabs using camera, mic or screen sharing, whitelisted domains and manually protected tabs;
  • popup with stats and one-click actions (unload, close duplicates, clear cache), tab context menu and keyboard shortcuts;
  • disables network prediction and prefetching, <a ping> auditing, and repeated GIF animations.

user.js adds profile-level tweaks that extensions can't change. To load the extension temporarily, open about:debugging → Load Temporary Add-on → src/manifest.json. The extension needs Firefox 115 or later and is released under the MIT license.

About

A lightweight Firefox extension (Manifest V3) and user.js configuration that minimizes RAM usage via aggressive tab discarding, tab limits, prefetch disabling, and profile-level deep performance tweaks.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages