На Blink работают Chrome, Edge и большинство браузеров, на Gecko — Firefox, на WebKit — Safari и браузеры iOS. Иначе рендерят только Firefox и Safari.
Движок браузера — это программа внутри вашего браузера, которая превращает HTML, CSS и JavaScript страницы в пиксели, которые вы видите, и в поведение, которое вы ощущаете. Сегодня почти весь веб держится на трёх движках: Blink (Chrome, Edge и большинство других браузеров), Gecko (Firefox) и WebKit (Safari и каждый браузер на iOS). От того, какой из них вы используете, зависит, как сайты отрисовываются, какие функции работают и насколько вы узнаваемы, — а строка user-agent, которая якобы сообщает об этом, может быть подделана. Это руководство объясняет каждый движок, как они связаны и как проверить ваш настоящий.
Коротко: какой браузер на каком движке
- Blink — Chrome, Edge, Opera, Brave, Vivaldi и другие браузеры на базе Chromium. Развивается Google в рамках проекта Chromium. Главная черта: доминирование — на нём работает около трёх четвертей десктопных браузеров.
- Gecko — Firefox и его производные. Развивается Mozilla. Главная черта: основной независимый, не-Chromium движок на десктопе.
- WebKit — Safari на Mac, iPhone и iPad, а также Chrome, Firefox и все остальные популярные браузеры на iPhone и iPad. Развивается Apple. Главная черта: за пределами ЕС Apple требует, чтобы браузеры на iOS и iPadOS использовали именно его.
- Единственное практическое различие: большинство «разных» браузеров работают на одном и том же движке Blink, поэтому по-настоящему иначе отрисовывают страницы только Firefox (Gecko) и Safari или любой браузер на iPhone (WebKit).
Что такое движок браузера?
Движок браузера — также называемый движком рендеринга или компоновки — это компонент, который читает код веб-страницы и размещает его на экране. Когда вы открываете страницу, движок разбирает HTML в дерево документа, применяет CSS, чтобы оформить и расположить всё, и отрисовывает результат. Параллельно с ним работает отдельный движок JavaScript, который выполняет скрипты страницы.
Эти две части часто путают. В Chrome, например, Blink — это движок рендеринга, тогда как V8 — движок JavaScript, а Chromium — это проект с открытым исходным кодом, который объединяет их в браузер, а сам Chrome — фирменный продукт Google, построенный поверх этого открытого ядра. Firefox сочетает Gecko (рендеринг) со SpiderMonkey (JavaScript); Safari сочетает WebKit с JavaScriptCore. Когда говорят «движок браузера», обычно имеют в виду движок рендеринга, ведь именно он определяет, как выглядит страница.
Blink (Chrome, Edge и большинство браузеров)
Blink — это движок рендеринга от Google, на котором построен проект Chromium, и самый используемый с большим отрывом. На нём работают Chrome, Microsoft Edge, Opera, Brave, Vivaldi и множество других браузеров на основе Chromium — вместе они занимают подавляющее большинство десктопного веба, порядка трёх четвертей рынка.
Blink известен быстрой работой JavaScript (благодаря V8), стремительным внедрением новых функций и широкой поддержкой веб-платформы, поэтому разработчики часто тестируют под него в первую очередь. Обратная сторона такого доминирования — снижение разнообразия движков: когда один движок контролирует большую часть веба, его особенности и решения фактически становятся стандартом де-факто, согласны с этим формальные спецификации или нет. Chrome, Edge, Brave, Opera и большинство перечисленных выше браузеров работают на этом самом движке под собственным брендом — подробнее о том, как сложилась эта монокультура и во что она обходится вебу, читайте в материале Почему так много браузеров используют Chromium. Где именно Blink и V8 находятся среди процессов Chromium — в статье о многопроцессной архитектуре Chromium.
Gecko (Firefox)
Gecko — это движок рендеринга Mozilla с открытым исходным кодом, используемый Firefox и его производными. Его доля рынка невелика — примерно в пределах единиц процентов, — но роль его непропорционально велика: Gecko остаётся главным независимым, не-Chromium движком на десктопе, поэтому он не даёт вебу превратиться в монокультуру с единственным движком.
Gecko делает упор на веб-стандарты и приватность, а масштабная переработка Mozilla под названием «Quantum» модернизировала его производительность и параллелизм. Для разработчиков тестирование в Gecko — самый надёжный способ выявить места, где сайт случайно стал зависеть от поведения, специфичного для Blink.
WebKit (Safari и все браузеры на iOS)
WebKit — это движок Apple, построенный на основе более старого движка KHTML. На нём работает Safari на macOS и iOS, и он оптимизирован под оборудование Apple с упором на энергоэффективность и стабильность. На десктопе его доля скромна, но на мобильных устройствах она очень велика из-за одного важнейшего правила.
За пределами ЕС каждый браузер на iOS и iPadOS обязан использовать WebKit — включая «Chrome» и «Firefox» на iPhone. Эти приложения оборачивают WebKit от Apple, а не поставляют Blink или Gecko, поэтому на iPhone вы всегда работаете на WebKit, по какой бы иконке браузера вы ни нажали. Вот почему сайт может отрисовываться иначе в iOS Chrome, чем в Android Chrome, несмотря на одно и то же название.
Blink против Gecko против WebKit — сравнение
| Движок | Создатель | Примерная доля | На чём работает | Чем известен |
|---|---|---|---|---|
| Blink | ~3/4 десктопа | Chrome, Edge, Opera, Brave | Скорость, быстрое внедрение функций, доминирование | |
| Gecko | Mozilla | единицы процентов | Firefox | Стандарты, приватность, независимость движка |
| WebKit | Apple | мало на десктопе, много на мобильных | Safari, все браузеры на iOS | Энергоэффективность, стабильность |
Практический вывод: большинство «разных» браузеров — это на самом деле один и тот же движок Blink в разных интерфейсах, тогда как Gecko и WebKit — это две по-настоящему самостоятельные альтернативы, что остались.
Краткая история: KHTML → WebKit → Blink
Три движка связаны теснее, чем кажется. WebKit появился в 2001 году, когда Apple ответвила KHTML — движок проекта KDE, — чтобы создать Safari. Долгие годы WebKit питал и Safari, и Chrome от Google. Затем в 2013 году Google ответвил WebKit, чтобы создать Blink и развивать движок на собственных условиях. Gecko всё это время развивался отдельно в Mozilla (а ранее в Netscape).
Таким образом, Blink и WebKit имеют общего предка, поэтому они порой ведут себя похоже, тогда как Gecko происходит из независимой родословной.
Как проверить, какой движок использует ваш браузер
Самый быстрый способ — запустить проверку ядра браузера от BrowserInsight, которая определяет движок рендеринга, на котором ваш браузер действительно работает, а не доверяет названию на иконке. Это различие важно, потому что строку user-agent — фрагмент текста, который браузер отправляет, чтобы представиться, — изменить элементарно. Браузер может заявлять, что он Chrome на Windows, будучи на деле чем-то совсем иным.
Именно поэтому определение движка смотрит дальше user-agent на реальное поведение движка: какие веб-API существуют, как реализованы те или иные функции и другие признаки, которые сложно подделать. Если хотите понять, как этот разрыв эксплуатируется и обнаруживается, см. как обнаружить подмену user-agent, а для более глубокого взгляда на один специфичный для движка сигнал — как ваш GPU выдаёт вашу личность через WebGL.
Часто задаваемые вопросы
Какой движок браузера использует Microsoft Edge?
Edge использует Blink — тот же движок, что и Chrome. Microsoft отказалась от своего старого движка EdgeHTML в 2020 году и перестроила Edge на Chromium, поэтому сегодня Edge и Chrome отрисовывают страницы почти одинаково; различия — в интерфейсе и встроенных сервисах, а не в движке.
Является ли Chrome на iPhone настоящим Chrome?
Не в смысле движка. На iOS за пределами ЕС Apple требует, чтобы каждый браузер использовал WebKit, поэтому «Chrome» и «Firefox» на iPhone — это интерфейсные оболочки поверх движка WebKit от Apple. Они синхронизируют ваши данные и выглядят как десктопные приложения, но фактический рендеринг — это WebKit, отчего страницы могут вести себя иначе, чем на Android.
В чём разница между движком браузера и движком JavaScript?
Движок браузера (рендеринга) компонует HTML и CSS в то, что вы видите; движок JavaScript выполняет скрипты страницы. Они работают вместе, но являются отдельными компонентами — Blink сочетается с V8, Gecko со SpiderMonkey, а WebKit с JavaScriptCore. Подробнее о том, как эти две половины работают вместе при загрузке страницы — и почему у каждой свой обнаруживаемый отпечаток, — см. движок рендеринга vs движок JavaScript.
Могу ли я сменить движок своего браузера?
Внутри обычного браузера — нет, движок встроен. Ваш единственный практический выбор — сменить браузер: выберите браузер на Chromium для Blink, Firefox для Gecko или Safari для WebKit. На iOS за пределами ЕС этот выбор полностью отсутствует, поскольку все браузеры там используют WebKit.
Заключение
Три движка — Blink, Gecko и WebKit — отрисовывают почти весь веб, и выбор браузера во многом сводится к выбору между ними. Blink доминирует, Gecko сохраняет независимость веба, а WebKit за пределами ЕС правит iOS по предписанию. Знать, какой движок вы действительно используете, важно как для совместимости, так и для приватности, а поскольку user-agent способен исказить это, единственный надёжный способ узнать — определить реальное поведение движка, а не доверять его названию.
Рекомендуем прочитать:


