Ciudățeniile ascunse ale browserelor care țin web-ul în picioare (și de ce să-ți pese)
Secretul Ascuns al Browserelor Web
Puțină lume știe asta, dar browserele mari au cod dedicat fiecărui site important. Nu e o eroare. Nu e un truc. E o funcție oficială. Site-urile se afișează diferit pe TikTok față de un site obișnuit. La fel pe Netflix, Instagram, Amazon Prime Video sau chiar SeatGuru, tool-ul ăla pentru scaune de avion.
Totul e public. În Safari, WebKit are un fișier Quirks.cpp plin cu mii de ajustări pe domenii. Firefox le arată direct pe pagina about:compat – le vezi și le poți activa sau dezactiva. Chrome tace mâlc, ceea ce spune multe despre cum funcționează piața.
Războiul Compatibilității
Deschide Firefox și tastează about:compat. Vei vedea o listă cu site-uri mari care au avut probleme. Fiecare intrare e un fix țintit: CSS injectat, JavaScript modificat sau user agent schimbat.
La Safari e și mai clar. Uită-te pe GitHub la Quirks.cpp. Acolo e istoria reală a web-ului – nu cum ar trebui să fie, ci cum e de fapt.
Ia Facebook, X (fostul Twitter) și Reddit. Un comentariu explică:
"Facebook, X și Reddit opresc video-urile ieșite din viewport, chiar dacă sunt în PiP."
Safari detectează domeniile astea și schimbă modul Picture-in-Picture. Companii uriașe cu echipe imense. Ar putea repara singure. Dar Safari a pus un fix pentru miliarde de useri.
Alt exemplu, SeatGuru:
"FIXME: Șterge quirk-ul dacă seatguru schimbă site-ul."
Au încercat să contacteze, n-au răspuns. Așa că au băgat fixul direct în browser.
Cum Chrome Strică Totul
Aici devine interesant. Și trist pentru standarde.
Chrome domină piața. Dezvoltatorii testează pe Chrome, unde totul merge perfect. Dacă apare o problemă pe Safari sau Firefox, userii blamează browserul, nu site-ul. Treci pe Chrome. Cercul se închide.
Problema mare: deciziile Chrome devin standarde neoficiale. Chrome lansează o funcție. Dezvoltatorii o adoptă rapid, cu 65% market share. Safari și Firefox ori o implementează (ceea ce costă timp), ori pun quirks pe domenii să mascheze diferențele.
WebKit are override-uri de user agent. Safari se preface Chrome pe Amazon Video sau alte servicii de streaming. Site-urile detectează browserul și dau experiențe proaste non-Chrome. Soluția? Safari minte ce browser e.
Codul real:
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 și Firefox fac la fel. Site-urile refuză non-Chrome? Ei se maschează și gata. Un cerc vicios: optimizare pe Chrome, blame pe alții, dominanță continuă.
Nu Doar Aspecte Vizuale
Nu vorbim de tweak-uri minore. Browserele schimbă comportamentul de bază pe domenii: scrolling, touch events, viewport, MIME types pentru imagini.
Ultimele luni în Quirks.cpp: imaginile de la Zillow nu se centrău, TikTok cerea upgrade de browser, Instagram Reels se redimensiona aiurea, butoanele Netflix închideau pop-up-uri greșit, Twitch oprea PiP la tab switch, Amazon Prime Video nu mergea deloc pe Safari.
Fiecare a primit fix dedicat. Mii de linii de cod pentru site-uri mari care nu funcționează bine.
Ce Înseamnă pentru Startup-ul Tău
Construiești o aplicație web? Testează pe toate browserele. Nu din principiu, ci pentru că browserele fac excepții pentru concurenți mari.
Platforma web devine pragmatică, nu bazată pe standarde. Browserele se adaptează la aplicații, nu doar la browsere. Pune patch-uri pe site-uri stricate, în loc să aștepte fixuri.
Pentru echipe mici e bine – rar ajungi în Quirks.cpp. Dar dacă crești și nu mergi bine pe Safari, Firefox, Chrome, riști să primești un quirk.
Mai important: arată de ce standardele contează. Dominanța Chrome influențează totul. Ce lansează ei dictează ce construiesc dezvoltatorii, ce trebuie să suporte Safari/Firefox, ce se testează.
Realitatea Dură
Web-ul nu e teren egal. Site-urile mari au tratament special în browsere. Dar arată rezistența platformei – browserele fac orice să țină web-ul funcțional, chiar cu mii de linii de cod pe domenii.
Nu e elegant. Nu e ce voiau comitetele de standarde. Dar e web-ul real. Înțelegi diferența între ideal și practică dacă construiești pe el.
Data viitoare când un site merge perfect pe Chrome și crapă pe Firefox, asta e motivul. Lecția? Nu te baza pe browser sniffing, nu presupune că Chrome e universal, testează obsesiv pe browsere reale.
Quirk-urile astea ascunse amintesc: web-ul ține de intenții bune, inginerie șmecheră și patch-uri pe domenii.