Firefox će isporučiti JPEG XL, ali je dekoder prvo morao da se prepiše u Rustu
Mozilla je 24. avgusta objavila namjeru da ga isporuči. Uslov koji je postavila prije pet godina je ispunjen: Google Research je dekoder napravio iznova u Rustu, jer je 100.000 redova višenitnog C++-a bila prevelika površina za napad.
Firefox JPEG XL drži iza zastavice od 2021. i za sve to vrijeme ga nije isporučio. Razlog nikad nije bio format nego dekoder: 100.000 redova višenitnog C++-a, koji raščlanjuje datoteke s otvorenog interneta, unutar procesa pregledača. Mozilla na to nije odgovorila odbijanjem nego izazovom — napravite bezbjedan, brz, malen i saglasan dekoder u Rustu, pa ćemo ga isporučiti. Google Research je napravio jxl-rs, i on je sada srce podrške za JPEG XL u Firefoxu.
Šta se zapravo isporučuje
Namjera da se isporuči je javna obaveza, ne izdanje. Mozilla piše da i Chrome namjerava da ga isporuči i da Safari već nosi djelimičnu izvedbu — isporučio je JPEG XL 2023, ali bez postupnog iscrtavanja. Na osnovu toga Mozilla očekuje da format bude podržan u svim pregledačima prije kraja godine.
Uz dekoder je Mozilla tražila i provjere saglasnosti, kao oblast istraživanja u okviru Interopa 2026. To znači više nego što zvuči: format slike koji se u tri pregledača dekoduje različito je format koji niko ne može da koristi u produkciji.
Provjereno na webstatus.dev 25. avgusta 2026: JPEG XL je Baseline ograničeno. Safari i Safari na iOS-u ga isporučuju od 18. septembra 2023; Chrome i Firefox ne. AVIF je, nasuprot tome, Baseline široko dostupan od 25. januara 2024. Danas ta dva formata u produkciji nisu zamjenjiva, šta god pisalo u objavama o namjeri.
AVIF ili JPEG XL: brojke kažu da zavisi
Internet prvi put ima dva savremena formata koja oba vrijede, a pošten odgovor na pitanje koji od njih izabrati jeste da pobjeđuju na različitim mjestima. Mozilla je objavila mjerenja nad fotografijom, ocijenjena mjerom SSIMULACRA 2.
Pri srednje visokom kvalitetu (ocjena 62,8) AVIF je 116 kB, a JPEG XL 134 kB. Pri vrlo visokom (ocjena 80) odnos je 227 kB prema 264 kB. Bez gubitka se sve okreće: 1,76 MB za AVIF, 1,45 MB za JPEG XL i 1,55 MB za WebP bez gubitka. Na snimku ekrana je razlika još veća — pri ocjeni 78 AVIF je 11,6 kB, a JPEG XL 23,8 kB, ali bez gubitka je 164 kB prema 92 kB.
- JPEG XL: slike bez gubitka, postupno iscrtavanje i ponovno sažimanje postojećih JPEG datoteka bez gubitka kvaliteta.
- AVIF: fotografije u kvalitetu za internet i slike koje miješaju oštre ivice s ravnim površinama.
Postupno iscrtavanje je dio koji se vidi
Postupno iscrtavanje znači da se slika počinje crtati dok se još preuzima. U Mozillinom primjeru cijela slika je 135 kB, a poslije svega nekoliko kilobajta čitalac već razaznaje šta je na njoj. AVIF to podržava samo osnovno, i zato je Mozilla tražila da uđe u izvedbu u Rustu.
Kod vrlo velikih slika ta razlika zna da bude važnija od veličine datoteke. Savjet iz objave nije da se proglasi pobjednik nego da se mjeri na sopstvenom skupu slika, u kvalitetu koji čitaoci stvarno dobijaju, i da se računa na velike gustine ekrana.
„Napravite bezbjedan, brz, malen i saglasan JPEG XL dekoder u Rustu, pa ćemo ga isporučiti.“
Povezano
WebAuthn nivo 3 je preporuka, što znači da se površina za pristupne ključeve prestala pomjerati
W3C je nivo 3 objavio 25. avgusta. U tekstu nema suštinske izmjene od predloga preporuke od 26. maja, a sve novo je odgurano u nivo 4 — i to je smisao ovog koraka, a ne napomena uz njega.
W3Cprovjereno

Selektor prefiksa klase sada je tekst specifikacije u nacrtu Selectors 5
Nacrt od 18. avgusta dodaje odjeljak 2.1, selektori prefiksa klase, i definiše .foo-* tako da pogađa svaku klasu koja počinje tim prefiksom. Zamjenjuje zaobilaznice s atributskim selektorom koje nosi svaki dizajn sistem. Nijedan pregledač to još ne podržava, a pravilo poklapanja ima ivicu na kojoj će se ljudi saplitati: .foo-* ne pogađa foo--bar.
CSS Working Groupprovjereno

Kako uvesti Baseline u CI, pa da pregledač prestane da odlučuje umjesto tebe
Trebaju ti tri paketa i dvadesetak minuta. Jedno podešavanje kaže gradnji koje pregledače gađaš, linter upozori kad stilski list pređe tu liniju, a CI to kaže na zahtjevu za spajanje umjesto da ti korisnik kaže u prijavi greške šest sedmica kasnije.
web.dev, npmprovjereno
