Kompanija Google predstavila je novu verziju web pretraživača Chrome 105. Istovremeno je dostupan i stabilni izdanak slobodnog projekta Chromium, na kojem se temelji Chrome. Pretraživač Chrome razlikuje se od Chromium-a korišćenjem Google logotipa, prisustvom sistema za slanje obaveštenja u slučaju pada, modulima za reprodukciju videa zaštićenog od kopiranja (DRM), automatskom instalacijom ažuriranja, stalno uključenom Sandbox izolacijom, isporukom ključeva za Google API i slanjem RLZ parametara prilikom pretrage. Za korisnike kojima je potrebno više vremena za ažuriranje, podržava se odvojena grana Extended Stable, koja traje 8 nedelja. Sledeće izdanje Chrome 106 planirano je za 27. septembar.
Glavne promene u Chrome 105:
- Obustavljena je podrška za specijalizovane web aplikacije Chrome Apps, a na njihovo mesto došla su odvojena web rešenja zasnovana na tehnologiji Progressive Web Apps (PWA) i standardnim Web API. Google je prvobitno najavio nameru da se odrekne Chrome Apps još 2016. godine, planirajući da prekine podršku do 2018. godine, ali su taj plan odložili. U Chrome 105, prilikom pokušaja instalacije aplikacija Chrome Apps, pojaviće se upozorenje o prekidu njihove podrške, ali će se same aplikacije i dalje pokretati. U Chrome 109 mogućnost pokretanja Chrome Apps biće onemogućena.
- Obezbeđena je dodatna izolacija procesa "renderer", koji je odgovoran za prikaz. Ovaj proces se sada izvršava u dodatnom kontejneru (App Container), implementiranom na postojeći sistem sandbox izolacije. U slučaju iskorišćavanja ranjivosti u kodu za prikaz, dodatna ograničenja neće dozvoliti napadaču pristup mreži, zahvaljujući zabrani pozivanja sistemskih poziva povezanih s mrežnim funkcijama.
- Implementirano je sopstveno unificirano skladište korennih sertifikata sertifikacionih tela (Chrome Root Store). Novo skladište još nije uključeno podrazumevano i do završetka implementacije, sertifikati će se i dalje proveravati koristeći specifično skladište za svaku operativnu sistem. Testirano rešenje podseća na pristup kompanije Mozilla, koja podržava odvojeno nezavisno skladište korennih sertifikata za Firefox, korišćeno kao prva karika u proveri lanca poverenja sertifikata prilikom otvaranja sajtova preko HTTPS-a.
- Začela se je priprava na opuščanje podpore za API Web SQL, ki ni standardiziran, skoraj ni v uporabi in zahteva prenovo, da bi ustrezal sodobnim varnostnim zahtevam. V Chrome 105 je prepovedana dostopnost do Web SQL iz kode, naložene brez uporabe HTTPS, prav tako pa je dodano opozorilo o zastaranju tehnologije v DevTools. V letu 2023 načrtujejo odstranitev API Web SQL. Za razvijalce, ki potrebujejo podobno funkcionalnost, bo pripravljen nadomestek na osnovi WebAssembly.
- V Chrome sync je prenehana podpora za sinhronizacijo s Chrome 73 in starejšimi različicami.
- Za platforme macOS in Windows je aktiven vgrajen pregledovalnik certifikatov, ki je nadomestil klic vmesnika, ki ga zagotavlja operacijski sistem. Prej se je vgrajeni pregledovalnik uporabljal samo v različicah za Linux in ChromeOS.
- V različico za platformo Android so dodane nastavitve za upravljanje API-ja "Topics & Interest Group", ki se promovira v okviru iniciative Privacy Sandbox in omogoča določanje kategorij interesov uporabnika ter njihovo uporabo namesto sledilnih piškotkov za izločanje skupin uporabnikov s podobnimi interesi brez identifikacije posameznih uporabnikov. V prejšnji različici so bile podobne nastavitve dodane v različice za Linux, ChromeOS, macOS in Windows.
- Ob omogočeni razširjeni zaščiti brskalnika (Safe Browsing > Enhanced protection) je implementirano zbiranje telemetrijskih podatkov o nameščenih razširitvah, dostopu do API-ja in povezovanju z zunanjimi spletnimi stranmi. Ti podatki se uporabljajo na strežnikih Googla za prepoznavanje zlonamerne dejavnosti in kršitev pravil s strani brskalniških razširitev.
- Prevedena v kategorijo zastarele in bo blokirana v različici Chrome 106, možnost uporabe ne-ASCII znakov na domenah, navedenih v glavi piškotkov (za domene IDN je treba domene navesti v formatu punycode). Sprememba bo privedla brskalnik v uskladitev s zahtevami RFC 6265bis in obnašanjem, ki je že implementirano v Firefox.
- Predlagani API Custom Highlight je namenjen poljubni spremembi sloga izbranih delov besedila in omogoča, da ne ostanemo omejeni na fiksni slog za izbrane dele, ki ga določa brskalnik (::selection, ::inactive-selection), ter označevanje sintaktičnih napak (::spelling-error, ::grammar-error). V prvi različici API-ja je podprt spremenjeni barvi besedila in ozadja s pomočjo pseudoelementov color in background-color, vendar bodo v prihodnosti dodane tudi druge možnosti prilagoditve sloga.
Kot primer nalog, ki jih je mogoče rešiti s pomočjo novega API-ja, se omenjajo dodajanje v spletne okvire, ki ponujajo orodja za urejanje besedila, lastne mehanizme za označevanje besedila, različne označitve pri skupnem urejanju s strani več uporabnikov, iskanje v virtualiziranih dokumentih in označevanje napak pri preverjanju črkovanja. Če so bile prej za ustvarjanje nenavadnega označevanja potrebne zapletene manipulacije z DOM drevesom, ponuja API Custom Highlight pripravljene operacije za dodajanje in odstranjevanje označevanja, ki ne vplivajo na strukturo DOM in uporabljajo stile v zvezi z objekti Range.
- V CSS je bil dodan poizvedbeni zapis «@container», ki omogoča oblikovanje sloga elementov glede na velikost starševskega elementa. «@container» spominja na poizvedbe «@media», vendar se uporablja v zvezi ne z velikostjo celotne vidne površine, temveč z velikostjo bloka (vsebnika), v katerega je element postavljen, kar omogoča, da za otroške elemente določimo lastno logiko izbire sloga, neodvisno od tega, kje na strani se element nahaja.

