' +'' +'' +'' +'' +'' +'' +'' +'' +'' +'')//-->
Некоторые технические подробности по исходному коду расширения Tab Controller Plus RU. Применяемые технологии и API. Особенности настройки и использования. Локализация.
В этой статье:
В отличие от расширений-прототипов и функциональных аналогов Tab Controller Plus RU:
Все отличия указаны для текущей версии Tab Controller RU, в более ранних часть добавленных функций отсутствует.
Tab Controller RU не использует для работы никакие сторонние библиотеки (привет любителям JQuery и иже)).
В коде применён только чистый JS (ES5), любые неподдерживаемые в "старых" браузерах функции отсутствуют, все скрипты работают в "строгом" режиме – для гарантии выполнения функций и облегчения отлова ошибок. В интерфейсе применяются стили стандарта CSS2, неподдерживаемые в "старых" браузерах директивы отсутствуют.
Аддон запускается при старте браузера, имеет невыгружаемый фоновый процесс, служащий для обработки позиций открываемых вкладок и переходов при их закрытии.
Для работы со вкладками задействуется 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: Что это такое и как работать с этим архивом.
Язык интерфейса – только русский (локализация жёсткая, зашита в коде), добавление других* локализаций на текущий момент не планируется. Это связано со значительным упрощением кода, а также с тем, что при создании расширения автор в первую очередь ориентируется на русскоязычных пользователей.
* Впрочем, если "дело пойдёт", прикрутить ещё и "басурманский" не является особой проблемой…)
При необходимости пользователи-энтузиасты могут самостоятельно изменить локализацию интерфейса и описания, исправив все подсказки, названия пунктов списков настроек, кнопки и т.д.. Думаю, должно быть понятно, что эти действия вы можете выполнить только на свой страх и риск, никакие претензии типа "я вот тут поменял и у меня не пашет" автором не принимаются.)
Тем не менее, при реальной необходимости полная поддержка иных локалей может быть добавлена и автором путём дополнительной доработки исходного кода. Эта доработка* может быть выполнена на условиях частного партнёрства с конкретным заказчиком (по обоюдной договорённости).
* В этом случае будет выполнен публичный выпуск с авторской поддержкой мультиязычных версий. Такие релизы также будут размещены в разделе официальных загрузок этого сайта и в дальнейшем будут доступны всем "любителям иностранщины". :)
Короче, велкам… :)