Tvrtka Google predstavila je izdanje web preglednika Chrome 99. Istovremeno je dostupan stabilni izdanjski slobodni projekt Chromium, koji čini osnovu Chromea. Preglednik Chrome se ističe korištenjem logotipa Google, sustavom slanja obavijesti u slučaju pada, modulima za reprodukciju videoin sadržaja zaštićenog od kopiranja (DRM), sustavom automatske instalacije ažuriranja i prijenosom RLZ parametara tijekom pretraživanja. Sljedeće izdanje Chrome 100 planirano je za 29. ožujka.
Glavne promjene u Chromeu 99:
- U Chromeu za Android uključeno je korištenje mehanizma Certificate Transparency, koji osigurava vođenje neovisnog javnog dnevnika svih izdanih i opozvanih certifikata. Javni dnevnik omogućava provođenje neovisne revizije svih promjena i radnji certifikacijskih tijela, te će odmah pratiti bilo kakve pokušaje skrivene izrade lažnih zapisa. Certifikati koji nisu prikazani u Certificate Transparency automatski će biti odbijeni od strane preglednika, uz prikaz odgovarajuće pogreške. Ranije spomenuti mehanizam bio je uključen samo za verziju za stolna računala i za mali postotak korisnika Androida.
- Zbog velikog broja pritužbi onemogućen je ranije predloženi mehanizam Private Network Access u testnom režimu, koji je bio usmjeren na jačanje zaštite od napada povezanih s pristupom resursima u lokalnoj mreži ili na korisničkom računalu (localhost) putem skripti učitanih prilikom otvaranja web stranice. Za zaštitu od takvih napada u slučaju pristupa bilo kojim podresursima unutar mreže, predloženo je slanje izričitog zahtjeva za dopuštenje za učitavanje takvih podresursa. Google će revidirati implementaciju u skladu s dobivenim povratnim informacijama i u jednom od budućih izdanja ponuditi poboljšanu verziju.
- Vraćena je mogućnost uklanjanja predloženih zadanih pretraživača. Podsjetimo, od Chromea 97 u konfiguratoru u odjeljku "Upravljanje pretraživačima" (chrome://settings/searchEngines) prestala je mogućnost uklanjanja stavki iz popisa zadanih pretraživača (Google, Bing, Yahoo) i uređivanja parametara pretraživača, što je izazvalo nezadovoljstvo mnogih korisnika.
- Na platformi Windows omogućeno je uklanjanje samodostatnih web aplikacija (PWA, Progressive Web App) putem sistemskih postavki ili upravljačka ploča na sličan način kao uklanjanje Windows aplikacija.
- Održava se završno testiranje mogućeg prekida rada web stranica nakon što preglednik dosegne verziju koja se sastoji od tri znamenke umjesto dvije (u svoje vrijeme, nakon izlaska Chrome 10, nastalo je mnogo problema u bibliotekama parsiranja User-Agent). Kada je opcija „chrome://flags#force-major-version-to-100” aktivirana, u zaglavlju User-Agent počinje se prikazivati verzija 100.
- U CSS-u je uvedena podrška za kaskadne slojeve, postavljene uz pravilo @layer i uvezene putem CSS pravila @import, koristeći funkciju layer(). CSS pravila unutar jednog kaskadnog sloja se kaskadiraju zajedno, pojednostavljujući upravljanje cijelim kaskadama, pružajući fleksibilne mogućnosti za promjenu redoslijeda slojeva i omogućujući izravnije upravljanje CSS datotekama, sprječavajući nastanak sukoba. Kaskadni slojevi su praktični za korištenje tema dizajna, definiranje stilova elemenata prema zadanim postavkama i iznošenje dizajna komponenti u vanjske biblioteke.
- U klasu HTMLInputElement dodana je metoda showPicker(), koja omogućuje prikaz spremnih dijaloga za unos standardnih vrijednosti u poljima s tipovima „date”, „month”, „week”, „time”, „datetime-local”, „color” i „file”, kao i za polja koja podržavaju automatsko popunjavanje (autofill) i izbor iz liste (datalist). Na primjer, može se prikazati sučelje u obliku kalendara za odabir datuma ili paleta za unos boje.

- U režimu Origin Trials (eksperimentalne mogućnosti koje zahtijevaju posebnu aktivaciju) implementirana je mogućnost uključivanja tamnog režima dizajna za web aplikacije. Boje i pozadina za tamnu temu biraju se pomoću novog polja color_scheme_dark u datoteci s manifestom web aplikacije. Origin Trial podrazumijeva mogućnost rada s navedenim API-jem iz aplikacija učitanih s localhost ili 127.0.0.1, ili nakon registracije i dobivanja posebnog tokena koji vrijedi ograničeno vrijeme za određenu web stranicu.
- Stabiliziran je i ponuđen svima koji žele API za prepoznavanje rukopisnog pisanja, koji omogućuje korištenje usluga prepoznavanja rukopisnog unosa koje pruža operacijski sustav.
- Za instalirana izolirana web-aplikacija (PWA, Progressive Web App), stabilizirana je komponenta Window Controls Overlay koja proširuje ekran područje aplikacije na cijeli prozor, uključujući područje zaglavlja, na koje se preklapaju standardne tipke za upravljanje prozorom (zatvaranje, minimizacija, maksimizacija). Web-aplikacija može upravljati crtanjem i obradom unosa po cijelom prozoru, osim preklapajućeg bloka s tipkama za upravljanje prozorom.
- U CSS-funkciji calc() dopuštene su vrijednosti "infinity", "-infinity" i "NaN" ili izrazi koji dovode do sličnih vrijednosti, na primjer, 'calc(1/0)'.
- U CSS-svojstvu color-scheme, koje definira u kojim se bojama može ispravno prikazati element ("light", "dark", "day mode" i "night mode"), dodana je opcija "only", koja omogućuje isključenje prisilne promjene sheme boja za određene HTML-elemente. Na primjer, ako navedete "div { color-scheme: only light }", za element div koristit će se samo svijetla tema, čak i ako je u pregledniku prisilno uključena tamna tema.
- Za promjenu vrijednosti svojstva document.adoptedStyleSheets sada se mogu primijeniti operacije push() i pop() umjesto potpunog prebacivanja svojstva. Na primjer, "document.adoptedStyleSheets.push(newSheet);".
- Implementaciji sučelja CanvasRenderingContext2D dodana je podrška za događaje ContextLost i ContextRestored, metod reset(), opcije "willReadFrequently", CSS-modifikatore teksta, primitiv za crtanje roundRect i konusne gradijente. Poboljšana je podrška za SVG filtre.
- UKLONJEN je prefiks "-webkit-" za svojstva "text-emphasis", "text-emphasis-color", "text-emphasis-position" i "text-emphasis-style".
- Za stranice otvorene bez HTTPS-a zabranjen je pristup API-ju Battery Status, koji omogućuje dobivanje informacija o punjenju baterije.
- U metodi navigator.getGamepads() osigurano je vraćanje niza objekata Gamepad umjesto GamepadList. GamepadList više nije podržan u Chrome-u, što je u skladu s zahtjevom standarda i ponašanjem Gecko i Webkit motora.
- API WebCodecs usklađen je sa specifikacijom. Konkretno, promijenjene su metode EncodedVideoChunkOutputCallback() i konstruktor VideoFrame().
- U JavaScript engine V8, API Intl.Locale dodala je nove svojstva calendars, collations, hourCycles, numberingSystems, timeZones, textInfo i weekInfo, koja pružaju informacije o podržanim kalendarima, vremenskim zonama i parametrima vremena i teksta. const arabicEgyptLocale = new Intl.Locale(‘ar-EG’) // ar-EG arabicEgyptLocale.calendars // [‘gregory’, ‘coptic’, ‘islamic’, ‘islamic-civil’, ‘islamic-tbla’] arabicEgyptLocale.collations // [‘compat’, ’emoji’, ‘eor’] arabicEgyptLocale.hourCycles // [‘h12’] arabicEgyptLocale.numberingSystems // [‘arab’] arabicEgyptLocale.timeZones // [‘Africa/Cairo’] arabicEgyptLocale.textInfo // { direction: ‘rtl’ } japaneseLocale.textInfo // { direction: ‘ltr’ } chineseTaiwanLocale.textInfo // { direction: ‘ltr’ }
- Dodana je funkcija Intl.supportedValuesOf(code), koja vraća niz podržanih identifikatora za API Intl za svojstva calendar, collation, currency, numberingSystem, timeZone i unit. Intl.supportedValuesOf(‘unit’) // [‘acre’, ‘bit’, ‘byte’, ‘celsius’, ‘centimeter’, …]
- Unapređeni su alati za web programere. U mrežnoj konzoli pružena je mogućnost usporavanja WebSocket zahtjeva radi debagiranja u uvjetima sporih mrežnih veza. U karticu „Application“ dodana je ploča za praćenje izvješća generiranih putem API Reporting. U panelu Recorder implementirana je podrška čekanja pre reprodukcije snimljene komande dok element ne postane vidljiv ili dostupan za klik. P pojednostavljena je emulacija tamne teme. Poboljšano je upravljanje panelima s dodirnim ekranima. U web konzolu dodana je podrška za escape sekvence za isticanje teksta bojom, dodana je podrška za zamjenske maske %s, %d, %i i %f, poboljšan je rad filtara poruka.

Osim novih mogućnosti i ispravki grešaka, nova verzija ispravila je 28 ranjivosti. Mnoge od ranjivosti otkrivene su uslijed automatiziranog testiranja alatima AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer i AFL. Kritične probleme koji omogućuju zaobilaženje svih razina zaštite preglednika i izvršavanje koda u sustavu izvan sandbox okruženja nisu otkriveni. U okviru programa isplata novčanih nagrada za otkrivanje ranjivosti, za ovo izdanje tvrtka Google isplatila je 21 nagradu u iznosu od 96 tisuća američkih dolara (jedna nagrada od $15000, dvije nagrade od $10000, šest nagrada od $7000, dvije nagrade od $5000, dvije nagrade od $3000 i po jedna nagrada od $2000 i $1000.
Izvor: opennet.ru


