Тайните чудатa на браузърите, които държат мрежата на крака (и защо да ви е грижа)
Тайната на уеб-а, която никой не иска да обсъжда
Представете си: големите браузъри съдържат специален код, който променя начина, по който се показват сайтове. Зависи от домейна. Не е грешка. Не е хак. Това е умишлена функция.
На TikTok браузърът ти работи различно от твоя сайт. Същото важи за Netflix, Instagram, Amazon Prime Video и дори SeatGuru – оня инструмент за сравняване на места в самолетите.
Фактите са публични. В Safari WebKit има файл Quirks.cpp с хиляди реда код за конкретни домейни. Firefox го показва в about:compat – можеш да включиш или изключиш тези настройки. Chrome мълчи, което говори много за пазара.
Войната на съвместимостта
Отвори Firefox и напиши about:compat. Ще видиш списък с "легендарни" счупени сайтове. Всеки ред е фикс за домейн – с CSS промени, JavaScript корекции или фалшиви user agent стръкове.
Safari е още по-открит. Quirks.cpp на GitHub разкрива реалната история на уеб-а – не идеалната, а истинската.
Вижте Facebook, X (бившия Twitter) и Reddit. Коментарът в кода гласи:
"Facebook, X и Reddit спират video, щом излезе от viewport, без да проверяват PiP режим."
Safari ги разпознава и променя Picture-in-Picture. Това са гиганти с армии инженери. Могат да си поправят кода. Вместо това Safari фіксира за два милиарда юзъри.
За SeatGuru има бележка:
"FIXME: Премахни, ако seatguru поправи сайта."
Опитали са се да се свържат. Без отговор. Резултат: хардкод в браузъра.
Как Chrome разваля всичко
Тук става интересно – и тъжно за стандартите.
Chrome държи пазара. Разработчиците пишат за него. Сайтовете летят там. Баг в Safari или Firefox? Потребителите винят браузъра, не сайта. Преминават към Chrome. Кръгът се затваря.
По-лошо: функциите на Chrome стават "стандарт". Той ги пусне. Разработчиците ги грабват заради 65% пазар. Safari и Firefox или копират (скъпо), или лепват домейн-специфични фиксове.
WebKit лъже за user agent, за да изглежда като Chrome на Amazon Video и стрийминг сайтове. Те проверяват браузъра и наказват не-Chrome. Ето кода:
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;
Safari и Firefox се преструват на Chrome. Фийдбек лупа: оптимизация за Chrome, вината пада върху другите.
Не само козметика: Дълбоки промени
Това не са леки корекции. Браузърите сменят scrolling, touch събития, viewport и MIME типове за изображения – според домейна.
Напоследък в WebKit: Zillow не центрираше планове на етажи, TikTok молеше за ъпгрейд, Instagram Reels тресеше, Netflix бутони глушеха попъп-ове, Twitch спираше PiP при таб сменяне, Amazon Prime Video отказваше да работи.
Всеки – с домейн-фикс. Хиляди реда код за големи сайтове.
Какво значи за твоя стартъп
Когато строиш уеб ап, тествай в браузъри. Не защото "трябва", а защото те правят изключения за конкурентите ти.
Уеб-платформата става прагматична, не стандартна. Браузърите се адаптират към апликации, не сайтовете към тях.
За малки екипи – плюс. Малко шансове да попаднеш в Quirks.cpp. Но ако растеш и багаш в Safari/Firefox, може да те "поправят" насилствено.
Това показва защо стандартите са ключови. Chrome диктува. Всички следват.
Реалността без украси
Уеб-ът не е равен. Големите сайтове имат VIP待遇 в браузърите. Но това доказва здравина – браузърите ще направят всичко, за да работи.
Не е елегантно. Не е по план. Но е нашият уеб.
Когато сайт лети в Chrome, а фърли в Firefox – това е следствието. За твоя проект: без browser sniffing, без Chrome-копиране, тествай реално.
Скритите quirks напомнят: строим на платформа от добри намери, хитър код и домейн-патчове.