Tab Controller RU : Что "под капотом"
Опубликовано: Бармалей · 19.09.2022 · 00:03 ••• Обновление: 19.09.2022 · 00:03 0

Некоторые технические подробности по исходному коду расширения Tab Controller RU.
Применяемые технологии и API. Особенности настройки и использования. Локализация.


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


Отличия от прототипов и аналогов

В отличие от расширений-прототипов и функциональных аналогов Tab Controller RU:

  • корректно работает в окнах с закреплёнными вкладками (в прототипе – только с обычными вкладками);
  • оптимизирован по API, не содержит "устаревших" и нерекомендуемых функций (рекомендации для разработчиков);
  • открывает всплывающее окно настроек по щелчку аддона на кнопке на тулбаре (в прототипе – только во вкладке);
  • имеет простой и лёгкий, интуитивно понятный интерфейс Панели управления с повышенной функциональностью;
  • полностью переведён на русский язык, включая интерфейс и все подсказки для элементов окна настроек;
  • не требует синхронизации, все настройки хранятся только локально, в профиле текущего пользователя;
  • работает практически на любых браузерах, без ограничения по версии (29+, проверено на CR29-87).

    Все отличия указаны для текущей версии Tab Controller RU, в более ранних часть добавленных функций отсутствует.


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

Tab Controller RU не использует для работы никакие сторонние библиотеки (привет любителям JQuery и иже)).

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

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


Применяемые API и отличия версий

Для работы со вкладками задействуется API chrome.tabs (разрешение запрашивается в манифесте).

Для вызова окна настроек при щелчке по кнопке на тулбаре применяется API chrome.browserAction.

Для внутренних функций расширения применяются API chrome.extension и chrome.windows. Для их работы специальных разрешений в манифесте не требуется.

Расширение работает полностью автономно. Настройки также автономны и сохраняются только в локальном хранилище самого аддона, синхронизации нет. Для работы с хранилищем применяется API chrome.storage. Запрос отдельного разрешения в манифесте при этом необязателен и не указан.


Интерфейс управления и настроек

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

Интерфейс окна управления написан на чистом HTML-коде и не требует для работы внешних библиотек

Краткая сводка по управлению расширением:

  • смена текущих настроек – во всплывающем окне (по кнопке на тулбаре), опционально – настройки во вкладке;
  • оперативная краткая подсказка по всем опциям и функциям выводится в тултипе к соответствующему элементу;
  • при переключении выбранный режим автосохраняется и сразу же применятся ко всем окнам и вкладкам.

Подробное описание функций каждого из элементов управления окна настроек приведено в статье Tab Controller RU : Настройка и применение.

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

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

При этом (установка в распакованном виде) соответственно изменяется и подсказка к экранной кнопке:

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


Дополнительные примечания по исходному коду

Практических ограничений по версии браузера не имеется, используемые API работают в версиях 29+. Рекомендуемая "беспроблемная" версия с полной поддержкой всех функций аддона – не ниже 31+.

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

Исходный код текущей версии расширения можно просмотреть в режиме онлайн на любом из ресурсов, приведённых в материале Tab Controller RU : LBSC*.

* См.также: LBSC: Что это такое и как работать с этим архивом.


Локализация интерфейса и перевод на другие языки

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

* Впрочем, если "дело пойдёт", прикрутить ещё и "басурманский" не является особой проблемой…)

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

Тем не менее, при реальной необходимости полная поддержка иных локалей может быть добавлена и автором путём дополнительной доработки исходного кода. Эта доработка* может быть выполнена на условиях частного партнёрства с конкретным заказчиком (по обоюдной договорённости).

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

Короче, велкам… :)



Технические детали Бармалей
Бармалей 19.09.2022 19.09.2022 176 0.0

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

Поделиться

Всего комментариев: 0
close