' +'' +'' +'' +'' +'' +'' +'' +'' +'' +'' +'')//-->
Пояснения по особенностям работы с собственным NPAPI‑плагином в расширении Big Toolbox • RU. Некоторые технические подробности по разработке и особенности применения аддона на различных версиях браузеров.
В этой статье:
Одна из основных функций Big Toolbox • RU – обеспечение расширенного управления при помощи жестов мыши. Эта функция расширения реализуется на основе NP‑плагина, входящего в комплект* аддона и работающего только при условии поддержки таких плагинов в вашем браузере (классические Chromium‑браузеры версий до 45).
* На всякий случай: аудит исходного кода плагина на предмет безопасности не производился (по причине отсутствия этого самого кода), плагин используется в русском форке по принципу "как есть". Тем не менее, нужно отметить, что каких‑либо "побочных явлений" в виде несанкционированной рекламы и тому подобных проблем за период эксплуатации с 2014 года автором не выявлено, свои задачи плагин решает корректно.
При наличии нативной поддержки NPAPI в браузере будут полностью* доступны следующие действия: * Включая работу жестов на служебных страницах и все функции управления вкладками и окнами браузера.
Всё управление супер-жестами осуществляется путём перемещения мыши при зажатой правой кнопке. При этом на экране отображается след мыши и выводится (опциональная) подсказка по результирующему действию. Конкретные действия для разных жестов и другие связанные параметры (цвет, ширина следа, стиль подсказки и т.д.) могут быть переопределены пользователем в Настройках. Кроме того, можно полностью переназначать и сами жесты, меняя комбинацию произвольных движений в соответствии со своими предпочтениями.
При отсутствии поддержки браузером NPAPI-плагинов функционал жестов мыши будет ограничен навигацией в пределах содержимого вкладок (только веб-страницы, исключая служебные страницы браузера), функции управления вкладками и окнами (в частности, прокрутка колесом на панели вкладок) также не будут работать.
Подробнее о работе с NP‑плагинами читаем в статье Краткое пояснение про плагины NPAPI и PPAPI.
Необходимо помнить, что при отсутствии поддержки NPAPI-плагинов функции расширения будут значительно урезаны, но, тем не менее, некоторые* действия, вызываемые через контекстное меню или через меню попап-окна, сохраняют работоспособность во всех современных версиях браузеров.
* Только те, которые не связаны с использованием плагина. В текущей версии аддона, кроме жестов мыши, при этом также не будут доступны функции скриншотера и интеграции с внешними приложениями, включая интеграцию с расширением IE Tab Multi.
Что касается применения китайских хромоклонов: в силу различия подходов разработчиков отдельных браузеров (и их конкретных версий) к поддержке API внешних плагинов, полная проверка неработоспособных функций текущей версии аддона на браузерах без поддержки NPAPI автором не проводилась, гарантированно предсказать, какие именно функции на таких браузерах перестанут работать, практически невозможно.
Исходя из сказанного, на текущий момент круг клиентских браузеров, на которых "Big Toolbox • RU" может работать, весьма ограничен. Тем не менее, аддон можно использовать для решения части задач в браузере любой версии.
Код использует только чистый JS (ES5), неподдерживаемые в "старых" браузерах функции отсутствуют.
Кроме управления с помощью жестов и пользовательских горячих клавиш, часть функций аддона вызывается из окна попапа или из контекстного меню страницы. Для работы с этими функциями применяются API chrome.browserAction и, соответственно, chrome.contextMenus.
Для выполнения действий на веб-страницах применяется API chrome.tabs, обеспечивающий работу контент-скриптов и запуск пользовательских букмарклетов.
Для работы с закладками применяется API chrome.bookmarks.
Для работы с историей просмотров и поиска по ней применяется API chrome.history.
Для текущего хранения пользовательских настроек используется API chrome.storage. В манифесте также добавлено разрешение [ "unlimitedStorage" ], превентивно снимающее возможные ограничения на размер сохраняемых данных. Кроме настроек, локальное хранилище используется при работе с шаблонами автозаполнения и для хранения кода произвольно заданных пользовательских скриптов.
Для обеспечения работы аддона с веб-сайтами в манифесте запрашиваются разрешения [ "http://*/*", "https://*/*" ].
В русском форке сделана полноценная русификация интерфейса (добавлена отдельная локализация), русская локаль используется по умолчанию. Английская локализация оставлена, частично доработана и исправлена. Корейская* локаль в русском форке не поддерживается и удалена из установочного комплекта.
* При необходимости можно добавить её самостоятельно из архива установщиков оригинальных версий.
Аддон не имеет практических ограничений по версии браузера, используемые API работают в версиях 19+.
Исходный код частично обфусцирован (сжатие применяется и в расширении-прототипе). Для удобства при возможных доработках и облегчения читаемости кода при его исследовании, вы можете нормализовать его при помощи соответствующих онлайновых конверторов или плагина JSTool к редактору Notepad++.