IETabYC • RU : Что "под капотом"
Пояснения по особенностям работы с внешним плагином-коннектором в расширении IETabYC • RU. Некоторые технические подробности по разработке и особенности применения аддона. В этой статье:
Особенности работы с внешним плагином-коннекторомРасширение IETabYC • RU использует для отображения страниц в режиме IE внешний плагин-коннектор для связи с системным Internet Explorer'ом. Этот плагин устанавливается отдельно и регистрируется для системы в целом, что позволяет установить его однократно для использования во всех браузерах, а также производить установку или обновление самого аддона без необходимости повторной переустановки и перерегистрации коннектора. В отличие от оригинала и его репаков русский форк не содержит установщика внешнего плагина, в комплект аддона входят только js/html файлы, сам же плагин нужно качать и ставить отдельно! Такой подход был выбран при выпуске первоначальной версии "ИЕТабыча" и сохраняется и во всех последующих релизах. Основная причина разделения – плагин не является предметом разработки расширения, в русском форке используется оригинальная версия коннектора без каких-либо изменений. Кроме того, удаление плагина из установочного пакета расширения снижает вероятность проблем при загрузке и последующей установке аддона в большинстве браузеров. Ну и, наконец, сам размер установочного пакета при этом значительно уменьшается (практически в 10 раз). Общий метод установки внешнего плагина-коннектора подробно описан в Руководстве пользователя, ниже будут указаны некоторые технические отличия доступных вариантов плагина. Для начала следует отметить, что на текущий момент "судьба" оригинального аддона весьма туманна, статус проекта неизвестен, какие-либо сведения об оригинале отсутствуют. В русском форке используется последняя версия коннектора, выпущенная в марте 2014 года, но, тем не менее, работающая и в современных браузерах. Итак, что мы имеем в наличии из архивных копий:
* На всякий случай: в своё время мне не понравилась замена исходной ссылки и метода дистрибуции плагина и хотя установленный Каспер молчал как партизан, я дважды (с интервалом) проверил "новый" установщик в онлайне: результаты текущей проверки и детализация отчёта VirusTotal. Вот такая вот "каша", разобраться* в которой "без бутылки" непросто, особенно с учётом того, что независимо от установщика любой из этих плагинов‑коннекторов корректно работает со всеми оригиналами и форками, хотя все три варианта плагина имеют различия в коде. Для окончательного "разрыва мозга" добавлю, что версия файла плагина во всех трёх случаях одна и та же… :) * И тогда, в 2014 году, и, тем более, сегодня найти разработчика плагина нереально, это китайцы, сэр…) В итоге, исходя из желания внести хоть какую-то ясность и управляемость в процесс установки, а также учитывая, что я и сам не люблю "мутные инсталлеры" и предпочитаю делать всё своими руками, для подключения коннектора была выбрана модель самостоятельной ручной установки плагина пользователем с последующей ручной регистрацией его с помощью шаблонного* файла реестра. * Необходимые ветки реестра и значения параметров в шаблонах указаны на основании данных из скрипта исходного инсталлятора, работоспособность метода неоднократно проверена на разных системах и под разными браузерами. На этом сайте доступен для загрузки текущий рабочий комплект для ручной установки плагина, состоящий из последней проверенной версии библиотеки плагина (от 13.03.2014, №3 в списке выше), шаблонов файлов реестра для регистрации и удаления плагина в системе и краткой инструкции по применению. Процесс установки и регистрация в системе NP-плагина с помощью этого комплекта предельно прост:
Также просто выполняется и удаление с отменой регистрации в системе плагина-коннектора:
Условия и особенности применения расширенияНеобходимо помнить, что в силу использования внешнего плагина-коннектора для нормальной работы расширения требуется поддержка NPAPI-плагинов в браузере. Такая поддержка доступна во всех браузерах на движке Chromium версий до 45 включительно, а также в некоторых современных хромоклонах типа 360 Extreme Explorer и ему подобных. Подробнее о работе с этими плагинами читаем в статье Краткое пояснение про плагины NPAPI и PPAPI. Исходя из сказанного, на текущий момент круг клиентских браузеров, на которых "IETabYC • RU" может работать, весьма ограничен. Тем не менее, аддон можно использовать для решения каких-либо специфичных задач в любом браузере подходящей версии. Что касается применения китайских хромоклонов: независимо от наличия в них встроенной поддержки второго движка, расширение полностью сохраняет работоспособность и на современных версиях. На всякий случай: аудит исходного кода плагина‑коннектора на предмет безопасности не производился (по причине отсутствия этого самого кода), плагин используется в русском форке по принципу "как есть". Тем не менее, нужно отметить, что каких‑либо "побочных явлений" в виде несанкционированной рекламы и тому подобных проблем за период эксплуатации с февраля 2014 года автором не выявлено, основную задачу по поддержке движка Trident от системного Internet Explorer этот плагин решает корректно. Исходный код, интерфейс и задействованные APIКод использует только чистый JS (ES5), все неподдерживаемые в "старых" браузерах функции заменены на аналоги. Для отрисовки содержимого вкладки в режиме IE используется проксирование через плагин‑коннектор. При этом все переходы в пределах вкладки также происходят в режиме IE. Открытие ссылок в новых вкладках производится в режиме WebKit (если в ваших Настройках не заданы соответствующие правила автоматического переключения). При вызове режима IE из контекстного меню ссылок они будут открыты в новой вкладке. Для переключения режима текущей вкладки с WebKit на IE (и обратно) применяется API chrome.pageAction. Для переключения режима отображения вкладки и для выполнения других действий через контекстное меню страницы используется API chrome.contextMenus. Для выполнения действий на веб-страницах применяется API chrome.tabs. Для текущего хранения всех пользовательских настроек используется API chrome.storage. Для обеспечения корректной работы аддона с любыми хостами и протоколами в манифесте запрашиваются разрешения [ "http://*/*", "https://*/*" ]. В русском форке сделана полноценная русификация интерфейса (добавлена отдельная локализация), русская локаль используется по умолчанию. Английская локализация оставлена, частично доработана и исправлена. Китайская* локаль в русском форке не поддерживается и удалена из установочного комплекта. * При необходимости можно добавить её самостоятельно из архива установщиков оригинальных версий. Аддон не имеет практических ограничений по версии браузера, используемые API работают в версиях 29+. Исходный код НЕ обфусцирован, исключительно для удобства при возможных доработках и облегчения читаемости кода при его исследовании. Если кому-то это критично – удалите комментарии и пропустите через компрессоры.) Ссылки для интересующихся
| ||||||||||
Технические детали
Общие технические сведения о разработке
|
Всего комментариев: 0 |