Новость из категории: Интернет

WebExtensions: новая жизнь Firefox

WebExtensions: новая жизнь Firefox

Firefox ценят за его плагины. С WebExtensions браузер обретает более современный интерфейс, что дает больше совместимости, функциональности и безопасности.

Firefox пребывает в состоянии кризиса, однако новшества не всегда приветствуются. Когда в августе минувшего года Mozilla объявила о новом интерфейсе программирования приложений, это вызвало целую волну негодования. Многие пользователи Firefox опасались за свои любимые плагины, а разработчики беспокоились о том, что их многолетняя работа над дополнениями окажется напрасной. Что же скрывается за этим на самом деле?

Вместо устаревших и неудобных интерфейсов XPCOM (Cross Platform Component Object Model), XBL (XML Binding Language) и XUL (XML User Interface Language) в недалеком будущем дополнения браузера Firefox должны будут реализовываться через WcbExtensions. Этот новый интерфейс (https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API) ориентирован на технологию Blink API от Google Chrome.

У новинки есть два плюса и один минус. Пользоваться WebExtensions гораздо проще, чем собственным изобретением Firefox 15-летней давности. И поскольку Google Chrome и Opera тоже делают ставку на подобную технологию, разработчикам будет проще выпускать с вой дополнения для нескольких браузеров. Проблема же состоит в следующем: старая технология дополнений выбраковывается, и то, что не будет перепрограммировано, скоро не будет запускаться в Firefox. Например, плагин NoScript наверняка останется в строю, а вот у таких дополнений, как DownThemAll, возможны проблемы.

Как обычный сайт

Техническая идея, стоящая за WebExtensions, проста: плагины должны разрабатываться так же просто, как и сайты. Разработчики единожды пишут код, и он должен функционировать везде без внесения существенных изменений: не только в Firefox, но и в Chrome, Opera, Safari, а позднее в Microsoft Edge, как только браузер Windows 10 сможет поддерживать плагины. Поэтому под новым углом зрения в WebExtensions можно увидеть такие проверенные величины в сфере веб-разработок, как javascript, HTML и CSS. То есть новые дополнения — это, по сути, простые сайты, которых либо не видно вовсе, потому что они работают только па заднем плане, либо они отображаются в виде кнопок, всплывающих окон или боковых панелей. Дополнения, как это обычно бывает у Firefox, упаковываются как XPI-файлы (Cross Platform Installer), причем обдумывается и вопрос о переходе на популярный формат ZIР. Ведь за XPI скрывается не что иное, как архив ZIP, который компактно пакует собственные компоненты расширения: единственно необходимым элементом является файл манифеста (manifest.json). Он содержит метаданные и объединяет остальные компоненты WebExtensions. Подробную структуру можно увидеть в инфографике на странице справа.



Ключевыми компонентами WebEx-teasions являются контентные скрипты, через которые новые дополнения взаимодействуют с вызванными сайтами и серверами. Кроме того, важно следующее: через WebExtensions можно получить доступ к компонентам браузера, например, к вкладкам, закладкам или истории. Другие модули в XPI-файле определяют видимые в Firefox элементы расширения, такие как кнопки или боковые панели. Приятным бонусом является простой доступ к другим сетевым ресурсам, например, возможность загрузки картинок и других файлов из Интернета. Встроено и еще несколько «умных» дополнительных функций, чтобы облегчить жизнь разработчикам. В частности, можно идентифицировать и при необходимости блокировать содержимое сайтов. Если одно дополнение использует несколько вебстраниц, с ними можно взаимодействовать напрямую и очень быстро.

В настоящее время WebExtensions находятся на стадии альфа-тестирования, в окончательной версии Firefox несомненно предложит больше функций, чем другие браузеры. Кроме того, ожидается тип Meta-API, который позволит использовать экспериментальные функции.

WebExtensions: структура

До сих пор MoziUa подготавливает только простые примеры для WebExtensions. Поэтому принципиальную структуру и возможные элементы мы покажем на примере дополнения Beastify — всплывающего окна, которое выводит различные фотографии по клику мышью.
WebExtensions: новая жизнь Firefox

Плагин как отдельный процесс

То, что Mozilla занимается модернизацией своих дополнений именно сейчас, имеет под собой определенное основание: сам Firefox находится в процессе модернизации. В рамках проекта под названием Electrolysis ведется работа над мультинроцессным Firefox, который будет вводиться в две фазы. Фаза 1: браузер запускается в отдельном процессе (процесс «пользователь-интерфейс») отдельно от содержания (процесс «контент»). Фаза 2: дополнительно каждая открытая вкладка должна запускаться в отдельном процессе. Это дает преимущества для безопасности и стабильности веб-обозревателя. WebExtensions теперь функционируют с Electrolysis уже па практике, чего, к сожалению, нельзя сказать о прежних плагинах. То есть если Eirefox изменяет процессную модель, следовало бы адаптировать больше дополнений.

Новая процессная архитектура

Web Extensions должны поддерживать новую мультипроцессную архитектуру Electrolysis для Firefox, которая улучшает функциональность и повышает безопасность.

WebExtensions: новая жизнь Firefox
Во время работы Firefox запускаются архивы с плагинами как собственные процессы

Испытания WebExtensions

Все заинтересованные пользователи могут провести первые испытания новых WebExtensions с Firefox Nightly или Developer. Действовать нужно следующим образом.

WebExtensions: новая жизнь Firefox

1. Установите версию Firefox Nightly.
2. В about:config поставьте значение xpinstall.signatures.required на false.
3. Загрузите примеры WebExtensions с сайта https://github.com/mdn/webextensions-examples.
4,. Заархивируйте все содержимое в папке webextensions-examplesmaster/beastify и переименуйте beastify.zip в beastify.xpi.
5. В версии Nightly браузера Firefox кликните по «File», затем «Open File» и выберите beastify.xpi. На появившееся предупреждение ответьте нажатием значка «Install».

Защита от вредоносных программ

С WebExtensions Mozilla как раз стремится к тому, чтобы взять под контроль проблему безопасности. В Firefox именно дополнения предоставляют доступ ко всему, что только можно, включая представление сайтов и все настройки браузера. Агрессивные плагины используют эти слабые места, так что, по всей видимости, Firefox должен бороться с нежелательными или даже вредоносными программами. Поэтому с недавних пор дополнения должны подписываться Mozilla, иначе они будут блокироваться, начиная с Firefox 45. С Web-Extensions Mozilla хочет намного быстрее осуществлять контроль над новыми дополнениями и обновлениями.

Рейтинг статьи

Оценка
4/5
голосов: 3
Ваша оценка статье по пятибальной шкале:
 
 
   

Поделиться

Похожие новости

Комментарии

^ Наверх