Скверные новости пришли из стана Mozilla, не на шутку разочаровав многочисленных поклонников Firefox. Компания планирует внести серьезные изменения в работу браузера, отказавшись от старых аддонов, сменив API и придя, наконец, к тому, что за каждую вкладку будет отвечать собственный процесс. Одним словом, все точно как в Chorme.
Впервые о масштабной модернизации браузера компания Mozilla заговорила еще в июле 2015 года. Теперь завеса тайны приоткрыта, компания подробно рассказала, какие именно изменения ждут Firefox. Браузер все же решили сделать мультипроцессовым, но ради этого придется поступиться аддонами в их текущем виде.
Дело в том, что привести браузер к виду «один процесс – одна вкладка», компания пытается с 2009 года. Данный проект называется Electrolysis, и дела у него идут не особенно хорошо: проект замораживали, снова возобновляли, но существенных подвижек так и не случилось. Теперь Mozilla взялась за дело серьезно. Ожидается, что многопроцессовость впервые появится в бета-версиях браузера уже 22 сентября 2015 года, а 15 декабря 2015 года войдет в состав релиза Firefox.
На пути Electrolysis все это время стояло вовсе не финансирование или недостаток желания, а фундаментальная проблема с API, который называется XPCOM (Cross Platform Component Object Model). В целом, XPCOM удобен, он позволяет писать на разных языках, включая C++, JavaScript, Java и так далее. В том числе, благодаря этой особенности, Firefox на сегодня имеет такое количество аддонов, и люди без проблем пишут новые.
Однако XPCOM, как оказалось, практически невозможно интегрировать с Electrolysis таким образом, чтобы аддоны тоже стали отдельными процессами для каждой вкладки.
Чтобы ты не думал совсем уж дурно об инженерах Mozilla, отмечу, что они пытались создать «костыль» для связки двух проектов — протокол CPOWs (cross process object wrappers). CPOWs позволял аддонам XPCOM работать в одном процессе и взаимодействовать с остальными, отдельными процессами, будто мультипроцессовой архитектуры нет. К сожалению, CPOWs работал очень медленно и поддерживал далеко не все аддоны и сценарии.
Теперь Mozilla сообщает, что постепенно откажется от CPOWs и аддонов, которые в своей работе полагаются на него. Полный отказ запланирован приблизительно на июнь 2016 года, то есть через полгода после внедрения Electrolysis в стабильный релиз.
После этого Mozilla полностью откажется и от поддержки XPCOM-адонов и фреймворка XUL. Это должно произойти спустя 18 месяцев после релиза Electrolysis.
На замену XPCOM придет хорошо знакомый нам API WebExtensions, базирующийся на JavaScript и HTML. Его уже используют браузеры Chrome и Opera, а Edge от Microsoft с ним совместим.
Это одновременно хорошая и плохая новости. Хорошая – теоретически, теперь все аддоны написанные для одного браузера, подойдут и для других, ведь API один. Плохая – разработчикам придется переписывать свои аддоны под новый API, потому что поддержка старого скоро будет прекращена. Разумеется, все понимают, что многие аддоны никогда не будут переписаны, а некоторые, возможно, не получится воссоздать на новом API.
Также Mozilla планирует ввести для аддонов цифровые подписи. Подобный механизм давно используют расширения Chrome, и схожим образом поступила Microsoft с дополнениями к Edge. Планируется, что все аддоны теперь будут подписываться (и одобряться) Mozilla и распространяться исключительно через репозиторий addons.mozilla.org.
Обещают, что с выходом Firefox версии 42 (который состоится 3 ноября 2015 года) аддоны без цифровой подписи уже работать не будут. Все работающие сейчас, но неподписанные аддоны будут отключены по умолчанию, их придется включать обратно в настройках браузера. Цифровая подпись не будет требоваться только в версии Firefox Developer.
Кроме того, Mozilla продолжит работать над улучшением безопасности, продвижением и внедрением своего движка Servo, написанного на языке Rust, и проекта browser.html. В компании уверенны, что эти инструменты помогут Firefox двигаться дальше и развиваться, становясь быстрее, безопаснее и лучше.
Фото: jalbertbowdenii@flickr