Mozilla Firefox заменяет Gecko сервоприводом


Наконец-то настало время для Firefox обновить устаревший движок рендеринга Gecko, который прослужил ему 20 или несколько лет. Обновление позволит Firefox в полной мере использовать преимущества современных процессоров и графических процессоров и приведет к быстрому повышению производительности как на настольных компьютерах, так и на мобильных устройствах. устройств.

«Страницы будут загружаться быстрее, а прокрутка будет плавной. Анимация и интерактивные приложения будут реагировать мгновенно и смогут обрабатывать более интенсивный контент, сохраняя постоянную частоту кадров. А контент, наиболее важный для вас, автоматически получит наивысший приоритет, фокусировка вычислительная мощность там, где она вам больше всего нужна «.

Однако это будет не так просто. Переход с надежного, долго работающего и хорошо зарекомендовавшего себя движка на что-то новое представляет собой сложную задачу, особенно когда рассматриваемый проект, браузер Firefox, находится в рабочем состоянии и находится в стадии разработки.

По этой причине переход будет облегчен с помощью еще одного проекта, проекта Quantum, независимого веб-движка на базе сообщества, спонсируемого Mozilla, который будет действовать как мост между двумя экосистемами, пока переход не завершится:

«Применяя поэтапный подход и объединяя проверенные компоненты от Servo до Gecko по мере их готовности, пользователям не придется долго ждать, чтобы увидеть значительные улучшения стабильности и производительности Firefox. Мы собираемся выпустить основные улучшения в 2017 году, и мы будем повторять оттуда. »

Таким образом, Quantum будет использовать высокопроизводительные компоненты Servo, чтобы обеспечить большее распараллеливание и разгрузку графического процессора в Firefox. Этими высокопроизводительными основными компонентами в активной разработке являются:

rust-bindgen, генератор привязок C ++ для языка Rust. Quantum использует rust-bindgen для генерации связующего кода между кодом C ++ Firefox и компонентами Rust Servo.

Quantum CSS (также известный как Stylo) для интеграции параллельной системы стилей CSS Servo в Gecko.

Quantum Render, средство рендеринга нового поколения Servo, оптимизированное для рендеринга с помощью графического процессора, чтобы действовать как графический бэкэнд для Firefox.

Quantum Compositor, наборщик, который перемещает композитор Gecko в свой собственный процесс, поскольку перенос кода, который взаимодействует с графическим процессором, в его собственный процесс сделает Firefox более стабильным и устранит большинство сбоев Firefox, связанных с графикой.

Quantum DOM — проект, который сделает Gecko более отзывчивым, особенно когда открыто много фоновых вкладок.

Servo как проект по-прежнему считается экспериментальным, поэтому ему предстоит многое наверстать, пока он не станет полноценной заменой Gecko с богатым набором функций; однако факт заключается в том, что он постоянно развивается и скоро станет достаточно хорошим, чтобы сделать его очень удобным. первое появление как часть будущей сборки разработчика Firefox.

Таким образом, Servo ставит перед собой две долгосрочные цели:

постепенно заменять компоненты в Firefox на компоненты, написанные на Rust и совместно используемые с Servo,

а также

для определения возможностей продукта для автономного браузера Servo или встраиваемой библиотеки (например, для Android).

Далее они разбиты на несколько подзадач, как они указаны в дорожной карте проекта.

Достигнутые цели на 2016 год:

Создайте начальную сквозную техническую демонстрацию браузера, чтобы мы могли начать итерацию интерфейса browser.html.

Окисление: добавление компонентов Rust / Servo в Firefox

Систематически отслеживайте эффективность

Разрешить сравнения с Gecko и Blink

Поддержка большего количества стандартных тестов

Webrender стал графическим движком по умолчанию в производстве

в то время как другие все еще в списке дел:

Заставьте работать автопосадку для Stylo, чтобы поделиться кодом сервопривода с Firefox

Завершите работу с сервоприводами, необходимыми для Stylo.

Завершите переход на MSVC в Windows

Поэкспериментируйте с WebRender в других программах

дополнительные исследования Magic DOM и / или других оптимизаций JS и программной транзакционной памяти (в целях компоновки + параллелизм скриптов)

Основание на Rust выглядит еще одной причиной, которая может замедлить развитие проекта, поскольку этот новый язык системного программирования, несмотря на его преимущества в области безопасности, защиты и распараллеливания, все еще находится в зачаточном или экспериментальном состоянии.

Тем не менее, Servo активно ищет участников, поэтому, если вам хочется, вы можете скачать, собрать и начать работу с Servo из его репозитория на Github.

Там вы найдете несколько открытых проблем, в которые вы можете внести свой вклад, например:

Добавьте аккуратную проверку для операторов использования с лишними пробелами

Добавить уведомление для элементов, которые изменил дочерний текстовый узел

Создание переносимого вывода (избегайте создания системных тестов + конфигурации для улучшения замены типов)

Сказав это, лучший способ начать — пройти Hacking Servo — Краткое руководство

Так что в не столь отдаленном будущем можно ожидать достижений, которые могут восстановить Firefox в качестве одного из самых популярных кроссплатформенных браузеров.


Добавить комментарий