S.T.A.R.T.E.R : Что "под капотом"
Опубликовано: Бармалей · 16.06.2021 · 00:02 ••• Обновление: 04.07.2021 · 15:54 1

Пояснения по особенностям работы и инструкция по настройкам расширения "S.T.A.R.T.E.R : Не замерзай-ка!". Некоторые технические подробности по разработке и особенности применения аддона.

В этой статье:


Скажу сразу – чтение материала этой статьи предполагает определённый уровень вашей подготовки (или, как минимум, желание разобраться в сути работы аддона), поэтому постарайтесь подойти к изучению изложенного с должным вниманием, это позволит обеспечить корректную работу расширения в вашем браузере и задать правильные настройки именно под ваши задачи.


Особенности работы "Незамерзайки" на разных версия браузеров

Основной задачей аддона является автоматическая активация всех открытых вкладок и удержания этого состояния до их закрытия. При этом запрещается срабатывание штатной функции браузера, выгружающей неактивные фоновые вкладки из памяти после определённого времени (autoDiscard).

С учётом того, что сама функция "tab-discard" была добавлена в Chromium-браузеры только с версии CR‑46, применение расширения на более старых версиях не имеет никакого смысла, так как в них в принципе отсутствует какое‑либо управление выгрузкой фоновых вкладок. В манифесте установлено именно это ограничение по версии.

Кроме того, и в версиях CR‑46+ есть отличия в работе этой функции, связанные с изменениями в более новых билдах. В частности, полноценное управление автовыгрузкой вкладок с помощью расширений доступно только в версиях CR‑54+, начиная с которой можно проверять текущее состояние и/или изменять флаг "autoDiscarding" у любой вкладки.

Для лучшего понимания "всей этой кухни" вы можете самостоятельно ознакомиться с некоторыми статьями на эту тему.

К вопросу "нафига мне эта теория" – желательно, чтобы вы хотя бы в общих чертах представляли себе, что и как работает в "Незамерзайке", чтобы не возникли какие‑нибудь сложности в работе и чтобы вы могли осознанно настраивать и применять это расширение.

…а также чтобы не было никаких "предъяв аффтару" если вдруг у вас что-то "просто тупо не алё"… :))

Итак, на основании сказанного выше должно быть понятно, что S.T.A.R.T.E.R немного по-разному работает на версиях CR‑46‑53 и на CR‑54+, хотя и в итоге выполняет заявленную задачу активации на любой версии.

На версиях CR‑54+ аддон проверяет состояние каждой вкладки по флагу "discarded" и, в зависимости от заданных настроек, может сразу же установить для любой вкладки и флаг запрета автовыгрузки. Этот запрет сохраняется до момента закрытия вкладки и не меняется при переходах в ней или при её обновлении.

На версиях CR‑46‑53 аддон может проверить текущее состояние вкладки только с помощью специального "костыля" (по косвенным параметрам вкладки), поскольку эти версии штатно не поддерживают проверку флага "discarded". По той же причине в этих версиях НЕ может быть установлен и флаг "autoDiscarding", запрещающий автоматическую выгрузку вкладок браузером. Поэтому и не сто́ит здесь "ожидать чудес", если вам действительно необходимо абсолютно надёжное удержание вкладок в активном состоянии – на старых браузерах лучше использовать другие методы для этого, хотя и у них тоже есть определённые "минусы"…

Сам процесс активации вкладки не зависит от версии браузера и, формально, делает то же самое, что и при ручном переходе на неактивную (выгруженную из памяти) вкладку – то есть просто перезагружает её. Момент запуска и другие параметры активации также не зависят от версии браузера и определяются только вашими настройками.

По умолчанию "Незамерзайка" однократно срабатывает при запуске браузера и в дальнейшем не влияет на сёрфинг. Кроме того, на версиях CR‑54+ расширение автоматически выставляет флаг запрета автовыгрузки для всех вкладок, прошедших процедуру активации (по умолчанию, можно изменить в Настройках и затем проверить работоспособность).


Индикация текущего состояния вкладок и переключение режима работы

Для быстрой оценки текущего состояния каждой из открытых вкладок применяется индикация в виде изменения значка расширения на тулбаре. При этом меняется и подсказка к иконке, где будет указан текущий режим работы вкладки.

