Tajne dziwactwa przeglądarek, które trzymają sieć w ryzach (i dlaczego to twój problem)
Brudny sekret przeglądarek internetowych
Wyobraź sobie, że główne przeglądarki mają wbudowane specjalne kody dla konkretnych stron. To nie błędy ani triki. To celowa funkcja, która zmienia, jak witryny się wyświetlają.
Na TikToku twoja przeglądarka działa inaczej niż na zwykłej stronie. Tak samo z Netflixem, Instagramem, Amazon Prime Video czy nawet SeatGuru – tym narzędziem do porównywania miejsc w samolotach.
To nie teoria spiskowa. Kod jest otwarty. W silniku WebKit Safariego plik Quirks.cpp ma tysiące linii poprawek dla określonych domainów. Firefox pokazuje je na stronie about:compat – możesz nawet włączać i wyłączać te poprawki. Chrome udaje, że nic takiego nie ma. To sporo mówi o dominacji na rynku.
Wojna o kompatybilność
Otwórz Firefox i wpisz about:compat. Zobaczysz listę problematycznych witryn jak z panteonu webowego chaosu. Każda pozycja to celowa poprawka: wstrzykiwanie CSS, zmiany w JavaScript czy fałszowanie user agent.
Safari jest jeszcze szczersze. Zerknij na Quirks.cpp na GitHubie – to kronika prawdziwego internetu, nie tego z podręczników standardów.
Weź Facebooka, X (dawny Twitter) czy Reddita. Komentarz w kodzie brzmi:
"Facebook, X i Reddit bezmyślnie pauzują element
<video>, który wyszedł poza widok, nawet w trybie Picture-in-Picture."
Safari rozpoznaje te domeny i modyfikuje Picture-in-Picture. To giganci z armiami programistów. Mogą naprawić swoje błędy. Zamiast tego Safari łata to dla miliardów użytkowników.
Inny przykład z SeatGuru:
"FIXME: Usuń tę poprawkę, jeśli SeatGuru zaktualizuje stronę."
Próbowali skontaktować się z nimi, zero odpowiedzi – więc wbudowali fix w silnik przeglądarki.
Jak Chrome psuje cały ekosystem
Tu robi się ciekawie i smutno dla fanów standardów webowych.
Chrome rządzi rynkiem. Deweloperzy piszą pod Chrome, bo tam jest najwięcej userów. Strony działają idealnie w Chrome. Błędy w Safari czy Firefox? Użytkownicy obwiniają przeglądarkę, nie stronę. Przechodzą na Chrome. I koło się zamyka.
Gorsze, że decyzje Chrome stają się nieformalnymi standardami. Chrome wprowadza funkcję. Deweloperzy ją kopiują, bo Chrome ma ponad 65% rynku. Safari i Firefox albo implementują (co kosztuje czas), albo dodają quirks dla konkretnych domainów.
WebKit ma w kodzie nadpisy user agent, by Safari udawał Chrome na Amazon Video czy serwisach streamingowych. Te strony sprawdzają przeglądarkę i dają gorszą wersję non-Chrome. WebKit więc kłamie.
Oto fragment kodu:
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 wysyła fałszywy user agent Chrome'a. Firefox robi to samo. Gdy strony blokują non-Chrome, silniki po prostu kłamią i działają dalej.
To pętla, z której nie ma ucieczki. Optymalizacja pod Chrome, winienie innych przeglądarek, rosnąca dominacja.
Nie tylko kosmetyka: Głębokie zmiany
To nie są drobne poprawki wizualne. Przeglądarki zmieniają podstawowe zachowania w zależności od domainu: scrollowanie, obsługa touch, kalkulacje viewportu, typy MIME obrazków.
Ostatnie miesiące w Quirks.cpp WebKita: Zillow miał problemy z centrowaniem planów mieszkań, TikTok pokazywał "zaktualizuj przeglądarkę", Reelsy Instagrama skakały przy odtwarzaniu, przyciski Netflix zamykały popover'y, Twitch pauzował PiP po zmianie zakładki, Amazon Prime Video w ogóle nie działał w Safari.
Każdy bug dostał dedykowaną poprawkę. Tysiące linii kodu na łatanie błędów gigantów.
Co to znaczy dla twojego startupu?
Budujesz apkę webową? Prawda boli: testuj na wszystkich przeglądarkach. Nie dlatego, że "powinieneś", ale bo one robią wyjątki dla konkurencji.
Web schodzi ze standardów w stronę pragmatyzmu. Przeglądarki stają się specyficzne dla aplikacji, nie tylko browserów. Łatają błędy stron zamiast czekać na fixy.
Dla małych zespołów to plus – mało szans na quirk od Apple czy Mozilli. Ale gdy urośniesz i zepsujesz cross-browser, możesz trafić na ich listę.
To pokazuje, dlaczego standardy webowe są kluczowe. Dominacja Chrome wpływa na wszystko: co deweloperzy budują, co inni muszą wspierać, co się testuje.
Prawdziwy obraz webu
Internet to nie płaska arena. Duże strony dostają specjalne traktowanie w silnikach przeglądarek. Ale to też dowód na wytrzymałość platformy – przeglądarki zrobią wszystko, by web działał, nawet kosztem tysięcy linii kodu quirks.
Nie jest to piękne. Nie po myśli komitetów standardów. Ale to web, jaki mamy naprawdę. Zrozumienie tej przepaści między ideałem a praktyką jest niezbędne, gdy budujesz na nim.
Następnym razem, gdy strona śmiga w Chrome, a kuleje w Firefoxie, to może quirk w akcji. Lekcja dla deweloperów: zero browser sniffingu, nie zakładaj uniwersalności Chrome'a, testuj na realnych przeglądarkach.
Ukryte quirks przypominają: budujemy na platformie klejonej intencjami, sprytem inżynierów i coraz więcej łatami dla domainów.