Что такое движок и зачем он нужен
Движок отрисовки, или рендеринговый движок, — ядро браузера, которое разбирает разметку и стили и решает, что и где нарисовать. Отдельно от него работает JavaScript-интерпретатор, хотя в разговорах «движком» часто называют обе части вместе. Вокруг движка браузер добавляет интерфейс, синхронизацию, настройки и собственные функции.
Поэтому два браузера на одном движке ведут себя на сайтах почти одинаково, а различаются в основном интерфейсом, политикой приватности и набором дополнений.
Хорошая аналогия — типографский станок и издательство: станок определяет, как ляжет краска на бумагу, а издательство решает, что печатать, в каком оформлении и с какой рекламой. Так и с браузерами: одинаковый станок, разные редакционные решения.
Три семейства, которые действительно используются
Blink развивается в рамках проекта Chromium; на нём построены Chrome, Edge, Opera, Яндекс Браузер и многие другие. Gecko — движок Mozilla, на нём работает Firefox. WebKit создан для Safari и лежит в основе браузеров Apple. Blink когда-то отделился от WebKit, поэтому их код имеет общее происхождение.
Свои JavaScript-интерпретаторы у семейств тоже разные: V8 в Chromium-браузерах, SpiderMonkey в Firefox, JavaScriptCore в Safari. Названия полезно знать, когда читаешь сообщения об уязвимостях или заметки к обновлениям.
Почему на iPhone всё не так, как везде
Долгое время правила App Store требовали, чтобы браузеры для iOS использовали системный WebKit. Из-за этого Chrome или Firefox на iPhone были по сути оболочками над движком Apple. В некоторых регионах требования изменились, но для пользователя из России практический вывод прежний: проверяйте, какой движок реально стоит под конкретным приложением, а не полагайтесь на название.
На Android и компьютерах такого ограничения нет: там Firefox работает на Gecko, а большая часть остальных на Blink.
Отдельная история — встроенные окна просмотра в мобильных приложениях. Многие программы показывают внешние ссылки во встроенном компоненте, который использует системный движок, но живёт по своим правилам: без ваших расширений и часто с собственной изоляцией куки.
На что влияет выбор движка
Совместимость. Сайты тестируют прежде всего на самом распространённом движке, и редкие расхождения проявляются как «поехавшая» вёрстка или неработающая функция в другом браузере. Скорость. Разница в повседневных задачах обычно невелика и зависит от версии, устройства и самого сайта.
Безопасность и приватность. Уязвимость в движке касается всех браузеров на нём, а исправление приходит с их обновлениями. Заодно монополия одного движка означает, что развитие веб-стандартов сильно зависит от одной команды, и многие специалисты видят в этом риск.
Типичные заблуждения: Движки браузеров
«Хром и Эдж — разные технологии». Под капотом у них один и тот же Blink. «Firefox медленный, потому что Gecko устарел». Движок активно развивается, а ощущения скорости зависят от расширений и профиля. «Safari работает только на Apple». Официально да, но WebKit встречается и в других программах, включая встроенные окна просмотра.
Ещё одна путаница: движок не отвечает за VPN, DNS и сетевую маршрутизацию системы, эти вещи работают на других уровнях.
Иногда путают «движок» и «фреймворк» на стороне сайта. Библиотеки для построения интерфейсов работают уже внутри браузера, используя его движок, а не заменяя его. Отсюда и разные цепочки причин: ошибка вёрстки может быть в коде сайта, а может — в особенности конкретного движка.
Как узнать, какой движок у вас
В адресной строке большинства Chromium-браузеров можно открыть служебную страницу about с описанием версии; для Firefox — раздел «О Firefox». Строка User-Agent тоже намекает на движок: в ней встречаются слова Chrome, Gecko или AppleWebKit. Подробнее об этой строке — на отдельной странице про User-Agent.
Сервисы вроде проверки браузера покажут то же самое. Но помните, что строка отправляется самим браузером и легко подменяется, поэтому доверять ей как единственному доказательству не стоит.
Если хотите проверить поведение сайта на другом движке, достаточно открыть его в двух разных браузерах и сравнить работу ключевых функций. Инструменты разработчика в каждом из них показывают предупреждения совместимости по свойствам CSS и API, которые в этой версии поддерживаются не полностью.