В общем случае внешний вид значка соответствует иконке "Незамерзайки" по умолчанию (синий цвет). Подсказка зависит от версии вашего браузера и указывает на действие по умолчанию при щелчке по значку на тулбаре.

На версиях CR‑54+ значок по умолчанию выглядит так:

На версиях CR‑46‑53 значок по умолчанию выглядит так:

В браузерах версий CR‑54+ после срабатывании функции Активатора вкладок И при условии включения в настройках опции "Не выгружать активированные" ИЛИ при ручном переключении режима работы вкладки кнопка тулбара на обработанных вкладках блокируется, все действия будут доступны только через её контекстное меню или по горячим клавишам (соответствующие пункты меню действий отображаются только для этих версий). Это сделано для защиты конкретных вкладок от случайного переключения режима и снятия флага запрета автовыгрузки.

Соответственно меняется и сам значок на тулбаре (серый цвет) и подсказка к для него:

В браузерах версий CR‑54+ режим защиты всех вкладок от автовыгрузки можно включить пакетным действием, выбрав в контекстном меню пункт "Не выгружать все текущие") или горячей клавишей (по умолчанию ALT+SHIFT+U). При этом кнопка тулбара на всех открытых вкладках блокируется, все действия для них будут доступны только через контекстное меню или по горячим клавишам.

Обратное переключение режима активности и снятие запрета автовыгрузки в браузерах версий CR‑54+ выполняется только из меню (пункт "Переключить режим вкладки") или горячей клавишей (по умолчанию ALT+SHIFT+T).

В браузерах версий CR‑46‑53 после срабатывании функции Активатора вкладок кнопка тулбара на вкладках в любом случае НЕ блокируется и текст подсказки не меняется, повторный запуск Активатора будет всегда доступен на любой вкладке. Это сделано чисто для удобства работы, разница в управлении (с более новыми версиями браузеров) через щелчок по кнопке тулбара обусловлена разницей в доступных методах управления вкладками.

В дополнение к общему методу защиты от автовыгрузки в S.T.A.R.T.E.R'е добавлен ещё и специальный режим "ручного управления", запрещающий автоматическую проверку и обработку определённых вкладок при запуске процесса пакетной активации. При этом для вкладки отключается звук и устанавливается состояние "закреплена". В дальнейшем, по этим двум параметрам (и только по ним, в паре) Активатор исключает такие вкладки из пакетной обработки. Кроме того, в браузерах версий CR‑54+ для вкладки автоматически устанавливается и флаг запрета автовыгрузки, но его снятие* вручную через меню или хоткей не приводит к отключению "ручного" режима.

* В этом случае неактивная вкладка может быть автоматически выгружена браузером из памяти, но уже НЕ будет перезагружена при запуске пакетной процедуры активации фоновых вкладок. То есть это исключение вкладки из обработки именно расширением, но не браузером!

При включении режима "ручного управления" кнопка на тулбаре для этой вкладки также блокируется, но, как и в случае с режимом запрета автовыгрузки, остаётся доступным управление через контекстное меню и по горячим клавишам.

При переключении режима "ручного управления" меняется значок на тулбаре (красный цвет) и подсказка к для него.

В браузерах CR‑54+, для включенного ручного режима и включенного запрета на автовыгрузку, иконка выглядит так:

В браузерах CR‑54+, для включенного ручного режима при отсутствии запрета на автовыгрузку, иконка выглядит так:

В браузерах CR‑46‑53, в силу невозможности управления автовыгрузкой, иконка выглядит так:

Отключить ручной режим можно выбором пункта меню "Вкладка: Ручное управление" или горячей клавишей (по умолчанию ALT+SHIFT+M), при этом звук остаётся выключенным, но вкладка становится незакреплённой.

В браузерах версий CR‑46‑53 при этом кнопка на тулбаре для этой вкладки всегда разблокируется, а состояние иконки меняется на состояние по умолчанию (синий цвет и подсказка действия по умолчанию).

В браузерах версий CR‑54+ состояние кнопки и иконки меняется в зависимости от установленного флага запрета автовыгрузки – если он включен, задействуется стандартный режим защиты от автовыгрузки (серая заблокированная кнопка), если был выключен – вкладка будет обычной, незащищённой (синий цвет, подсказка с действием по умолчанию, кнопка разблокирована).

