Podjetje Google je predstavilo izdajo spletnega brskalnika Chrome 95. Hkrati je na voljo stabilna različica proste različice Chromium, ki je osnova za Chrome. Brskalnik Chrome se odlikuje po uporabi logotipov Google, sistemu pošiljanja obvestil v primeru zrušitve, modulih za predvajanje zaščitenega video vsebin (DRM), sistemu samodejnega nameščanja posodobitev in prenosu parametrov RLZ pri iskanju. V skladu z novim 4-tedenskim ciklom razvoja je naslednja izdaja Chrome 96 načrtovana za 16. november. Za tiste, ki potrebujete več časa za posodobitev, se ločeno podpira veja Extended Stable, ki traja 8 tednov, v kateri je pripravljena posodobitev za prejšnjo izdajo Chrome 94.
Glavne spremembe v Chrome 95:
- Za uporabnike Linuxa, Windowsa, macOS-a in ChromeOS-a je na voljo nova stranska vrstica, ki se prikazuje desno od vsebine in je aktivirana s klikom na posebni simbol v vrstice naslovov. V vrstici se prikaže povzetek z zaznamki in seznam za branje. To spremembo ne bodo imeli vsi uporabniki, za aktivacijo pa lahko uporabite nastavitev „chrome://flags/#side-panel“.

