Mozilla Foundation объявила о грядущих значительных изменениях в работе браузера Firefox. Стараясь не отставать от современных тенденций, браузер переходит на такую схему работы, когда подобно браузеру Google веб-контент в Firefox будет запускаться в отельных изолированных процессах операционной системы. Это позволит добиться более высокой производительности и улучшить безопасность, считают разработчики. Вместе с тем, некоторые расширения работать перестанут, поэтому разработчикам придется их переписывать.
Новый API построен с использованием штатных веб-технологий и во многом совместим с API для Blink/Chrome, Opera и Safari, что позволяет унифицировать разработку дополнений для различных браузеров благодаря существенному упрощению портирования. С новым API разработка браузерных дополнений станет похожей на разработку для Web — один и тот же код сможет работать в разных браузерах и будет зависеть от единых стандартов. С переходом на WebExtensions в Firefox после минимальных изменений смогут быть установлены дополнения, созданные для Chrome, Opera, Safari и, возможно в будущем, Microsoft Edge. По сути, потребуется лишь переупаковка дополнения для разных платформ.
Разработчики из Mozilla уже достаточно давно экспериментируют с многопроцессной архитектурой (проект Electrolysis) и готовятся к переходу на новый движок Servo. Текущее API браузера XPCOM (кросплатформенная объектная модель компонентов) позволяет писать дополнения на различных языках: C++, JavaScript, Java, через слой абстракции XPConnect. Эта система помогла появлению огромного количества дополнений к браузеру, что сыграло не последнюю роль в наборе им популярности.
XPCOM позволяет дополнениям взаимодействовать с браузером, расширяя и изменяя поведение всех его компонентов, от элементов интерфейса до рендера страниц. К сожалению, эта система имеет и обратную сторону — её очень сложно скрестить с идеей Electrolysis. Пытаясь объединить эти две идеи Mozilla вводила протокол CPOWs (cross process object wrappers, межпроцессные объектные обёртки) для общения между процессами. Но система получилась медленной, к тому же она не обрабатывает все возможные сценарии взаимодействия. В связи с этим от неё также решено отказаться.
В настоящее время Electrolysis уже активирован по умолчанию в Firefox 42 Developer Edition. 3 ноября ожидается включение Electrolysis в бета-версии Firefox 43 и начало блокирования несовместимых с ним дополнений, приводящих к значительным проблемам с производительностью и стабильностью. Остальные несовместимые с Electrolysis дополнения будут выполняться с использованием специальной прослойки. В финальных выпусках Electrolysis может появиться по умолчанию уже в декабре в составе Firefox 43. Спустя шесть месяцев планируется удалить из Firefox CPOW и прослойки для обеспечения совместимости.
Но есть еще одна причина, побудившая команду браузера переосмыслить дополнения. Проблема вредоносных расширений актуальна не только для Chrome, но и для всех браузеров, имеющих хоть какую-то долю в мире. Именно поэтому команда Firefox переходит на обязательную премодерацию всех дополнений. В процессе проверки дополнению будет выдаваться сертификат, без которого его нельзя будет установить и использовать. В компании понимают, что разработчики не очень любят подобные меры, так как они занимают много времени. API WebExtensions сконструирован таким образом, что сделать вредоносное расширение сложно, а выявить вредоносный код просто. Таким образом, как рассчитывает Mozilla, проверка не будет занимать много времени.