Разработчики проекта Mozilla сообщили об интеграции в кодовую базу, на которой будет основан выпуск Firefox 45, частичной реализации API WebExtensions. WebExtensions представит новый метод разработки дополнений, основанный на использовании штатных web-технологий и позволит использовать дополнения, совместимые с браузером Chrome.

В Firefox 45, который намечен на 8 марта 2016 года, WebExtensions будет иметь статус альфа-выпуска и будет включать полную реализацию API для обработки предупреждений (alarms), формирования контекстных меню (contextMenus), совершения действий над страницами (pageAction) и браузером (browserAction), а также частичную реализацию API для работы с закладками (bookmarks), cookies, расширениями (extension), локализацией (i18n), уведомлениями (notifications), runtime, хранилищем (storage), вкладками (tabs), окнами (windows), обработкой навигации (webNavigation) и запросов (webRequest).

Поддержка нового типа дополнений добавлена в каталог addons.mozilla.org и будет готова для загрузки дополнений ко времени выхода Firefox 44. В Firefox 47 реализация WebExtensions получит статус бета-разработки, а в Firefox 48 достигнет состояния стабильной технологии. Поддержка XUL пока сохранена и какое-то время будет сосуществовать с WebExtensions (время прекращения поддержки XUL пока не определено).

Дополнения WebExtensions полностью совместимы с многопроцессным режимом работы Firefox и могут использоваться в Chrome и Opera. Для выполнения дополнений WebExtensions используется отдельный дочерний процесс, изолирующий дополнения от остальных частей браузера. Различия между API Chrome и WebExtensions можно отследить на данной странице.

Одновременно сообщается о доступности в бета-ветке Firefox 44 многопроцессного режима работы (Electrolysis), при котором обработка содержимого каждой вкладки выполняется в отдельном процессе, отдельно от обработки интерфейса. Ранее Electrolysis тестировался только в ветке aurora/Developer Edition. Отныне к тестированию планируется привлечь примерно 15% пользователей бета-ветки, которым будет предложено принять участие в программе A/B Test. Реализовать поддержку многопроцессного режима в стабильной ветке планируется в Firefox 46, выпуск которого ожидается 19 апреля.

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

Из связанных с Firefox событий также можно отметить анонс проекта Binaryen, в рамках которого подготовлен написанный на языке С++ компилятор для WebAssembly, универсального низкоуровневого промежуточного кода для выполнения в браузере приложений, скомпилированных из различных языков программирования. В состав Binaryen входит интерактивная оболочка для выполнения модулей на WebAssembly, компилятор asm.js в WebAssembly, декомпилятор WebAssembly в asm.js, LLVM-бэкенд для компиляции произвольного кода в WebAssembly и wasm.js, порт Binaryen на JavaScript.

Источник: http://www.opennet.ru/opennews/art.shtml?num=43574