Mozilla уведомила разработчиков о грядущем переходе на новый API дополнений — WebExtensions.
Преимущества нового API:
- Совместимость с Chrome и Opera (возможно, с Microsoft Edge). Для портирования дополнений между браузерами потребуется лишь минимальное изменение кода и переупаковка.
- WebExtensions полностью совместим с многопроцессным режимом работы браузера и новым движком Servo. Многопроцессный режим (каждая вкладка = отдельный процесс) будет включён в ближайших выпусках Firefox. Разработчикам дополнений придётся в любом случае адаптировать свои дополнения к новому режиму работы, так что это отличная возможность заодно перейти на новый API. На данный момент около половины всех дополнений несовместимы с многопроцессным режимом (а многие давно заброшены разработчиками). Чтобы облегчить переходный период, в течении полугода будет работать специальная прослойка, позволяющая старым дополнениям корректно работать (и препятствующая работе тех дополнений, которые совершенно несовместимы с новым режимом и роняют браузер)
- Упрощается и ускоряется проверка дополнений, размещаемых в каталоге Mozilla. Новый API намного проще и универсальнее, чем старые разрозненные методы разработки. Это означает, что дополнения будут реже ломаться при изменениях в браузере, а разрабатывать их станет проще.
- Старые дополнения обречены в любом случае, поскольку разработчики твёрдо намерены в течение 1-2 лет отказаться от поддержки XUL и XPCOM.
Один из инженеров Firefox, работающий над многопроцессностью и сборкой мусора, поспешил успокоить пользователей и разработчиков. По его словам, у Mozilla масса идей относительно обеспечения совместимости популярных расширений (NoScript, Vimperator, Tab Mix Plus, Classic Theme Restorer) с новым API. Переход на новый API и отказ от старых технологий - процесс небыстрый. Mozilla будет рада получать отзывы и идеи через специально созданную страницу webextensions.uservoice.com.
Giorgio Maone, создатель дополнения NoScript, подтвердил, что Mozilla уже консультирует его и авторов других дополнений относительно того, как лучше реализовать ту функциональность, которая пока ещё не поддерживается в WebExtensions.
>>> Подробности