Бета-выпуск Firefox 57 с многопоточным CSS-движком и новым оформлением

Компания Mozilla объявила о начале бета-тестирования ветки Firefox 57, релиз которой намечен на 14 ноября и станет одним из самых значительных выпусков в истории проекта. В частности, в новой версии будет переработан внешний вид браузера, осуществлён переход на WebExtensions и новый web-движок Quantum, комбинирующий проверенные временем компоненты движка Gecko с новыми возможностями по обеспечению многопоточной обработки данных, предоставляемые языком Rust и движком Servo. Ожидавшийся сегодня релиз Firefox 56 отложен до 28 сентября.

Основные новшества бета-версии Firefox 57:

  • Интегрирован новый CSS-движок Stylo, подготовленный в рамках проекта Quantum, в котором производится работа по переносу в браузер возможностей, изначально развиваемых для движка Servo. Stylo написан на языке Rust и отличается распараллеливанием обработки стилей CSS. Так как разные CSS-стили теперь обрабатываются параллельно, не блокируя друг друга, отмечается значительное повышение скорости обработки страниц. В сочетании с оптимизациями, подготовленными в рамках проекта Flow и уже вошедшими в состав Firefox 55, выпуск Firefox 57 демонстрирует двухкратный прирост производительности в тесте Speedometer 2.0, по сравнению с версией Firefox 49.

    В дальнейшем в Firefox ожидается включение проекта Quantum DOM, который обеспечит распараллеливание операций с DOM (Document Object Model) и оставит в прошлом применяемую ныне однопоточную схему обработки контента. JavaScript-код для разных вкладок и iframe будет выполняться параллельно в отдельных нитях, что позволит увеличить отзывчивость браузера при использовании большого числа открытых вкладок. Для переключения между нитями будет задействован встроенный планировщик совместной многозадачности, переключающий контекст в «безопасные» моменты, например, при вызове функций и в вершине каждой итерации циклов, что позволит минимизировать использование блокировок. Также планируется реализовать эвристические методы для остановки выполнения кода во второстепенных фоновых вкладках, а также предоставить интерфейс для блокирования бесконечного зацикливания и снижения приоритета ресурсоёмких скриптов.

  • Полный переход на технологию WebExtensions для дополнений. Поддержка XUL/XPCOM-дополнений по умолчанию отключена, но пока возвращаема через установку extensions.legacy.enabled=true в about: config;
  • Реализован третий уровень sandbox-изоляции для платформы Linux, при котором в дополнение к ограничению доступа к системным вызовам при помощи Seccomp-bpf, запрету записи в ФС и исключению доступа к разделяемой памяти, временной директорию и видеоподсистеме, для процессов браузера также реализовано ограничение на чтение произвольных данных из ФС и лимитирование доступа к настройкам тем оформления, шрифтам, библиотекам и совместно используемым данным;
  • Новое оформление интерфейса пользователя, подготовленное в рамках проекта Photon. Основные изменения:
    • Прямоугольные кнопки вкладок;
    • Скрытие по умолчанию панели поиска (только для новых установок, после обновления панель остаётся). В настройки добавлена опция, позволяющая вернуть отдельную форму для обращения к поисковым системам; 0_1506447660.png
    • Новая стартовая страница («about: home»), основанная на дополнении Activity Stream, предлагающем помимо часто посещаемых ресурсов, подборку рекомендованного сервисом Pocket контента, который потенциально может быть интересен пользователю. 0_1506447723.png
    • Новая реализация основного меню, в котором вместо многоколоночной сетки пиктограмм возвращено классическое меню. 0_1506447780.png
    • Для дополнений предложено отдельное меню »>>», содержимое которого сможет настраивать пользователь. Интерфейс кастомизации ограничен возможностью изменения панели и состава дополнительного меню; 0_1506448230.png
    • Новая кнопка «Библиотека», предоставляющая доступ к истории посещений, закладкам, загрузкам, синхронизированному контенту и ссылкам в Pocket. В меню также показывается подборка недавно открытых страниц. 0_1506447919.png
    • В адресную строку встроено новое меню »…», через которое можно добавить закладку, отправить ссылку в Pocket, работать с буфером обмена, создать скриншот и поделиться материалом по электронной почте; 0_1506447879.png
    • Новая боковая панель, отображаемая в правой части экрана и предоставляющая средства для быстрого переключения между закладками, историей посещений и вкладками с других устройств. Возможность закрепления боковой панели как слева от контента, так и в правой части экрана. 0_1506447978.png
    • Два дополнительных режима: «для сенсорных экранов» и «компактный», при выборе которых увеличивается или уменьшаются отступы и интервалы между элементами;
    • Отдельная стартовая страница для режима «инкогнито». 0_1506448100.png
    • Изменено оформление страниц, отображаемых при ошибках, для страниц в списках блокировки и при открытия по HTTPS сайтов с некорректным, просроченным или самоподписанным сертификатом; 0_1506448139.png
    • Новое оформление системы настройки параметров браузера. Включена функция поиска настроек; 0_1506448187.png
    • Применение анимированных эффектов для придания большей динамичности выполняемым операциям и акцентировании внимания на изменении состояний (например более заметная индикация завершения загрузки файла или прогресса загрузки содержимого вкладки);
    • Цветовая дифференциация важности всплывающих уведомлений. Например, наиболее важные уведомления выделяются красным, требующие внимания — желтым, а информационные — цветом фона;
  • Оптимизация оформления интерфейса инструментов для разработчиков. Представлена упрощённая навигационная панель с элементами в виде вкладок и визуальное выделение центрального блока с кодом по отношению к панелям. Пересмотрена цветовая схема, используемая при подсветке синтаксиса HTML и JavaScript. Красный цвет теперь закреплён только за ошибками. Убраны слишком кричащие цвета в пользу умеренной тёплой цветовой гаммы. Увеличена читаемость кода. 0_1506449160.png
  • Предоставлен интерфейс для управления данными сайтов, сохраняемыми на локальной системе; 0_1506449212.png
  • Включено по умолчанию свойство dom.forms.datetime, позволяющее использовать в формах поля ввода даты и времени («input type=date» и «input type=time»);
  • Внесена порция улучшений в обновлённую систему автозаполнения форм, тестируемую в ночных сборках: добавлена дополнительная эвристика для определения типа данных в полях форм ввода, обеспечена возможность автоматического сохранения адреса после отправки формы, добавлен предпросмотр данных которые будут заполнены в полях при выборе предложенного варианта автозаполнения.
  • Вставка из буфера обмена средней кнопкой мыши в области контента больше не приводит к открытию URL, находящегося в буфере обмена (данная особенность приводила к казусам, например, если промахнуться кликая средней кнопкой на ссылке, мог открыться другой URL);
  • Функция автоматической прокрутки страницы (autoscrolling) теперь работает в асинхронном режиме (упреждающая отрисовка контента не попадающего в видимую область), по аналогии с другими методами ввода (например, прокруткой колесом мыши);
  • Удалена поддержка кнопки «Share», которая была завязана на неофициальный Social API и была несовместима с WebExtension. Для пользователей, которым хочется разместить кнопку для быстрой отправки ссылок в Facebook, Twitter, Google+, Linkedin, Reddit, Tumblr, Telegram, Gmail и Diaspora рекомендуется установить дополнение Share Backported;

© OpenNet