Также можно отключить режим "ручного управления" штатными средствами браузера, выбрав в меню вкладки (ПКМ на ярлыке) пункты "Включение звука на вкладке" или "Открепить вкладку". При этом состояние иконки не изменяется (в силу невозможности со стороны аддона отследить это ручное действие), но вкладка теперь не является исключением для аддона и может* подпадать под условия для автоматической активации (перезагрузки).

* Чтобы исключить возможные несоответствия, не ломайте логику работы аддона ручными действиями и отключайте "ручное управление" только через меню или горячие клавиши самого расширения.

Кроме вышеперечисленных режимов, в коде аддона установлены жёстко зашитые ограничения на работу с отдельными "огороженными" служебными страницами, которые могут встречаться в некоторых браузерах. Доступ к свойствам вкладок на таких страницах запрещён разработчиками этих браузеров и не может быть изменён. Примером подобного ограничения служит страница chrome://myextensions в браузерах семейства 360 Extreme Explorer (все линейки).

Для "огороженных" служебных страниц автоматически выставляется исключение, любые действия к ним неприменимы. Обнаружение этих страниц происходит либо автоматически, при работе Активатора вкладок, либо при попытке вручную выполнить любое из действий, связанных с изменением режима текущей страницы.

При этом значок иконки и подсказка также меняются (красный цвет и специальная подсказка):

Кнопка на тулбаре для этих вкладок автоматически блокируется, меню и горячие клавиши пакетных действий остаются доступными. Во избежание ошибок любая попытка выполнения вручную действий, связанных со вкладкой, будет "молча" проигнорирована.


Краткий итог: в любом случае будет доступно управление аддоном и выполнение всех действий и настроек через контекстное меню кнопки на тулбаре, использование дублирующих действия горячих клавиш зависит от состояния опции "Использовать горячие клавиши" (включена по умолчанию).

На этом по индикации и переключениям режимов всё, далее рассмотрим Настройки Активатора.


Настройка расширения и выполнение пакетных и одиночных действий

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

Доступ к контекстному меню кнопки на тулбаре производится щелчком ПКМ по этой кнопке:


Щёлкните по картинке для отображения скриншота меню на другом языке.

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

Действия

Переключить режим вкладки (Switch tab freeze mode):
Присутствует только в браузерах версий CR‑54+. Дублируется горячей клавишей (по умолчанию ALT+SHIFT+T).
Включает/выключает режим запрета автовыгрузки браузером текущей вкладки, если она будет находиться в фоне.
Включение режима также дублируется щелчком по кнопке на тулбаре.

Вкладка: Ручное управление (Switch tab control mode):
Дублируется горячей клавишей (по умолчанию ALT+SHIFT+M).
Включает/выключает режим "ручного управления" текущей вкладкой.

Не выгружать все текущие (Don't freeze all tabs):
Присутствует только в браузерах версий CR‑54+. Дублируется горячей клавишей (по умолчанию ALT+SHIFT+U).
Включает режим запрета автовыгрузки браузером всех открытых вкладок, если они будут находиться в фоне.

Разбудить их всех! (Wake up 'em all!):
Дублируется горячей клавишей (по умолчанию ALT+SHIFT+A).
В браузерах версий CR‑46‑53 также дублируется щелчком по кнопке на тулбаре.
Запускает процедуру пакетной активации всех фоновых вкладок, соответствующих заданной маске URL.

Оценить общую обстановку (View discard situation):
Открывает в новой вкладке служебную страницу браузера chrome://discards.

Switch interface language to ENGLISH (Переключить язык на РУССКИЙ):
Переключатель языка интерфейса меню, диалоговых окон настроек и подсказок для кнопки на тулбаре.

Сбросить настройки и перезапустить (Reset to defaults then reload):
Если вы запутались "в трёх соснах" – нажмите сюда и всё снова станет хорошо… :))

Перезапустить и обновить (Reload and update):
Самоперезапуск аддона без необходимости захода на страницу расширений.
Можно использовать этот пункт, если "что-то пошло не так" и аддон вдруг перестал работать…
Маловероятно, что вам это когда-нибудь потребуется, но на всякий случай…

STARTER: Что "под капотом" (STARTER: Online Help and FAQ):
Открывает в новой вкладке эту страницу… :)

Настройки

Запускать при старте браузера (Activate tabs on browser startup):
Переключатель, по умолчанию включен.
Разрешает однократный* запуск пакетной активации всех фоновых вкладок, соответствующих заданной маске URL.
Работает аналогично ручному вызову Активатора вкладок.

