Проект Mozilla представил Quantum, комбинированный браузерный движок для Firefox

2016-10-28

Разработчики Mozilla представили проект Quantum, в рамках которого для Firefox началась разработка браузерного движка нового поколения, сочетающего проверенные временем наработки движка Gecko с новыми возможностями по обеспечению многопоточной обработки данных, предоставляемые языком Rust. В частности, в рамках проекта в Gecko будут перенесены некоторые компоненты из движка Servo, связанные с распараллеливанием вычислений и выносом операций на плечи GPU.

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

Для связывания C++ кода Gecko с кодом Servo на языке Rust будет задействована прослойка rust-bindgen. Из намеченных для интеграции компонентов отмечаются:

  • Quantum CSS - применяемая в Servo система распараллеливания обработки стилей CSS;
  • WebRender - система отрисовки, оптимизированная для выноса операций на плечи GPU;
  • Quantum Compositor - вынос кода композитинга и интерфейса для взаимодействия с GPU в отдельный процесс, что позволит защитить браузер от проблем, возникающих из-за графических драйверов;
  • Quantum DOM - распараллеливание операций с DOM (Document Object Model). JavaScript-код для разных вкладок и iframe будет выполняться параллельно в отдельных нитях, что позволит увеличить отзывчивость браузера при использовании большого числа открытых вкладок.
  • Quantum Flow - проект по развитию дополнительных оптимизаций, таких как увеличения производительности интерфейса пользователя.