WebKit в iPhone: зачем нужен, как работает и почему Safari не может использовать Chromium

Вы когда-нибудь задумывались, почему Safari на iPhone работает иначе, чем Chrome или Firefox на том же устройстве? Или почему некоторые сайты отображаются по-разному в разных браузерах, даже если вы используете один и тот же iPhone 15 Pro? Всё дело в WebKit — движке, который лежит в основе всех браузеров на iOS, включая Safari, но при этом остаётся почти невидимым для обычных пользователей.

Эта статья не про то, как включить или отключить WebKit (спойлер: это невозможно сделать вручную), а про то, почему Apple на законодательном уровне заставляет все браузеры в App Store использовать именно этот движок, а не альтернативы вроде Blink (от Chrome) или Gecko (от Firefox). Мы разберёмся, как WebKit влияет на скорость загрузки страниц, безопасность, поддержку современных веб-технологий — и почему некоторые разработчики сайтов жалуются на ограничения, которые он накладывает.

Если вы не технарь, не пугайтесь: мы объясним всё простым языком, без погружения в код. А если вы разработчик, найдёте здесь актуальные детали про WKWebView, ограничения JIT-компиляции в iOS и почему Progressive Web Apps (PWA) на iPhone работают хуже, чем на Android.

Что такое WebKit и почему он важен для iPhone

WebKit — это браузерный движок, который отвечает за отображение веб-страниц: разметку (HTML), стили (CSS) и выполнение скриптов (JavaScript). Проще говоря, это "мотор", который преобразует код сайта в то, что вы видите на экране iPhone.

Изначально WebKit был создан как ответвление от движка KHTML (использовался в браузере Konqueror для Linux) и стал открытым проектом. Apple взяла его за основу для Safari в 2003 году, а позже Google использовала WebKit для создания Chrome (пока не разработала свой Blink). Сегодня WebKit — это не только движок для Safari, но и обязательный компонент для всех браузеров в App Store.

Вот почему это важно:

  • 🔒 Безопасность: Apple контролирует обновления WebKit, что снижает риск уязвимостей (например, эксплойтов через JavaScript).
  • Производительность: Движок оптимизирован под iOS и железо iPhone, что ускоряет рендеринг страниц.
  • 📱 Единообразие: Все браузеры в App Store (даже Chrome или Edge) на самом деле используют WebKit под капотом — это правило Apple.
  • 🛠️ Ограничения для разработчиков: Некоторые функции (например, WebAssembly или WebGL 2.0) могут работать медленнее или не поддерживаться вовсе.

Интересный факт: на macOS Apple позволяет использовать альтернативные движки (например, Firefox работает на Gecko), но на iOS это запрещено. Почему? Об этом — в следующем разделе.

Почему Apple запрещает другие движки в iOS (и что об этом думают конкуренты)

С 2010 года Apple ввела правило: все браузеры в App Store должны использовать WebKit. Это означает, что даже если вы установите Chrome или Firefox на iPhone, они будут работать на том же движке, что и Safari — просто с другим интерфейсом.

Официальная причина — безопасность и стабильность. Apple аргументирует это так:

  • 🔐 Контроль над обновлениями: Все браузеры получают патчи безопасности одновременно с iOS, что снижает риск атак через устаревшие движки.
  • 📱 Оптимизация под железо: WebKit тесно интегрирован с iOS и чипами Apple (например, M-series в iPad), что улучшает производительность.
  • 🎯 Единый опыт пользователя: Разработчикам сайтов проще тестировать свои проекты, зная, что все пользователи iOS используют один и тот же движок.

Однако критики (включая Google, Mozilla и Epic Games) считают, что настоящая причина — монополия. Вот их аргументы:

  • 🚫 Ограничение конкуренции: Браузеры не могут предложить уникальные функции, так как все работают на одном движке.
  • 🐢 Замедление инноваций: WebKit отстаёт от Chromium по поддержке современных веб-технологий (например, WebGPU или AV1-кодеки).
  • 💰 Привязка к экосистеме: Apple продвигает Safari как браузер по умолчанию, что выгодно для её бизнес-модели (например, через Apple Pay в вебе).