* Актуально, если используется настройка "Загружать последние открытые страницы" (восстановление при запуске браузера всех страниц, открытых на момент завершения последнего сеанса работы). В частности, в версиях CR78+ число автоматически активируемых при старте вкладок не превышает 3, независимо от необходимости их загрузки по сети. При этом неактивными могут быть также и локальные страницы и вкладки со служебными страницами самого браузера.

Активировать служебные страницы (Activate browser service pages):
Переключатель, по умолчанию выключен. Влияет на заданную маску URL (автодобавка).
Разрешает пакетную активацию фоновых служебных страниц браузера (включая страницы других расширений).

Закреплённые вкладки только вручную (Ignore pinned tabs autoactivation):
Переключатель, по умолчанию включен.
Запрещает пакетную активацию для любых фоновых закреплённых страниц независимо от их состояния и URL.

Не выгружать активированные (AutoDiscards OFF for activated):
Переключатель, по умолчанию включен. Присутствует только в браузерах версий CR‑54+.
Разрешает автоустановку режима защиты от выгрузки для всех фоновых вкладок, прошедших процедуру пакетной автоматической активации, чтобы они повторно не были выгружены браузером.
Если включено – при пакетной активации флаг запрета автовыгрузки автоматически устанавливается и для текущей активной вкладки, превентивно защищая её от выгрузки если она в дальнейшем станет фоновой.

Не выгружать новые вкладки (AutoDiscards OFF for new tabs):
Переключатель, по умолчанию включен. Присутствует только в браузерах версий CR‑54+.
Разрешает автоустановку режима защиты от выгрузки для всех вновь создаваемых вкладок.
Исключает необходимость ручного включения этого режима для каждой новой вкладки.

Автоактивируемых вкладок: до … (AutoUndiscardable tabs: up to …):
Целое число, отображает установленное значение максимального числа вкладок, подлежащих пакетной активации.
По умолчанию не ограничивается (значение равно 0, отображается символ бесконечности).
При этом будут активированы все открытые вкладки, удовлетворяющие заданной маске URL.
Значение можно изменить самостоятельно, исходя из конкретных условий работы и предпочтений.
Щелчок по этому пункту вызывает диалог установки желаемого значения:

Таймаут при первом запуске, мс: 1000 (Browser startup timeout, ms: 1000):
Целое число, отображает установленное значение времени задержки перед запуском пакетной активации.
Время в миллисекундах, по умолчанию 1000 (1 секунда), минимальное значение 100 (0.1 секунды).
Позволяет выполнить "мягкий старт" процесса пакетной активации при запуске браузера.
Значение можно изменить самостоятельно, исходя из конкретных условий работы и предпочтений.
Щелчок по этому пункту вызывает диалог установки желаемого значения:

Таймаут групповых операций, мс: 1000 (Group operation timeout, ms: 1000):
Целое число, отображает установленное значение времени задержки перед перезагрузкой каждой следующей вкладки при выполнении процедуры ручной или автоматической пакетной активации.
Время в миллисекундах, по умолчанию 1000 (1 секунда), минимальное значение 100 (0.1 секунды).
Обеспечивает "плавное прохождение" процесса пакетной активации, снижает пиковую нагрузку.
Значение можно изменить самостоятельно, исходя из конкретных условий работы и предпочтений.
Щелчок по этому пункту вызывает диалог установки желаемого значения:

Настроить шаблон активации (Set tab activation template):
Вызывает диалог установки собственной маски URL фоновых вкладок, подлежащих процедуре пакетной активации.
Маска URL – текстовая строка. разделённая запятыми и соответствующая определённым правилам.
По умолчанию стандартная маска для веб-страниц.
Значение можно изменить самостоятельно, исходя из конкретных условий работы и предпочтений.
В любом случае зависит от состояния опции "Активировать служебные страницы".
Щелчок по этому пункту вызывает диалог установки желаемого* значения:

* Например, можно настроить активацию фоновых страниц только для определённого сайта.

Использовать быструю выгрузку (Fire and exit : Use fast unload):
Переключатель, по умолчанию включен.
Обеспечивает незамедлительную выгрузку фонового скрипта аддона сразу после завершения любого действия.
При интенсивной работе и частом изменении вкладок имеет смысл отключить.

