Команда разработчиков Firefox выпустила новую версию браузера с номером 54. Главной особенностью обновленного Firefox является поддержка многопроцессного режима обработки веб-страниц, работа над которым велась восемь лет под кодовым названием Electrolysis (E10S). Представители Mozilla называют новую версию браузера «лучшим Firefox».
/ фото Dees Chinniah CC
Первая версия мультипроцессного Firefox была представлена в августе прошлого года (версия 48). В ней работа с UI была вынесена в отдельный процесс, что делало интерфейс отзывчивым даже при высоких нагрузках на систему. В версии Firefox 54 разработчики пошли еще дальше, организовав работу в нескольких параллельных процессах: каждый со своими ресурсами RAM и CPU, управляемыми операционной системой.
Недостатком при таком подходе обычно остается высокое потребление памяти. Например, Google Chrome по умолчанию создает новый процесс для каждой вкладки и потребляет множество ресурсов. Однако, по словам главы маркетинга Firefox Райана Поллока (Ryan Pollock), в отличие от того же Chrome, Firefox не будет забирать себе всю оперативную память и замедлять работу компьютера пользователя.
В Mozilla отмечают, чтобы избежать излишнего потребления памяти, по умолчанию запускаются только четыре контент-процесса. Вероятно, число четыре — это золотая середина между потреблением памяти и преимуществами многопроцессорных систем. Однако количество процессов можно настроить, перейдя на вкладку about:config и изменив значение dom.ipc.processCount.
Сравнение потребления памяти браузеров (Источник)
Пользователи отмечают, что Firefox 54 действительно работает быстрее, по сравнению с предыдущими версиями, и потребляет меньше ресурсов, чем Chrome. Однако если у вас установлены аддоны, которые не поддерживают многопоточную работу, вы не сможете воспользоваться новыми возможностями браузера. Подробную информацию о многопоточной работе Firefox вы найдете в посте Райана Поллока по ссылке.
В дополнение к многопроцессорной работе, Firefox 54 также получил несколько новых WebExtension API, для разработки дополнений, совместимых с другими браузерами. В релизе значатся API для создания боковых панелей, позволяющие размещать локальные HTML-файлы внутри панели. Также была добавлена возможность подключения собственного обработчика протоколов и возможность настройки about:newtab. Помимо этого, был внедрен Privacy API для управления настройками безопасности и приватности (networkPredictionEnabled, webRTCIPHandlingPolicy и hyperlinkAuditingEnabled).
В новом браузере была активирована sandbox-изоляция, ограничивающая доступ подпроцессов Firefox к файловой системе и другим процессам. В Linux изоляция системных вызовов реализована с применением Seccomp-bpf, а также User namespace и chroot. В Windows же применяются библиотеки sandboxbroker и sandboxtarget, разработанные и используемые компанией Google. Еще среди изменений, внедренных в Firefox 54, числится возможность создания и сохранения собственных устройств в Responsive Design Mode для тестирования сайтов (можно задать разрешение экрана, пропускную способность сети и др.).
Также, кроме новшеств и исправления ошибок, в Firefox 54 устранена серия уязвимостей, часть которых была помечена как критические — они могли привести к выполнению кода злоумышленника при открытии фишинговых страниц.
И наконец, с выходом Firefox 54, Mozilla завершает процессы по закрытию канала с Aurora-версиями браузера. Теперь организация намерена использовать принцип поэтапной доставки обновлений для Release-канала, где новые функции, такие как Electrolysis, постепенно добавляются в браузеры небольшого числа пользователей. Если нововведение вызывает всплески отказов, или телеметрические данные указывают на возникающие сложности, Mozilla останавливает развертку обновления и дорабатывает решение.
Таким образом, процесс доставки продукта будет состоять из трех этапов: Nightly, Beta, Stable. Отказываясь от канала Aurora, разработчики надеются ускорить процесс выхода стабильных версий браузера на несколько месяцев.
Полный список изменений нового релиза вы можете найти на сайте разработчиков по ссылке.
P.S. О чем еще мы пишем в нашем блоге:
![](https://habrastorage.org/web/fa4/b59/7d9/fa4b597d9aed486796ef83cb487d3d8e.jpg)
Первая версия мультипроцессного Firefox была представлена в августе прошлого года (версия 48). В ней работа с UI была вынесена в отдельный процесс, что делало интерфейс отзывчивым даже при высоких нагрузках на систему. В версии Firefox 54 разработчики пошли еще дальше, организовав работу в нескольких параллельных процессах: каждый со своими ресурсами RAM и CPU, управляемыми операционной системой.
Недостатком при таком подходе обычно остается высокое потребление памяти. Например, Google Chrome по умолчанию создает новый процесс для каждой вкладки и потребляет множество ресурсов. Однако, по словам главы маркетинга Firefox Райана Поллока (Ryan Pollock), в отличие от того же Chrome, Firefox не будет забирать себе всю оперативную память и замедлять работу компьютера пользователя.
В Mozilla отмечают, чтобы избежать излишнего потребления памяти, по умолчанию запускаются только четыре контент-процесса. Вероятно, число четыре — это золотая середина между потреблением памяти и преимуществами многопроцессорных систем. Однако количество процессов можно настроить, перейдя на вкладку about:config и изменив значение dom.ipc.processCount.
![](https://habrastorage.org/web/4b0/1f5/412/4b01f54124d54fbf8d7bad121828dd35.png)
Пользователи отмечают, что Firefox 54 действительно работает быстрее, по сравнению с предыдущими версиями, и потребляет меньше ресурсов, чем Chrome. Однако если у вас установлены аддоны, которые не поддерживают многопоточную работу, вы не сможете воспользоваться новыми возможностями браузера. Подробную информацию о многопоточной работе Firefox вы найдете в посте Райана Поллока по ссылке.
В дополнение к многопроцессорной работе, Firefox 54 также получил несколько новых WebExtension API, для разработки дополнений, совместимых с другими браузерами. В релизе значатся API для создания боковых панелей, позволяющие размещать локальные HTML-файлы внутри панели. Также была добавлена возможность подключения собственного обработчика протоколов и возможность настройки about:newtab. Помимо этого, был внедрен Privacy API для управления настройками безопасности и приватности (networkPredictionEnabled, webRTCIPHandlingPolicy и hyperlinkAuditingEnabled).
В новом браузере была активирована sandbox-изоляция, ограничивающая доступ подпроцессов Firefox к файловой системе и другим процессам. В Linux изоляция системных вызовов реализована с применением Seccomp-bpf, а также User namespace и chroot. В Windows же применяются библиотеки sandboxbroker и sandboxtarget, разработанные и используемые компанией Google. Еще среди изменений, внедренных в Firefox 54, числится возможность создания и сохранения собственных устройств в Responsive Design Mode для тестирования сайтов (можно задать разрешение экрана, пропускную способность сети и др.).
Также, кроме новшеств и исправления ошибок, в Firefox 54 устранена серия уязвимостей, часть которых была помечена как критические — они могли привести к выполнению кода злоумышленника при открытии фишинговых страниц.
И наконец, с выходом Firefox 54, Mozilla завершает процессы по закрытию канала с Aurora-версиями браузера. Теперь организация намерена использовать принцип поэтапной доставки обновлений для Release-канала, где новые функции, такие как Electrolysis, постепенно добавляются в браузеры небольшого числа пользователей. Если нововведение вызывает всплески отказов, или телеметрические данные указывают на возникающие сложности, Mozilla останавливает развертку обновления и дорабатывает решение.
Таким образом, процесс доставки продукта будет состоять из трех этапов: Nightly, Beta, Stable. Отказываясь от канала Aurora, разработчики надеются ускорить процесс выхода стабильных версий браузера на несколько месяцев.
Полный список изменений нового релиза вы можете найти на сайте разработчиков по ссылке.
P.S. О чем еще мы пишем в нашем блоге:
- IaaS в мире музыки: как облако становится стандартом размещения аудиоконтента
- Почему результат тестирования скорости диска в ноутбуке может быть лучше, чем у промышленного сервера в облаке?
- Как справиться с пиковыми нагрузками при помощи IaaS
- Оптимизация производительности в vSphere: решение основных проблем с CPU
- Оптимизация производительности в vSphere: решение основных проблем с CPU (часть 2)