Podjetje Google je predstavilo izdajo spletnega brskalnika Chrome 94. Hkrati je na voljo stabilna različica svobodnega projekta Chromium, ki je osnova za Chrome. Brskalnik Chrome se odlikuje po uporabi logotipov Google, prisotnosti sistema za obveščanje ob zrušitvi, modulih za predvajanje zaščitenega video vsebin (DRM), sistemu samodejnega nameščanja posodobitev in prenosu RLZ-parametrov pri iskanju. Naslednja izdaja Chrome 95 je načrtovana za 19. oktober.
Z izdajo Chrome 94 se je razvoj premaknil na nov cikel priprave izdaj. Nova pomembna izdaja bo odslej objavljena vsakih 4 tedne, ne pa vsakih 6 tednov, kar bo omogočilo hitrejše posredovanje novih funkcionalnosti uporabnikom. Opozarjajo, da optimizacija procesa priprave izdaj in izboljšanje sistema testiranja omogočata pogostejše oblikovanje izdaj brez škode za kakovost. Za podjetja in tiste, ki potrebujejo več časa za posodobitve, bo vsake 8 tednov izšla različica Extended Stable, ki bo omogočila prehod na nove funkcionalne izdaje ne vsakih 4 tedne, ampak vsakih 8 tednov.
Glavne spremembe Chrome 94:
- Dodana je bila možnost HTTPS-First, ki spominja na prej uvedeno možnost HTTPS Only v Firefoxu. Če je možnost aktivirana v nastavitvah, bo brskalnik ob poskusu dostopa do vira brez šifriranja prek HTTP najprej poskušal dostopiti do strani prek HTTPS, in če poskus ne uspe, bo uporabniku prikazano opozorilo o pomanjkanju podpore HTTPS ter predlog za dostop brez šifriranja. V prihodnosti Google razmišlja o možnosti privzete aktivacije HTTPS-First za vse uporabnike, omejitvah dostopa do nekaterih možnosti spletne platforme za strani, odprte prek HTTP, in dodatnih opozorilih, ki obveščajo uporabnike o grožnjah, ki nastanejo ob dostopu do spletnih strani brez šifriranja. Možnost se aktivira v razdelku nastavitve 'Zasebnost in varnost' > 'Varnost' > 'Dodatno'.

- Za strani, odprte brez HTTPS, je prepovedano pošiljanje zahtevkov (prenos virov) na lokalne URL naslove (na primer 'http://router.local' in localhost) ter na notranje obsege naslovov (127.0.0.0/8, 192.168.0.0/16, 10.0.0.0/8 itd.). Izjema je bila narejena le za strani, naložene s strežnikov, ki imajo notranje IP. Na primer, stran, naložena z strežnika 1.2.3.4, se lahko poveže z virom, gostovanim na IP 192.168.0.1 ali IP 127.0.0.1, medtem ko se stranka, naložena s strežnika 192.168.1.1, lahko. Sprememba uvaja dodatno raven zaščite pred izkoriščanjem ranljivosti v obdelovalnikih, ki sprejemajo zahtevke na lokalne IP, ter bo pomagala zaščititi pred napadi tipa 'DNS rebinding'.
- Dodana je funkcija 'Sharing Hub', ki omogoča hitro deljenje povezave do trenutne strani z drugimi uporabniki. Na voljo je generiranje QR kode z URL, shranjevanje strani, pošiljanje povezave na drugo napravo, povezano z uporabniškim računom, in posredovanje povezave na zunanje strani, kot so Facebook, WhatsUp, Twitter in VK. Možnost še ni dostopna vsem uporabnikom. Za prisilno vključitev gumba 'Share' v meniju in naslovni vrstici lahko uporabite nastavitve 'chrome://flags/#sharing-hub-desktop-app-menu' in 'chrome://flags/#sharing-hub-desktop-omnibox'.

- Izvedena je bila prenova v vmesniku nastavitev brskalnika. Vsaka sekcija nastavitev je zdaj prikazana na posebni strani in ne na eni skupni.

