Движок браузера (также известный как движок компоновки или движок рендеринга ) является основным программным компонентом каждого крупного веб-браузера . Основная задача движка браузера — преобразовывать HTML- документы и другие ресурсы веб-страницы в интерактивное визуальное представление на устройстве пользователя .
Помимо « движка браузера », обычно используются два других связанных термина: «движок компоновки» и «движок рендеринга». [1] [2] [3] Теоретически компоновка и рендеринг (или «окраска») могут осуществляться разными движками. Однако на практике эти компоненты тесно связаны и редко встречаются сами по себе за пределами движка браузера. [1] [4]
Помимо компоновки и рендеринга, движок браузера обеспечивает соблюдение политики безопасности между документами, обрабатывает навигацию по гиперссылкам и данные, отправленные через формы , а также реализует объектную модель документа (DOM), доступную для скриптов , связанных с документом. [1] [4]
Каждый крупный браузер поддерживает JavaScript для предоставления широкого спектра динамического поведения для веб-страниц . Однако JavaScript реализован как отдельный движок JavaScript , что позволило использовать его в других местах . В браузере эти два движка координируются через привязки DOM и Web IDL . [4]
Браузерные движки также используются в не-браузерных приложениях . Клиенту электронной почты нужен один для отображения HTML-электронной почты . Начиная с 2010-х годов, многие приложения были созданы с использованием фреймворков , основанных на проекте Chromium от Google ; каждое из этих автономных приложений функционирует во многом как веб-приложение . (Два примера — Spotify и Slack .) [5] [6]
Макет веб -страницы обычно задается каскадными таблицами стилей (CSS). Каждая таблица стилей представляет собой ряд правил того, как должна быть представлена страница. Например, некоторые правила определяют детали типографики , такие как шрифт , цвет и размер текста, в то время как другие определяют размещение изображений. Движок объединяет все соответствующие правила CSS для вычисления точных графических координат для визуального представления, которое он будет рисовать на экране. [1] [4]
Некоторые движки могут начать рендеринг до загрузки ресурсов страницы. Это может привести к визуальным изменениям по мере получения большего количества данных, например, постепенному заполнению изображений или появлению нестилизованного контента . [7]
Показана только продолжительность активной разработки , когда в движок продолжают добавляться новые соответствующие веб-стандарты .
Вот исходники великолепного Chromium Embedded Framework, который используется клиентом Spotify Desktop.
Из-за ограничений платформы iOS все браузеры должны быть построены на основе движка рендеринга WebKit.