Использовать горячие клавиши (Allow and use hotkeys):
Переключатель, по умолчанию включен.
Разрешает обработку и отслеживание хоткеев, обеспечивает удобство вызова наиболее востребованных действий.
Если включено – в меню отображаются соответствующие подсказки для дублирующих действий (хоткеи по умолчанию).
При отключении этой опции для действий можно будет использовать только вызовы из контекстного меню.
Конкретные комбинации можно переопределить самостоятельно, используя штатную настройку браузера:


Оценка состояния вкладок и проверка работоспособности расширения

Помимо автоматического запуска при старте браузера, вы можете вручную запустить процесс активации фоновых вкладок в любой момент времени, выбрав в контекстном меню действий пункт "Разбудить их всех! :)" или нажав соответствующую горячую клавишу (по умолчанию ALT+SHIFT+A).

В браузерах версий CR‑46‑53 этот процесс запускается так же и по щелчку на кнопке аддона на тулбаре.

В браузерах версий CR‑54+ щелчок по этой кнопке не запускает процесс активации, а приводит к включению запрета автоматической выгрузки только для текущей вкладки. Это различие сделано чисто для удобства работы и обусловлено разницей в доступных методах управления вкладками (соответственно меняется и подсказка к кнопке).

Как уже сказано, после включения защитного режима конкретной вкладки кнопка на тулбаре для неё блокируется. Обратное переключение режима активности и снятие запрета автовыгрузки в браузерах версий CR‑54+ выполняется только из меню (пункт "Переключить режим вкладки") или горячей клавишей (по умолчанию ALT+SHIFT+T).

Результат работы функции активации можно увидеть на служебной странице chrome://discards:

Совет: для быстрого доступа к этой служебной странице браузера вы можете использовать пункт меню расширения "Оценить общую обстановку" (или "View discard situation" в англоязычном меню).

На скриншоте выше показан пример этой страницы в браузерах версий CR‑54+ при включении в настройках опции "Не выгружать активированные" (включена по умолчанию, отображено состояние после отработки Активатора).

В нашем случае интересует состояние параметров в столбцах:
· "Loading State" (текущее состояние загрузки страницы, меняется в процессе работы Активатора),
· "Lifecycle State" (текущее состояние активности страницы, меняется в процессе работы Активатора),
· "Can discard?" (возможность её выгрузки браузером, на скриншоте указано, что запрет установлен расширением),
· "Auto Discardable" (собственно флаг запрета автоматической выгрузки, изменяемый нашим расширением).

В столбце "Visibility" отображается текущая активная (видимая) страница (для всех фоновых там указано "hidden").

Во всех современных браузерах эта страница обновляется автоматически, результат вызова соответствующих функций "Незамерзайки" будет виден в таблице сразу же. В старых* браузерах для просмотра текущего состояния вкладок потребуется обновить страницу вручную.

* В них указанная служебная страница, фактически, не отражает работу аддона, а только показывает текущее состояние вкладок, что может быть использовано в информационных целях.

Эту же служебную страницу можно использовать для ручной выгрузки отдельных фоновых страниц (кнопки "Discard" в конце каждой строки) с целью проверки работоспособности нашего Активатора – выгрузили, запустили Активатор (или просто попереключали режим работы вкладок) и посмотрели изменение состояния выгруженных вручную.


Альтернативные методы активации фоновых вкладок

Функция автовыгрузки неактивных вкладок самим браузером (autoDiscard) может быть крайне нежелательна в случаях, если вам необходимо поддерживать непрерывную активность фоновых вкладок. С учётом современной тенденции на минимизацию расхода памяти браузерами со стороны разработчиков браузеров, задача отключения автовыгрузки может быть для вас достаточно важной.

В этой части статьи рассмотрены некоторые методы (полу)автоматической активации фоновых вкладок, не требующие установки расширений. Оставив за скобками вопрос удобства, следует отметить, что эти методы можно применять на большинстве браузеров, поддерживающих функцию автовыгрузки неактивных вкладок (CR‑46+).

Наиболее простым (и самым неудобным) является периодический "ручной пробег" по всем открытым вкладкам, при этом браузер сбрасывает таймер неактивности и ваши вкладки (какое-то время) будут оставаться активными в фоне.

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

