Selaimien salaiset oikut – ne pitävät verkossa pyörimisen käynnissä (ja miksi sinun kannattaa välittää)
Verkon likainen salaisuus
Selvä isku verkkostandardien ytimeen: isot selaimet sisältävät domain-spesifistä koodia, joka muuttaa sivustojen toiminta. Ei bugeina. Ei temppuina. Suunniteltuna ominaisuutena.
TikTokissa selaimesi käyttäytyy eri tavalla kuin omalla sivustollasi. Samoin Netflixissä, Instagramissa, Amazon Prime Videossa ja jopa SeatGurussa – siinä lentopaikkavertailutyökalussa.
Ei arvauksia. Koodi on julkista. Safarin WebKit-moottorissa on Quirks.cpp-tiedosto, tuhansia rivejä domain-kohtaisia korjauksia. Firefox näyttää ne about:compat-sivulla, jossa voit jopa kytkeä ne päälle tai pois. Chrome teeskentelee, ettei tällaista ole – se kertoo markkinavoimista.
Tervetuloa Compat-sotiin
Avaa Firefox ja kirjoita about:compat. Näet listan rikki menneiden sivustojen sankarihakemistosta. Jokainen kohta on räätälöity korjaus: CSS-injektiot, JavaScript-muutokset ja user agent -huijaukset.
Safari on vielä avoimempi. Katso Quirks.cpp:stä GitHubista, niin luet modernin verkon todellisen historian – ei standardien mukaista, vaan sitä, miten se oikeasti pyörii.
Esimerkiksi Facebook, X (entinen Twitter) ja Reddit. Kommentti menee näin:
"Facebook, X ja Reddit pysäyttävät <video>-elementin näkymättömissä tyhmästi, vaikka se olisi PiP-tilassa."
Safari tunnistaa domainin ja korjaa Picture-in-Picture-videon. Nämä ovat jättifirmoja insinööriarmeijoineen. Ne voisivat korjata koodinsa. Sen sijaan Safari puskee korjauksen miljardeille käyttäjille.
SeatGurusta toinen kommentti:
"FIXME: Poista tämä, jos SeatGuru korjaa sivunsa."
Eli: yritettiin yhteyttä, ei vastausta, joten hardcodattiin korjaus selainmoottoriin.
Kaskadivaikutus: Chrome rikkoo kaiken
Nyt jännä ja masentava osuus standardien kannalta.
Chrome hallitsee markkinoita. Kehittäjät rakentavat sille, koska siellä on eniten käyttäjiä. Sivut toimivat moitteetta Chromessa. Kun bugeja tulee Safariin tai Firefoxiin, käyttäjät syyttävät selainta, eivät sivustoa. Siirtyvät Chromeen. Ympyrä sulkeutuu.
Syvempi ongelma: Chomen ominaisuudet muuttuvat de facto -standardeiksi. Chrome julkaisee. Kehittäjät ottavat käyttöön 65 prosentin osuuden takia. Safari ja Firefox joko toteuttavat (hidasta) tai lisäävät domain-quirkit peittämään erot.
WebKitissä on user agent -ohituksia: Safari teeskentelee Chromea Amazon Videolle ja striimaussivustoille. Nämä sivut tunnistavat selaimen ja rankaisevat ei-Chromea. WebKit valehtelee user agentin.
Todellinen koodi:
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 lähettää feikin Chrome-user agentin. Firefox tekee samoin. Kun sivut kieltäytyvät, moottorit teeskentelevät ja jatkavat.
Tämä luo purkautumattoman noidankehän. Kehittäjät optimoivat Chromea. Muut syyttävät omaa selaintaan. Hallinta jatkuu.
Ei vain pintaa: Syvät quirkut
Ei pelkkiä visuaalisia nipsejä. Selaimet muuttavat ydinkäyttäytymistä domainin mukaan: skrollaus, touch-tapahtumat, viewport-laskut ja image MIME -käsittely.
Viime viikkoina WebKitiin: Zillow'n pohjapiirustukset eivät keskittyneet, TikTok vaati "päivitä selain", Instagram Reels skaalautui väärin, Netflixin napit tuhosivat popovereita, Twitch pysäytti PiP-videot tabinvaihdossa, Amazon Prime Video ei toiminut Safarissa ollenkaan.
Jokainen sai domain-korjauksen. Tuhansia rivejä koodia korjaamaan isoimpien sivustojen rikkomuksia.
Mitä tämä tarkoittaa startupillesi
Rakennettaessa web-appia: testaa selaimissa. Ei siksi että pitäisi (pitää), vaan koska selaimet tekevät poikkeuksia kilpailijoille.
Web-alusta muuttuu pragmaattiseksi, ei standardipohjaiseksi. Selaimet muuttuvat app-spesifeiksi. Ne paikkaavat rikkoutuneita sivustoja sen sijaan, että odottaisivat korjausta.
Pienille tiimeille hyvä uutinen: ette riko niin pahasti, että selaimet puuttuvat. Kasvaessanne, jos koodi ei toimi Safarissa, Firefoxissa ja Chromessa, saatte quirk-kohtelua.
Tärkeämpää: tämä näyttää, miksi standardit merkitsevät. Chomen dominanssi vaikuttaa kaikkeen. Sen julkaisut muokkaavat kehitystä, joka pakottaa muut seuraamaan.
Rehellinen totuus
Verkko ei ole tasavertainen. Isot sivustot saavat sisäänrakennettua etua selainmoottoreihin. Toisaalta tämä osoittaa alustan kestävyyttä – selaimet tekevät mitä tahansa pitääkseen verkon toimivana, vaikka se tarkoittaisi tuhansia domain-rivejä.
Ei eleganttia. Ei standardikomiteoiden unelmaa. Mutta tämä on verkko, joka meillä on. Ymmärrä ero ihanteen ja realiteetin välillä, jos rakennat sille.
Seuraavalla kerralla kun sivusto toimii Chromessa mutta hajoaa Firefoxissa, törmäät tähän arkkitehtuuriin. Rakentaessa: älä luota browser sniffingiin, älä oleta Chomen käytöstä universaalia, testaa kunnolla oikeilla selaimilla.
Verkon piilotetut quirkut muistuttavat: rakennetaan alustalle, jota pitävät kasassa hyvät aikeet, nokkela insinööritaito ja yhä enenevissä määrin domain-paikat.