- Dodana je CSS-pseudoklasa ":has()" za preslikavanje z varovanjem prisotnosti otroškega elementa v starševskem. Na primer, "p:has(span)" zajema elemente. <p>, unutar kojih se nalazi element <span>.
- Dodana je bila API HTML Sanitizer, ki omogoča odstranjevanje elementov, ki vplivajo na prikaz in izvajanje pri izhodu prek metode setHTML(). API je lahko koristen za čiščenje podatkov, ki prihajajo od zunaj, zaradi izreza HTML-oznaka, ki se lahko uporabljajo za izvajanje XSS napadov.
- Omogočena je uporaba API Streams (ReadableStream) za pošiljanje fetch zahtevkov, preden se naloži telo odgovora, torej lahko začnemo pošiljati podatke, ne da bi čakali na zaključek generiranja strani.
- Za nameščene ločene spletne aplikacije (PWA, Progressive Web App) je omogočeno spreminjanje videza območja naslova okna z uporabo komponent Window Controls Overlay, ki razširijo ekran na celotno okno in omogočijo, da spletna aplikacija deluje kot običajna namizna aplikacija. Spletna aplikacija lahko upravlja z risanjem in obdelavo vnosa v celotnem oknu, razen v prekrivanju z običajnimi gumbi za upravljanje okna (zapri, minimiziraj, povečaj).

- Stabilizirana je možnost dostopa do Media Source Extensions iz ločenih delavcev (v kontekstu DedicatedWorker), kar se lahko uporablja za izboljšanje zmogljivosti obdelanega pretoka multimedijskih podatkov s ustvarjanjem objekta MediaSource v ločenem delavcu in prenosom rezultatov njegovega dela v HTMLMediaElement v glavnem toku.
- V API Client Hints, ki se razvija kot zamenjava za glavo User-Agent in omogoča selektivno pošiljanje podatkov o specifičnih parametrih brskalnika in sistema (različica, platforma itd.) samo na zahtevo, serverom, je bila dodana podpora za lastnost Sec-CH-Viewport-Heigh, ki omogoča pridobitev informacij o višini vidnega območja. Spremenjen je bil format oznake za določitev v oznaki „meta“ parametrov Client Hints za zunanje vire: Bilo je: Postalo je:
- Dodana je možnost ustvarjanja globalnih obdelovalcev dogodkov onbeforeinput (document.documentElement.onbeforeinput), s katerimi lahko spletne aplikacije prepisujejo vedenje pri urejanju besedila v blokih ,
- Razširjene so možnosti API Navigation, ki omogoča spletnim aplikacijam, da prestrezajo operacije navigacije v oknu, iniciirajo prehode in analizirajo zgodovino dejanj z aplikacijo. Dodane so nove metode intercept() za prestrezanje prehoda in scroll() za pomikanje na določeno pozicijo.
- Dodana je statična metoda Response.json(), ki omogoča oblikovanje telesa odgovora na osnovi podatkov s tipom JSON.
- Izboljšave so bile uvedene v orodja za spletne razvijalce. V orodjarju je omogočeno urejanje zgornjih funkcij na vrhu seznama brez prekinjanja razhroščevalne seje, ko se aktivira točka prekinitev. V panele Recorder, ki omogoča snemanje, predvajanje in analizo uporabniških dejanj na strani, je dodana podpora za točke prekinitev, korak-po-koraku predvajanje in snemanje dogodkov, povezanih s premikanjem miške.
V analitski plošči uspešnosti so dodane metrike LCP (Largest Contentful Paint) za odkrivanje zamud pri risanju velikih (vidnih uporabniku) elementov na zaslonu, kot so slike, videoposnetki in blokovni elementi. V plošči Elements je uvedena označitev zgornjih plasti, prikazanih nad drugim vsebinam, s posebnim simbolom. Za WebAssembly je omogočeno nalaganje podatkov za razhroščevanje v formatu DWARF.
Poleg novosti in odprave napak je v novi različici odprtih 24 ranljivosti. Veliko ranljivosti je bilo odkritih z avtomatiziranim testiranjem s pomočjo orodij, kot so AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer in AFL. Kritične težave, ki bi omogočile, da bi zaobšli vse ravni zaščite brskalnika in zagnali kodo v sistemu zunaj okolja sandbox, niso bile ugotovljene. V okviru programa za nagrajevanje odkrivanja ranljivosti je podjetje Google za trenutno različico izplačalo 21 nagrad v skupni višini 60500 dolarjev (ena nagrada 10000 dolarjev, ena nagrada 9000 dolarjev, ena nagrada 7500 dolarjev, ena nagrada 7000 dolarjev, dve nagradi po 5000 dolarjev, štiri nagrade po 3000 dolarjev, dve nagradi po 2000 dolarjev in ena nagrada 1000 dolarjev). Velikost sedmih nagrad še ni določena.
Izvor: opennet.ru