- Izveden je bil jasen poziv za shranjevanje naslovov, vnesenih v spletnih obrazcih, za nadaljnjo uporabo v sistemu samodejnega izpolnjevanja obrazcev. Pri ugotavljanju prisotnosti naslovov v obrazcih se zdaj uporabniku prikaže pogovorno okno, ki omogoča shranitev naslova, njegovo ureditev, posodobitev prej shranjenega naslova ali zavrnitev shranjevanja.
- Odstranjen je bil koda za podporo protokolu FTP. V Chrome 88 je bila podpora za FTP privzeto onemogočena, vendar je bil obdržan zastavica za njeno ponovno uvedbo.
- Podpora za URL-je z imeni gostiteljev, ki se končajo z številko, vendar ne ustrezajo naslovom IPv4, je bila ukinjena. Na primer, URL-ji „http://127.1/“, „http://foo.127.1/“ in „http://127.0.0.0.1“ bodo zdaj smatrani za nepravilne.
- Za WebAssembly je bila uvedena možnost ustvarjanja obdelovalcev izjem, ki lahko ujameta izvajanje v primeru, ko pride do izjeme pri izvajanju določenega kode. Podpira se tako ujemanje znanih izjem modula WebAssembly kot tudi izjem v procesu klica uvoženih funkcij. Za ujemanje izjem mora biti modul WebAssembly sestavljen s podporo za izjeme, kot je Emscripten.
Obdelava izjem v okolju WebAssembly pomembno zniža velikost generirane kode v primerjavi z obdelavo izjem prek JavaScript. Na primer, zbirka optimizatorja Binaryen z obdelavo izjem prek JavaScript poveča kodo za 43 %, medtem ko to za WebAssembly znaša le 9 %. Poleg tega pri uporabi načina optimizacije „-O3“ koda z obdelavo izjem prek WebAssembly skoraj ne kaznuje zmogljivosti v primerjavi s kodo brez obdelovalcev izjem, medtem ko obdelava izjem prek JavaScript povzroči upočasnitev delovanja za 30 %.
- Skupna raba modulov WebAssembly med različnimi domenami (cross-origin) je prepovedana pri obdelavi enega samega spletnega mesta.
- 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.
- Vključeno je zmanjšanje informacij v HTTP-headers User-Agent in JavaScript parametrih navigator.userAgent, navigator.appVersion in navigator.platform. V glavi so ostale le informacije o imenu brskalnika, glavni različici brskalnika, platformi in tipu naprave (mobilni telefon, računalnik, tablični računalnik). Za pridobitev dodatnih podatkov, kot so natančna različica in razširjeni podatki o platformi, je potrebno uporabiti API User Agent Client Hints. Zmanjšanje User-Agent na sistemih običajnih uporabnikov je načrtovano za izid Chrome 102, ki bo objavljen čez pol leta.
- Predlagana je možnost ustvarjanja dostopnih descriptorjev (Access Handles) za API File System Access, ki omogoča spletnim aplikacijam, da berejo in zapisujejo podatke neposredno v datoteke in mape na napravi uporabnika. Za zmanjšanje načinov dostopa spletnih aplikacij do datotečnega sistema načrtuje podjetje Google združitev API File System Access in Storage Foundation. Kot pripravljalni korak za to združitev je predlagana podpora dostopnim descriptorjem, ki dopolnjuje metode dela na podlagi datotečnih descriptorjev z razširjenimi možnostmi, kot so omogočanje zaklepanja zapisa za druge procese in ustvarjanje ločenih tokov za zapis in branje, vključno s podporo za branje in zapis iz worker-jev v sinhronem načinu.
- API Secure Payment Confirmation został ustabilizowany i oferowany domyślnie wraz z nową funkcjonalnością ‚payment’, która zapewnia dodatkowe potwierdzenie dokonywanej transakcji płatniczej. Strona weryfikująca, na przykład bank, ma możliwość wygenerowania otwartego klucza PublicKeyCredential, który może być zażądany przez sprzedawcę dla dodatkowego bezpiecznego potwierdzenia płatności poprzez API Payment Request, używając metody płatności ‚secure-payment-confirmation’.
- W wywołaniach callback, ustanowionych za pomocą konstruktora PerformanceObserver, wprowadzono przekazywanie właściwości droppedEntriesCount, co pozwala zrozumieć, ile metryk wydajności strony zostało odrzuconych z powodu braku miejsca w dostarczonym buforze.
- Dodano API EyeDropper, które pozwala na wywołanie interfejsu oferowanego przez przeglądarkę do określenia koloru dowolnych pikseli na ekranie, co może być używane, na przykład, w edytorach graficznych zrealizowanych jako aplikacje webowe. const eyeDropper = new EyeDropper(); const result = await eyeDropper.open(); // result = {sRGBHex: ‘#160731’}
- Dodano funkcję self.reportError(), która umożliwia skryptom wyświetlanie błędów w konsoli, emulując wystąpienie nieprzechwytywanego wyjątku.
- Dodano API URLPattern, służące do sprawdzania, czy URL odpowiada określonemu wzorowi, co może być wykorzystywane na przykład do analizy linków i przekierowywania żądań do obsługi w service workerze. const p = new URLPattern({ protocol: ‘https’, hostname: ‘example.com’, pathname: ‘/:folder/*/:fileName.jpg’, });
- Rozszerzono API Intl.DisplayNames, dzięki któremu można uzyskać zlokalizowane nazwy języków, krajów, walut, elementów dat itp. W nowej wersji dodano nowe typy nazw ‚calendar’ i ‚dateTimeField’, dzięki którym można poznać zlokalizowane nazwy kalendarzy oraz pól daty i czasu (na przykład nazwy miesięcy). Dla typu ‚language’ dodano wsparcie dla dialektów języków.
- W API Intl.DateTimeFormat dodano wsparcie dla nowych wartości parametru timeZoneName: ‚shortGeneric’ dla wyświetlenia krótkiego identyfikatora strefy czasowej (na przykład ‚PT’, ‚ET’), ‚longGeneric’ — długiego (‚Pacific Time’, ‚Mountain Time’), ‚shortOffset’ — z krótkim przesunięciem względem GMT (‚GMT+5’) oraz ‚longOffset’ z długim przesunięciem względem GMT (‚GMT+0500’).
- API U2F (Cryptotoken) je označen za zastarjeli, umjesto kojeg se treba koristiti API Web Authentication. API U2F će po defaultu biti onemogućen u izdanju Chrome 98, a u potpunosti će biti uklonjen u Chrome 104.
- Unaprijeđeni su alati za web-razvoj. U panelu Styles pojednostavljena je prilagodba CSS svojstava povezanih s veličinom (height, padding itd.). U kartici Issues dodana je mogućnost skrivenja pojedinačnih problema. U web-konzoli te panelima Sources i Properties poboljšano je prikazivanje svojstava (vlastita svojstva sada su istaknuta podebljano i prikazana na vrhu popisa).

Osim novih funkcija i ispravki grešaka, nova verzija uklanja 19 sigurnosnih ranjivosti. Mnoge ranjivosti otkrivene su automatiziranim testiranjem alatima AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer i AFL. Nisu otkrivene kritične probleme koje bi omogućile zaobilaženje svih nivoa zaštite preglednika i izvršenje koda van sandbox okruženja. U okviru programa isplata nagrada za otkrivanje ranjivosti, kompanija Google je za ovo izdanje isplatila 16 nagrada ukupne vrijednosti 74.000 dolara (jedna nagrada od 20.000 dolara, dvije nagrade od 10.000 dolara, jedna nagrada od 7.500 dolara, jedna nagrada od 6.000 dolara, tri nagrade od 5.000 dolara i jedna nagrada od 3.000, 2.000 i 1.000 dolara). Iznos 5 nagrada još nije definiran.
Izvor: opennet.ru


