CopyOpen RU : Что "под капотом"
Опубликовано: Бармалей · 15.04.2015 · 00:02 ••• Обновление: 17.10.2020 · 13:33 0

…Как понимаю, вы уже прочитали общий обзор и хотите поглубже разобраться что и как в этом аддоне…)

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

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


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

По отношению к исходному аддону и его функциональным аналогам в CopyOpen RU имеются следующие отличия:

  • В отличие от оригинала – всего один пункт меню с автоматическим определением типа контекста под курсором.
    В оригинале – вложенное меню с необходимостью ручного выбора соответствующего типа объектов.
  • Открытие новой вкладки в фоне происходит независимо от других расширений и настроек (без конфликтов).
    Оригинал и аналоги могут конфликтовать с другими аддонами, управляющими открытием вкладок.
  • В отличие от оригинала форк не имеет фонового процесса и выгружается из памяти при неактивности.
    Кроме того – добавлена функция быстрой выгрузки после завершения требуемых действий.
  • В буфер обмена записывается только одна ссылка (и только по последнему вызову из контекстного меню).
  • В отличие от оригинала форк не требует для решения основной задачи каких-либо особых разрешений.
    В манифесте оригинала запрашивается "лишнее" разрешение на чтение данных из буфера обмена.
  • Форк оптимизирован для работы на любых версиях хром-браузеров, код проверен на версиях 29-78.
    В аддоне "осовременены" применяемые API с учётом полной обратной совместимости JS-функций.
  • Аддон можно вызвать на любых страницах, в том числе – на локальных, служебных и в гуглозине.
    Аддон может работать в режиме "оффлайн", настроек нет, функции синхронизации отсутствуют.
  • Интерфейс аддона (меню и описание) полностью на русском языке, английская и испанкая локали удалены.
  • Функции сведены в один скрипт, удалено лишнее, по отношению к оригиналу размер уменьшен вдвое.

Технические детали разработки

Ниже приведены некоторые технические подробности по исходному коду и отдельным функциям расширения.

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

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

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

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

Основное отличие от функциональных аналогов – в форке полностью отсутствует какой-либо интерфейс, требующий дополнительного html-кода, всё работает только за счёт чистого JS-кода в единственном скрипте.

В общем, всё максимально компактно и "заточено" на оперативное решение задачи реально в один клик.)

Для помещения в буфер обмена результатов работы в манифесте запрашивается разрешение [ "clipboardWrite" ].

Для запуска основной функции через контекстное меню страницы применяется стандартный API chrome.contextMenus.

Для открытия полученной ссылки в новой вкладке задействуется API chrome.tabs. Запрос отдельного разрешения [ "tabs" ] в манифесте при этом необязателен и не указан.

В отличие от оригинала, в манифесте отсутствует запрос каких-либо особых разрешений (секция "permissions"), для решения задачи расширению достаточно установок по умолчанию. Об этом прямо сказано в сводке свойств расширения в его блоке на странице chrome://extensions:

При этом также не требуется указания разрешения на работу с локальными файлами, но, хотя в блоке аддона на странице chrome://extensions соответствующий переключатель отсутствует, копирование URL и открытие таких файлов доступны полностью.

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

Практических ограничений по версии браузера не имеется, используемые API работают в версиях 31+.

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

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



Технические детали Бармалей
Бармалей 15.04.2015 17.10.2020 232 0.0

Общие технические сведения о разработке
Статус разработки:Активная, поддерживается автором
Язык интерфейса:Русский
Версия браузера:31+
Протестировано в:SRWare Iron 31/36/49
Технологии и API:Чистый JavaScript (ES5), API: tabs, clipboardWrite, contextMenus

Поделиться

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