В частности, в любом браузере вы можете просто зажать клавиши CTRL+Tab, что приведёт к желаемому "пробегу по кругу" в пределах вкладок активного окна.

Кроме того, в некоторых браузерах, поддерживающих переход по вкладкам за счёт прокрутки колеса мыши над панелью вкладок, можно сделать тот же самый "контрол‑таб" и с помощью мыши.

Ещё один аналогичный способ "шевеления", который может быть применён в современных браузерах – можно просто провести мышью над панелью вкладок, чтобы под курсором начали отображаться миниатюры вкладок. При этом не нужно дожидаться загрузки каждой миниатюры, достаточно именно "шевельнуть спящих", чтобы они начали загружаться. Отмечу, что этот вариант применим только при поддержке браузером такой функции (в частности, следует проверить наличие флагов chrome://flags/#tab-hover-cards и chrome://flags/#tab-hover-card-images и включить их).

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

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

Для решения нашей задачи можно попробовать найти* и ВЫКЛючить следующие флаги:
chrome://flags/#enable-tab-discarding
chrome://flags/#automatic-tab-discarding
chrome://flags/#calculate-native-win-occlusion

* Могут отличаться в зависимости от версии вашего браузера, а могут и вообще в ней отсутствовать – из-за постоянного удаления разработчиками различных полезных функций, нет никакой гарантии, что эти ключи или флаги будут доступны в вашем браузере.

Да, всё это нудно и требует времени, но зато не нужно ничего ставить и настраивать. Однако, самое "неинтересное" в перечисленных методах это то, что можно просто забыть их выполнить и вот уже "они все уснули"…

В общем, лично я не стал бы "экономить на спичках" и просто настроил бы "Незамерзайку" под себя… :)


Известные проблемы и способы их решения

  1. Браузеры 360 Extreme Explorer 9/11/12/13 (CR-63/69/78/86): критическая ошибка аддона при попытке изменения любых свойств вкладки на штатной странице chrome://myextensions (отключение autoDiscarding или перевод в режим ручного управления). Вид сообщения об ошибке (одинаков во всех линейках):

    Предположительная причина: "анальная огороженность" этой страницы разработчиками браузера, на штатной странице Chromium chrome://extensions(-frame) в этом и других протестированных браузерах такой проблемы нет.
    Решение: этот URL добавлен во внутренний список запрещённых для обработки страниц. В случае попадания этой страницы в процедуру автоактивации (либо при попытке изменения её режима вручную через меню или по хоткею) для этой страницы устанавливается соответствующая иконка кнопки тулбара:

    При этом нажатие кнопки блокируется. Контекстное меню и горячие клавиши групповых операций будут доступны, но любые попытки ручного вызова функций переключения режима вкладки будут "молча" проигнорированы.
  2. Браузер miniChrome CR-87 (aka miniBrowser, билд 1.0.0.106): устойчивое падение браузера при попытке вызова служебной страницы chrome://discards (пункт меню "Оценить общую обстановку"). Проявляется также и при ручном вызове этой страницы при выключенном расширении (т.е. ошибка никак НЕ связана с работой аддона), возможно – баг конкретного билда, который (может быть) будет исправлен* в дальнейшем. Обнаружено под Windows XP на собственной сборке автора, в других ОС или на других билдах проверяем самостоятельно.
    Решение: если у вас также наблюдается эта проблема, НЕ используйте данный пункт меню. В силу неизвестности причины проблемы, отсутствующей в любых других протестированных браузерах, решения на уровне кода аддона на текущий момент не предусмотрено. Автоблокировка пункта меню через определение конкретного типа хромоклона и вероятности его ошибок не представляется возможной.
    * Обновлено 04.07.2021: исправлено в текущем билде 1.0.0.113, страница открывается без проблем, падения нет.
  3. Возможные конфликты с другими расширениями для подобных задач: специально не проверялось, но такие конкфликты не исключены в принципе, хотя бы в силу того, что эти аддоны могут иметь настройки, противоречащие настройкам или выполняемым действиям в "Незамерзайке". В любом случае, если вы сталкиваетесь с подобной проблемой, есть смысл самостоятельно проверить работу S.T.A.R.T.E.R'а на чистом пустом профиле пользователя.
    Решение: если у вас наблюдается эта проблема, просто отключите другие аддоны… :)
  4. Не активируется фоновая страница управления расширениями: "так и задумано" и это не является ошибкой. Причина – перезагрузка этих страниц приводит к автоматической перезагрузке всех работающих расширений, во избежание этого стандартные служебные страницы chrome://extensions(-frame) добавлены во внутренний список безусловных ограничений, работа Активатора фоновых вкладок на них запрещена (переключать режимы можно).
    Решение: если есть необходимость активации этой страницы, просто перейдите на неё. При этом отработает штатная функция активирования страницы браузером и перезагрузки работающих аддонов не произойдёт.

