Скрытые фишки браузеров, которые спасают веб (и почему это важно знать)
Грязная тайна веб-браузеров
Представьте: крупные браузеры специально меняют своё поведение для отдельных сайтов. Это не глюк и не обход. Это встроенная фича, прописанная в коде.
Зашли на TikTok — браузер работает по-другому, чем на вашем блоге. То же с Netflix, Instagram, Amazon Prime Video и даже SeatGuru — сервисом для сравнения кресел в самолётах.
Всё на виду. В Safari файл Quirks.cpp в WebKit тянет на тысячи строк кода с фиксами под домены. Firefox показывает их на странице about:compat — можно даже включать и выключать. Chrome молчит, что само по себе показательно.
Война за совместимость
Откройте Firefox, введите about:compat. Получите список "проблемных" сайтов с кастомным CSS, правками JavaScript и подменой user agent.
В Safari ещё проще: загляните в Quirks.cpp на GitHub. Это хроника реального веба — не по стандартам, а как есть.
Вот комментарий про Facebook, X (бывший Twitter) и Reddit:
"Facebook, X и Reddit глупо ставят видео на паузу, если оно ушло за пределы экрана, даже в PiP-режиме."
Safari видит домен и корректирует Picture-in-Picture. У этих гигантов армии разработчиков, но браузер фиксит за два миллиарда юзеров.
Про SeatGuru пишут:
"FIXME: Убрать quirk, если seatguru доработает сайт."
Пытались связаться — игнор. Вклеили хардкод в движок.
Круговая порука: как Chrome ломает стандарты
Chrome правит рынком. Разрабы пишут под него — там 65% аудитории. Сайты идеальны в Chrome. Глюки в Safari или Firefox? Пользователи бегут в Chrome. Цикл замыкается.
Хуже: фичи Chrome становятся "стандартами". Chrome выпустил — все копируют. Safari и Firefox либо догоняют, либо лепят quirks под домены.
WebKit подменяет user agent, чтобы Safari казался Chrome'ом для Amazon Video и стримингов. Сайты детектят браузер и портят жизнь остальным. Браузеры врут и идут дальше.
Код вот такой:
auto chromeUserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"_s;
Firefox делает то же. Петля: разрабы под Chrome, юзеры винят другие браузеры, доминация растёт.
Не только косметика
Это не про отступы или цвета. Браузеры меняют скролл, обработку touch-событий, расчёт viewport, MIME-типы изображений.
В свежих коммитах WebKit: Zillow не центрировал планы этажей, TikTok пугал "обновите браузер", Instagram Reels дёргался при воспроизведении, кнопки Netflix роняли поповеры, Twitch паузил PiP при смене таба, Amazon Prime Video вообще не запускался.
Каждый случай — отдельный фикс. Тысячи строк под баги топ-сайтов.
Что это значит для вашего проекта
Строите веб-приложение? Тестируйте везде. Браузеры фиксят конкурентов, а не вас.
Веб уходит от стандартов к прагматизму. Браузеры становятся "приложиловыми". Патчат сайты сами.
Для стартапа плюс: малый сайт не попадёт в quirks. Но вырастете — и рискуете нарваться на "исправление" вашего кода.
Это напоминание: доминация Chrome диктует правила. Его фичи тянут за собой всех.
Реальность без прикрас
Веб — не равное поле. Крупные сайты получают бонусы в движках. Но платформа жива: браузеры держат её на плаву хардкодами.
Неидеально. Не по стандартам. Но работает. Разница между "идеальным" и "реальным" вебом — ключ к успеху.
Сайт летает в Chrome, но тормозит в Firefox? Это эхо quirks. Совет: не полагайтесь на sniffing, не думайте, что Chrome — норма, тестируйте на живых браузерах.
Скрытые патчи — клей веба: добрые намерения, смекалка и тонны domain-specific кода.