- Izvedena je podpora za dinamično posodabljanje dnevnika izdajanih in preklicanih potrdil (Certificate Transparency), ki se zdaj posodablja neodvisno od posodobitve brskalnika.
- Dodana je pomožna stran 'chrome://whats-new' z pregledom vidnih sprememb za uporabnike v novi različici. Stran se samodejno prikaže takoj po posodobitvi ali pa je dostopna preko gumba 'Kaj je novega' (What’s New) v meniju Pomoč (Help). Trenutno so na strani omenjene iskanje po zavihkih, možnost delitve profilov in funkcija spremembe barve ozadja, ki niso specifične za Chrome 94 in so se pojavile v prejšnjih različicah. Prikaz strani trenutno ni vključen za vse uporabnike: za upravljanje aktivacije lahko uporabite nastavitve 'chrome://flags#chrome-whats-new-ui' in 'chrome://flags#chrome-whats-new-in-main-menu-new-badge'.

- Zaradi varnosti je dostop do API WebSQL iz vsebine, naložene iz zunanjih spletnih strani (na primer prek iframe), razglašen za zastarelo. V Chrome 94 se ob poskusu dostopa do WebSQL iz zunanjih skriptov prikaže opozorilo, toda od različice Chrome 97 bodo taki dostopi blokirani. V prihodnosti je načrtovana postopna popolna prekinitev podpore za WebSQL, ne glede na kontekst uporabe. Obdelovalnik WebSQL temelji na kodi SQLite in so ga lahko zlorabili napadalci za izkoriščanje ranljivosti v SQLite.
- Zaradi varnosti in preprečevanja zlonamernih dejavnosti se je začela blokada uporabe zastarelega protokola MK (URL:MK), ki je bil nekoč uporabljen v Internet Explorerju in je omogočal spletnim aplikacijam pridobivanje informacij iz stisnjenih datotek.
- Podpora za sinhronizacijo s starimi različicami Chrome (Chrome 48 in starejše) je prenehala.
- V HTTP-zavihek Permissions-Policy, namenjen vklopu določenih funkcij in upravljanju dostopa do API-jev, je dodana podpora za zastavico "display-capture", ki omogoča upravljanje uporabe API-ja Screen Capture na strani (po privzetku je možnost zajema vsebine zaslona iz zunanjih iframe blokirana).
- V načinu Origin Trials (eksperimentalne možnosti, ki zahtevajo ločeno aktivacijo) so dodani nekateri novi API-ji. Origin Trial pomeni možnost dela z določenim API-jem iz aplikacij, naloženih z localhost ali 127.0.0.1, ali po registraciji in pridobitvi posebnega žetona, ki deluje omejen čas za določeno spletno mesto.
- Dodana je bila API WebGPU, ki nadomešča API WebGL in ponuja sredstva za izvajanje operacij na GPU, kot sta upodabljanje in izračuni. Konceptualno je WebGPU blizu API-jem Vulkan, Metal in Direct3D 12. Konceptualno se WebGPU razlikuje od WebGL približno tako, kot se grafični API Vulkan razlikuje od OpenGL, vendar se ne naslanja na določen grafični API, temveč predstavlja univerzalno plast, ki uporablja iste nizko-nivojske primitive, kot so tiste v Vulkan, Metal in Direct3D 12.
WebGPU omogoča aplikacijam v JavaScriptu nizko-nivojski nadzor nad organizacijo, obdelavo in prenosom ukazov do GPU ter omogoča upravljanje povezanih virov, pomnilnika, predpomnilnikov, objektov tekstur in prevedenih grafičnih shaderjev. Tak pristop omogoča višjo učinkovitost grafičnih aplikacij z zmanjšanjem stroškov in izboljšanjem učinkovitosti dela z GPU. API omogoča tudi ustvarjanje kompleksnih 3D-projektov za splet, ki delujejo enako dobro kot samostojne aplikacije, vendar niso vezane na posebne platforme.
- Za ločene PWA aplikacije je omogočeno registriranje kot obravnavalca URL-jev. Na primer, aplikacija music.example.com se lahko registrira kot obravnavalec URL https://*.music.example.com, kar pomeni, da bodo vsi prehodi iz zunanjih aplikacij, kot so sporočilniki in poštni odjemalci, odprli to PWA aplikacijo, namesto novega zavihka v brskalniku.
- Podprta je nova koda odgovora HTTP — 103, ki se lahko uporablja za proaktivno izhoditev naslovov. Koda 103 omogoča obveščanje odjemalca o vsebini nekaterih HTTP naslovov takoj po poizvedbi, ne da bi čakali, da strežnik izvede vse povezane operacije in začne nalagati vsebino. Na ta način lahko sporočamo namige o povezanih elementih strani, ki jih je mogoče prednaložiti (na primer lahko vključimo povezave do uporabljene CSS in JavaScript). Ko brskalnik prejme informacije o teh virih, začne z nalaganjem, ne da bi čakal na zaključek glavne strani, kar omogoča skrajšanje celotnega časa obdelave poizvedbe.
- Dodana je bila API WebGPU, ki nadomešča API WebGL in ponuja sredstva za izvajanje operacij na GPU, kot sta upodabljanje in izračuni. Konceptualno je WebGPU blizu API-jem Vulkan, Metal in Direct3D 12. Konceptualno se WebGPU razlikuje od WebGL približno tako, kot se grafični API Vulkan razlikuje od OpenGL, vendar se ne naslanja na določen grafični API, temveč predstavlja univerzalno plast, ki uporablja iste nizko-nivojske primitive, kot so tiste v Vulkan, Metal in Direct3D 12.
- Dodana je API WebCodecs za nizkonivojsko obdelavo multimedijskih tokov, ki dopolnjuje visoko nivoje API-je HTMLMediaElement, Media Source Extensions, WebAudio, MediaRecorder in WebRTC. Nov API bi lahko bil potreben na področjih, kot so igralne tokove, uporaba učinkov na strani odjemalca, ponovna kodiranje tokov in podpora za nestandardne multimedijske kontejnerje. Namesto implementacije posameznih kodekov v JavaScript ali WebAssembly, API WebCodecs nudi dostop do že pripravljenih visoko zmogljivih komponent, vgrajenih v brskalnik. V API WebCodecs so vključeni dekodirniki in kodirniki zvoka in videa, dekodirniki slik ter funkcije za delo z enojnimi okvirji videa na nizki ravni.
- Stabilizirani API Insertable Streams omogućava manipulaciju sirovim (raw) multimedijskim streamovima koji se prenose putem API MediaStreamTrack, kao što su podaci s kamere i mikrofona, rezultat snimanja ekrana ili međuslojni podaci dekodera. Za predstavljanje sirovih kadrova koriste se interfejsi WebCodec, a potom se formira stream sličan onome što API WebRTC Insertable Streams generiše na osnovu RTCPeerConnections. Sa praktične tačke gledišta, novi API omogućava stvaranje funkcionalnosti kao što su primena metoda mašinskog učenja za identifikaciju ili anotaciju objekata u stvarnom vremenu ili dodavanje efekata, poput uklanjanja pozadine, pre kodiranja ili nakon dekodiranja dekoderom.
- Stabilizirana metoda scheduler.postTask() koja omogućava upravljanje planiranjem izvršenja zadataka (callback poziva JavaScript-a) s različitim nivoima prioriteta. Dostupna su tri nivoa prioriteta: 1- izvršenje kao prioritet, čak i ako su operacije korisnika blokirane; 2 - dozvoljene su vidljive promene za korisnika; 3 - izvršenje u pozadini). Za promenu prioriteta i otkazivanje zadataka može se koristiti objekat TaskController.
- Stabiliziran i sada se širi van Origin Trials API Idle Detection za određivanje neaktivnosti korisnika. API omogućava utvrđivanje vremena kada korisnik ne interaguje s tastaturom/mišem, kada je pokrenut čuvar ekrana, kada je ekran zaključen ili kada se rad obavlja na drugom monitoru. Informisanje aplikacije o neaktivnosti vrši se slanjem obaveštenja nakon dostizanja zadatog praga neaktivnosti.
- Formalizovan je proces upravljanja bojama u objektima CanvasRenderingContext2D i ImageData, kao i korišćenjem kolor prostora sRGB. Omogućeno je kreiranje objekata CanvasRenderingContext2D i ImageData u kolor prostorima različitim od sRGB, poput Display P3, za korišćenje naprednih mogućnosti savremenih monitora.
- U API VirtualKeyboard dodate su metode i svojstva za upravljanje prikazom i skrivanjem virtualne tastature, kao i za dobijanje informacija o veličini prikazane virtualne tastature.
- V JavaScript-u je omogočena uporaba statičnih inicializacijskih blokov za razvrščanje kode, ki se izvede enkrat ob obdelavi razreda: class C { // Blok se bo izvedel ob obdelavi razreda static { console.log(„C’s static block“); } }
- V lastnostih CSS flex-basis in flex so implementirane ključne besede content, min-content, max-content in fit-content za bolj fleksibilno upravljanje velikosti osnovnega področja Flexbox-a.
- Dodana je lastnost CSS scrollbar-gutter za upravljanje rezervacije prostora na zaslonu pod drsnikom. Na primer, ko drsenje vsebine ni potrebno, lahko razširite izhod in zasedete območje drsnika.
- Dodana je API Samo Profiliranje, ki implementira sistem profiliranja, ki omogoča merjenje časa izvedbe JavaScript-a na strani uporabnika za odpravljanje težav z zmogljivostjo v JavaScript kodi, brez potrebe po ročnem manipuliranju v vmesniku za spletne razvijalce.
- Po odstranitvi Flash dodatka je bilo odločeno, da se vrnejo prazne vrednosti v lastnostih navigator.plugins in navigator.mimeTypes, vendar so se izkazali, da jih nekatera aplikacija uporabljajo za preverjanje prisotnosti dodatkov za prikaz datotek PDF. Ker ima Chrome vgrajen pregledovalnik PDF, bo zdaj lastnosti navigator.plugins in navigator.mimeTypes vračale fiksni seznam standardnih dodatkov in MIME tipov za ogled PDF – „PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer in WebKit built-in PDF“.
- Izboljšana so orodja za spletne razvijalce. Na seznam simulatorjev zaslonov so dodani naprave Nest Hub in Nest Hub Max. V vmesniku za pregledovanje omrežne aktivnosti je dodan gumb za inverzno filtriranje (na primer, ob nastavitvi filtra „status-code: 404“ lahko hitro vidite vse druge poizvedbe), prav tako je omogočen pregled izvirnih vrednosti za Set-Cookie glave (kar omogoča oceno prisotnosti nepravilnih vrednosti, ki se odstranijo pri normalizaciji). Stran s stranskimi orodji v spletnem konzoli je razglašena za zastarano in bo odstranjena v enem od naslednjih izdaj. Dodana je eksperimentalna možnost skrivanje težav na zavihku Issues. V nastavitvah je dodana možnost izbire jezika vmesnika.

Poleg novih funkcij in odpravljanja napak je bila v novi različici popravljena 19 varnostnih ranljivosti. Številne ranljivosti so bile odkrite s pomočjo avtomatiziranih testiranj z orodji, kot so AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer in AFL. Kritične težave, ki bi omogočile obhod vseh plasti zaščite brskalnika in izvajanje kode v sistemu zunaj sandbox okolja, niso bile odkrite. V okviru programa za nagrajevanje odkritij ranljivosti je podjetje Google za to različico podelilo 17 nagrad v skupni višini 56500 ameriških dolarjev (ena nagrada 15000 $, dve nagradi 10000 $, ena nagrada 7500 $, štiri nagrade po 3000 $, dve nagradi 1000 $). Velikost 7 nagrad še ni določena.
Izvor: opennet.ru