Исходный код, интерфейс и задействованные API

Код использует только чистый JS (ES5), в нём отсутствуют функции, неподдерживаемые в "старых" браузерах.

В отличие от аналогов, "S.T.A.R.T.E.R" работает только в момент вызова конкретных функций, не потребляя ресурсы браузера в покое. Кроме того, по умолчанию задействуется и функция "быстрой выгрузки", значительно сокращающая общее время активности расширения.

Отдельной страницы настроек нет (и не будет), все опции доступны через вложенное меню "Настройки Активатора Вкладок" (на скриншоте выше). Назначение параметров интуитивно понятно из их названия, во всех диалогах имеется достаточно подробная подсказка. Все настройки сохраняются только локально, синхронизация не поддерживается.

Основным API, используемым для управления вкладками и выполнения бо́льшей части функций, является chrome.tabs, который обеспечивает работу Активатора вкладок и отвечает за установку различных режимов работы. Также в манифесте запрашивается разрешение activeTab, упрощающее отдельные действия на текущих страницах.

Кроме автоматического управления активацией вкладок через фоновый скрипт, вызов действий вручную возможен по щелчку по кнопке на тулбаре, из контекстного меню этой кнопки или с помощью горячих клавиш. Для работы с этими функциями применяются, соответственно, API chrome.browserAction, chrome.contextMenus и chrome.commands.

Горячие клавиши полностью дублируют соответствующие пункты контекстного меню, можно использовать до 4‑х комбинаций для выполнения основных действий (количество хоткеев ограничено только пределом, установленным требованиями API).

Для хранения пользовательских настроек используется API chrome.storage. В текущей версии расширения в манифесте не требуется разрешение [ "unlimitedStorage" ], размер данных не превышает ограничения по умолчанию (5Mb).

Для обеспечения работы аддона с любыми вкладками, включая локальные страницы и служебные страницы браузера и других расширений, в манифесте запрашиваются разрешения [ "*://*/*", "<all_urls>" ].

Расширение имеет двуязычный интерфейс на русском и английском (жёстко зашиты в коде). Кроме автоматического определения языка по настройкам браузера, есть возможность его ручного переключения в меню настроек.

"S.T.A.R.T.E.R" не имеет практических ограничений по коду и API, может работать в любых браузерах версий 46+.

В манифесте установлено ограничение на версию (46+), но оно не связано с исходным кодом и обусловлено только абсолютной нецелесообразностью применения "Незамерзайки" на более старых версиях.

Полностью весь функционал аддона доступен только на браузерах версий 54+.

Связано с ограничениями API управления вкладками (часть функций не поддерживается в старых браузерах) и с недоступностью прямого управления автовыгрузкой неактивных вкладок в версиях CR‑46‑53.

Исходный код НЕ обфусцирован, исключительно для удобства при возможных доработках и облегчения читаемости кода при его исследовании. Если кому-то это критично – удалите комментарии и пропустите через компрессоры.)



Технические детали Бармалей
Бармалей 16.06.2021 04.07.2021 319 0.0

Общие технические сведения о разработке
Статус разработки:Активная, поддерживается автором
Язык интерфейса:Русский, Английский
Версия браузера:46+
Протестировано в:SRWare Iron 49 + 360 Extreme Explorer 9/11/12/13 (CR-63/69/78/86) + Chromium 87
Технологии и API:Чистый JS (ES5), API: tabs, browserAction, contextMenus, commands, storage

Поделиться

Всего комментариев: 1
0
1 Бармалей 04.07.2021 • 15:58
к кноун-иссую №2 добавил ремарку про текущий miniChrome (1.0.0.113):
пофиксили падучесть, теперь страница chrome://discards нормально открывается..   
правда, обгрызенная она у них какая-то, колонки фриза нет.. ну и фиг с ним, починят поди..)
close