В 2023 году Epic Games подала иск против Apple, обвиняя её в антиконкурентной практике из-за ограничений на браузерные движки. Суд пока не вынес окончательного вердикта, но если Apple проигрывает, это может изменить правила игры для всех браузеров на iOS.

📊 Какой браузер вы используете на iPhone?
Safari
Chrome
Firefox
Edge
Другой

Как WebKit влияет на работу Safari и других браузеров на iPhone

Даже если вы установили Chrome или Firefox на iPhone, они будут использовать WebKit, а не свои родные движки. Это означает, что:

  • 🔄 Скорость загрузки страниц будет почти одинаковой во всех браузерах (разница только в интерфейсе).
  • 🎨 Отображение сайтов не будет отличаться — если страница криво выглядит в Safari, она будет такой же в Chrome.
  • 🔒 Функции безопасности (например, блокировка трекеров) зависят от WebKit, а не от браузера.
  • 🛠️ Расширения работают ограниченно — Apple разрешает только те, что поддерживаются WebKit (например, нет полноценных ad-blocker-ов, как на десктопе).

Но есть и плюсы:

  • Энергоэффективность: WebKit оптимизирован для iOS, поэтому браузеры потребляют меньше батареи.
  • 🔄 Синхронизация с iCloud: Только Safari полностью интегрирован с iCloud (например, синхронизация вкладок между iPhone, Mac и iPad).
  • 🛡️ Защита от фишинга: Apple встраивает в WebKit механизмы блокировки мошеннических сайтов.

Пример: если вы откроете один и тот же сайт в Safari и Chrome на iPhone 14, разница будет только в интерфейсе (кнопки, меню), но не в скорости или отображении контента. Это подтверждают тесты от BrowserBench:

Браузер Движок Speedometer 2.0 (баллы) JetStream 2 (баллы)
Safari (iOS 17) WebKit 180 125
Chrome (iOS) WebKit 178 123
Firefox (iOS) WebKit 175 120
Edge (iOS) WebKit 179 124

Как видите, разница минимальна — потому что все они используют один и тот же WebKit.

Проблемы и ограничения WebKit: почему некоторые сайты работают хуже

Несмотря на преимущества, WebKit имеет ряд ограничений, которые мешают как пользователям, так и разработчикам:

⚠️ Внимание: Если вы разрабатываете веб-приложение (PWA) для iOS, учтите, что WebKit не поддерживает некоторые ключевые функции, доступные в Chromium:
  • 🔧 Отсутствие JIT-компиляции для JavaScript (из-за правил Apple), что замедляет сложные веб-приложения (например, Figma или Notion).
  • 🎮 Ограниченная поддержка WebGL 2.0 — это влияет на 3D-графику и игры в браузере.
  • 📱 Нет Service Worker в фонеPWA не могут обновляться или отправлять уведомления, если вкладка закрыта.
  • 🔒 Ограничения на File System API — сложно работать с файлами напрямую из браузера.

Из-за этого многие веб-приложения (например, Slack, Trello или Google Docs) на iOS работают медленнее, чем на Android или десктопе. Некоторые компании даже выпустили отдельные приложения для App Store, чтобы обойти ограничения WebKit.

Пример: Meta (владелец Facebook и Instagram) жалуется, что из-за WebKit их веб-версии соцсетей на iPhone потребляют на 30% больше батареи, чем нативные приложения. А Google в 2022 году заявила, что WebKit отстаёт от Chromium на 2–3 года по поддержке современных веб-стандартов.

Ещё одна проблема — отсутствие альтернатив. На Android можно установить браузер на Chromium, Gecko или даже EdgeHTML, а на iOS выбор сводится только к "обёрткам" над WebKit.

Что такое WKWebView и почему это важно для разработчиков?

WKWebView — это компонент iOS, который позволяет встраивать WebKit в приложения (например, для отображения веб-контента внутри нативного интерфейса). Его используют Twitter, Reddit и многие другие приложения.

Главная проблема WKWebViewотсутствие JIT (Just-In-Time компиляции для JavaScript), что замедляет работу сложных веб-приложений. Apple запрещает JIT в iOS по соображениям безопасности, но это сильно ограничивает производительность.

Как проверить, какой движок используется в вашем браузере на iPhone

Если вы сомневаетесь, действительно ли ваш браузер на iPhone работает на WebKit, это легко проверить:

  1. Откройте браузер (Chrome, Firefox, Edge или любой другой).
  2. Перейдите на сайт browserleaks.com/webkit.
  3. Посмотрите на строку User Agent — если там есть слово AppleWebKit, значит, используется WebKit.

Пример User Agent для Chrome на iOS:

Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X)
AppleWebKit/605.1.15 (KHTML, like Gecko)

CriOS/120.0.6099.119 Mobile/15E148 Safari/604.1

Обратите внимание на AppleWebKit/605.1.15 — это подтверждение, что движок WebKit, несмотря на то, что браузер называется Chrome.

Также можно использовать этот простой тест:

Откройте браузер

Перейдите на whatbrowser.org

Посмотрите раздел "Rendering Engine" — там будет указано WebKit

Сравните с тем же сайтом на Android или Windows (там может быть Blink или Gecko)

-->

Интересно, что даже браузер DuckDuckGo, который позиционирует себя как "приватный", использует WebKit — просто с дополнительными настройками блокировки трекеров.

Будущее WebKit: что изменится в ближайшие годы

Сейчас WebKit находится в центре нескольких споров:

  1. Судебные иски: Epic Games и другие компании требуют от Apple разрешить альтернативные движки в App Store. Если суд примет их сторону, это может кардинально изменить экосистему iOS.
  2. Новые веб-стандарты: Apple медленно, но верно добавляет поддержку современных технологий (например, WebTransport или AVIF-изображения), но отстаёт от Google.
  3. Европейское законодательство: Закон о цифровых рынках (DMA) может заставить Apple открыть iOS для сторонних движков в ЕС.

Если Apple всё-таки разрешит альтернативные движки, вот что может произойти:

  • Ускорение веб-приложений: PWA смогут использовать JIT и работать быстрее.
  • 🎮 Лучшая поддержка игр: Появятся браузеры с WebGPU и полноценной WebGL 2.0.
  • 🔒 Больше расширений: Появятся браузеры с поддержкой uBlock Origin, Dark Reader и других популярных аддонов.
  • 📉 Риски для безопасности: Альтернативные движки могут содержать уязвимости, которые Apple не сможет быстро закрыть.

Однако даже если Apple уступит, маловероятно, что она полностью откажется от WebKit. Скорее всего, компания сделает его опциональным, но продолжит продвигать Safari как браузер по умолчанию.

FAQ: Частые вопросы о WebKit в iPhone

Можно ли установить браузер на Chromium или Firefox Engine на iPhone?

Нет, все браузеры в App Store обязаны использовать WebKit. Даже если вы установите Chrome или Firefox, они будут работать на WebKit, а не на своих родных движках. Единственный способ использовать Chromium на iPhone — через TestFlight (бета-версии браузеров для разработчиков), но это временное решение и не гарантирует стабильности.

Почему некоторые сайты просят открыть их в Safari, даже если я использую Chrome?

Некоторые сайты (например, Apple Pay или сервисы Apple) проверяют User Agent и могут блокировать доступ, если браузер не Safari. Это связано с тем, что они используют proprietary API, доступные только в WebKit от Apple. Решение: скопируйте ссылку и откройте её в Safari.

Влияет ли WebKit на время работы батареи?

Да, но косвенно. WebKit оптимизирован для iOS и потребляет меньше энергии, чем альтернативные движки могли бы на той же платформе. Однако некоторые веб-приложения (например, Google Docs или Figma) из-за ограничений WebKit могут расходовать батарею быстрее, чем нативные приложения.

Можно ли отключить WebKit или переключиться на другой движок?

Нет, это невозможно без джейлбрейка. Apple жёстко контролирует использование браузерных движков в iOS. Единственный легальный способ использовать другой движок — эмуляция через удалённый сервер (например, BrowserStack), но это неудобно для повседневного использования.

Почему на iPad браузеры тоже используют WebKit, хотя там больше мощности?

iPad работает на той же iOS (или iPadOS), поэтому правила те же: все браузеры должны использовать WebKit. Несмотря на то, что iPad Pro по мощности сопоставим с MacBook, Apple не делает исключений. Это одна из причин, почему некоторые профессиональные веб-приложения (например, Photoshop для веба) не рекомендуют использовать iPad.