Uzņēmums Google ir laidis klajā web pārlūkprogrammas Chrome 94 versiju. Tajā pašā laikā ir pieejams stabils brīvā projekta Chromium izlaišana, kas kalpo par bāzi Chrome. Pārlūkprogramma Chrome atšķiras ar Google logotipu izmantošanu, avārijas gadījumā aktīvo paziņošanas sistēmu, moduļiem, kas atbalsta aizsargāto videokontentu (DRM), automātiskās atjaunināšanas sistēmu un RLZ parametrus meklēšanas laikā. Nākamais Chrome 95 izlaišanas datums ir plānots 19. oktobrī.
Sākot ar Chrome 94 izlaišanu, izstrāde ir pārcelta uz jaunu versiju izstrādes ciklu. Jauni nozīmīgi laidieni turpmāk tiks publicēti reizi 4 nedēļās, nevis reizi 6 nedēļās, kas paātrinās jauno iespēju pārsniegšanu lietotājiem. Tiek atzīmēts, ka izlaidumu sagatavošanas procesa optimizācija un testēšanas sistēmas uzlabošana ļauj veidot izlaidumus biežāk, bez kvalitātes zuduma. Uzņēmumiem un tiem, kam nepieciešams vairāk laika atjaunināšanai, reizi 8 nedēļās atsevišķi tiks izlaista Extended Stable versija, kas ļaus pāriet uz jaunajām funkcionalitātes versijām nevis reizi 4 nedēļās, bet reizi 8 nedēļās.
Galvenās izmaiņas Chrome 94:
- Ir pievienots HTTPS-First režīms, kas atgādina iepriekšējā Firefox parādīto HTTPS Only režīmu. Ja režīms ir aktivizēts iestatījumos, mēģinot atvērt resursu bez šifrēšanas ar HTTP, pārlūkprogramma vispirms centīsies piekļūt vietnei, izmantojot HTTPS, un, ja mēģinājums neizdosies, lietotājam tiks parādīts brīdinājums par HTTPS neatbalstīšanu un piedāvāts atvērt vietni bez šifrēšanas. Nākotnē Google apsver iespēju aktivizēt HTTPS-First pēc noklusējuma visiem lietotājiem, ierobežojot piekļuvi dažām tīmekļa platformas iespējām lapām, kas atvērtas ar HTTP, un pievienojot papildu brīdinājumus, informējot lietotājus par apdraudējumiem, kas rodas, piekļūstot vietnēm bez šifrēšanas. Režīmu var aktivizēt sadaļā iestatījumi “Privātums un drošība” > “Drošība” > “Papildu”.

- Lappusēm, kas atvērtas bez HTTPS, ir aizliegts sūtīt pieprasījumus (ielādēt resursus) uz lokālajiem URL (piemēram, “http://router.local” un localhost) un iekšējiem adresu diapazoniem (127.0.0.0/8, 192.168.0.0/16, 10.0.0.0/8 utt.). Izņēmums izdarīts tikai lappusēm, kas ielādētas ar serveriem, kas izmanto iekšējās IP. Piemēram, lapa, kas ielādēta no serveris 1.2.3.4, varēs piekļūt resursam, kas izvietots IP 192.168.0.1 vai IP 127.0.0.1, bet, ja tā būs ielādēta no servera 192.168.1.1 — varēs. Izmaiņa ievieš papildu aizsardzību pret ekspluatācijas riskiem, kas saistīti ar pārvaldītājiem, kas pieņem pieprasījumus no lokālajiem IP, kā arī palīdzēs aizsargāt pret uzbrukumiem, kas saistīti ar «DNS rebinding».
- Pievienota funkcija «Sharing Hub», kas ļauj ātri dalīties ar citiem lietotājiem ar pašreizējās lapas saiti. Ir iespēja ģenerēt QR kodu ar URL, saglabāt lapu, sūtīt saiti uz citu ierīci, kas saistīta ar lietotāja kontu, un nodot saiti uz trešajām vietnēm, piemēram, Facebook, WhatsApp, Twitter un VK. Iespēja šobrīd vēl nav pieejama visiem lietotājiem. Lai piespiedu kārtā aktivizētu pogu «Share» izvēlnē un adreses joslā, var izmantot iestatījumus «chrome://flags/#sharing-hub-desktop-app-menu» un «chrome://flags/#sharing-hub-desktop-omnibox».

- Tika veikta restrukturizācija pārlūka iestatījumu saskarnē. Katrs iestatījumu segments tagad tiek parādīts atsevišķā lapā, nevis kopējā.

- Ieviesta dinamiskā sertifikātu izdošanas un atsaukšanas reģistra (Certificate Transparency) atbalsta sistēma, kas tagad tiks atjaunināta neatkarīgi no pārlūka atjauninājuma.
- Pievienota servisa lapa «chrome://whats-new» ar pārskatu par lietotājam redzamajām izmaiņām jaunajā laidienā. Lapa tiek rādīta automātiski tūlīt pēc atjaunināšanas vai ir pieejama, noklikšķinot uz pogas «Kas jauns» (What’s New) izvēlnē Palīdzība (Help). Pašreizējā lapa piemin meklēšanu cilnēs, profilu sadalīšanu un fona krāsas maiņas funkciju, kas nav specifiska Chrome 94 un ir parādījusies iepriekšējos laidienos. Lapas attēlošana šobrīd nav pieejama visiem lietotājiem: aktivizācijas vadībai var izmantot iestatījumus «chrome://flags#chrome-whats-new-ui» un «chrome://flags#chrome-whats-new-in-main-menu-new-badge».

- Tika ir paziņots, ka WebSQL API izsaukumi no saturam, kas ielādēts no trešajām pusēm (piemēram, izmantojot iframe), tiks atzīti par novecojušiem. Chrome 94 brīdina par WebSQL izsaukumiem no ārējiem skriptiem, bet kopš Chrome 97 šādi pieprasījumi tiks bloķēti. Nākotnē ir plānots pakāpeniski pilnībā pārtraukt WebSQL atbalstu neatkarīgi no lietojuma konteksta. WebSQL apstrādātājs balstās uz SQLite kodu, kas varēja tikt izmantots ļaunprātīgu lietotāju, lai izmantotu SQLite ievainojamības.
- Lai nodrošinātu drošību un novērstu ļaunprātīgu darbību, ir uzsākta novecojušā protokola MK (URL:MK) bloķēšana, kas kādreiz tika izmantots Internet Explorer un ļāva tīmekļa lietotnēm iegūt informāciju no saspiestiem failiem.
- Atbalsts sinhronizācijai ar vecākām Chrome versijām (Chrome 48 un vecākām) ir pārtraukts.
- HTTP galvenē Permissions-Policy, kas domāta noteiktu iespēju aktivizēšanai un API piekļuves pārvaldīšanai, ir pievienota atbalsta karogs «display-capture», ļaujot kontrolēt API Screen Capture izmantošanu lapā (pēc noklusējuma ekrāna satura uzņemšanas iespēja no ārējiem iframe ir bloķēta).
- Origin Trials režīmā (eksperimentālās iespējas, kas prasa atsevišķu aktivāciju) pievienoti vairāki jauni API. Origin Trial nozīmē iespēju strādāt ar norādīto API no lietotnēm, kas ielādētas no localhost vai 127.0.0.1, vai pēc reģistrācijas un īpaša tokena saņemšanas, kas darbojas ierobežotu laiku konkrētai vietnei.
- Ir pievienots WebGPU API, kas aizstāj WebGL API un nodrošina līdzekļus GPU operāciju veikšanai, piemēram, renderēšanai un aprēķiniem. Konceptuāli WebGPU ir tuvs Vulkan, Metal un Direct3D 12 API. WebGPU konceptuāli atšķiras no WebGL tādā pašā veidā, kā Vulkan grafikas API atšķiras no OpenGL, bet tas nebalstās uz konkrētu grafikas API, bet ir universāla saskarne, kas izmanto tos pašus zemāka līmeņa primitivus, kas pieejami Vulkan, Metal un Direct3D 12.
WebGPU nodrošina JavaScript lietojumprogrammām zema līmeņa kontroli pār komandu organizāciju, apstrādi un nosūtīšanu uz GPU, kā arī ļauj pārvaldīt saistītos resursus, atmiņu, buferus, tekstūru objektus un kompilētus grafiskos šēderus. Šāds piegājiens ļauj panākt augstāku grafisko lietojumprogrammu veiktspēju, samazinot izmaksas un palielinot efektivitāti darbā ar GPU. API arī ļauj izstrādāt sarežģītus 3D projektus Web, kas darbojas ne sliktāk kā atsevišķas programmas, bet nav saistītas ar konkrētām platformām.
- Izolētiem PWA lietotnēm ieviesta iespēja reģistrēties kā URL apstrādātāji. Piemēram, lietotne music.example.com var reģistrēt sevi kā apstrādātāju URL https://*.music.example.com, un visi pārejas no ārējām lietotnēm ar šiem saites href atvērs attiecīgās PWA lietotnes, nevis jaunu pārlūkprogrammas cilni.
- Ieviests jauna HTTP atbildes koda – 103 – atbalsts, ko var izmantot, lai iepriekšēji izvadītu virsrakstus. Kods 103 ļauj informēt klientu par noteiktu HTTP virsrakstu saturu tūlīt pēc pieprasījuma, negaidot, kamēr serveris veic visas ar pieprasījumu saistītās operācijas un sāk sniegt saturu. Līdzīgi var sniegt norādes par saistītajiem elementiem, kas var tikt iepriekš ielādēti (piemēram, var norādīt saites uz lapā izmantotajām CSS un JavaScript). Iegūstot informāciju par šiem resursiem, pārlūkprogramma sāks to ielādi, negaidot galvenās lapas pabeigšanu, kas ļauj samazināt kopējo pieprasījuma apstrādes laiku.
- Ir pievienots WebGPU API, kas aizstāj WebGL API un nodrošina līdzekļus GPU operāciju veikšanai, piemēram, renderēšanai un aprēķiniem. Konceptuāli WebGPU ir tuvs Vulkan, Metal un Direct3D 12 API. WebGPU konceptuāli atšķiras no WebGL tādā pašā veidā, kā Vulkan grafikas API atšķiras no OpenGL, bet tas nebalstās uz konkrētu grafikas API, bet ir universāla saskarne, kas izmanto tos pašus zemāka līmeņa primitivus, kas pieejami Vulkan, Metal un Direct3D 12.
- Pievienots WebCodecs API, lai manipulētu ar multivides straumēm zema līmeņa, papildinot augstākā līmeņa HTMLMediaElement, Media Source Extensions, WebAudio, MediaRecorder un WebRTC API. Jaunais API var būt pieprasīts tādās jomās kā spēļu straumēšana, efektu piemērošana puses klienta, straumju pārvēršana un nestandarta multivides konteineru atbalsts. Tā vietā, lai īstenotu atsevišķus kodekus JavaScript vai WebAssembly, WebCodecs API nodrošina piekļuvi gataviem augstas veiktspējas komponentiem, kas ir iebūvēti pārlūkprogrammā. Īpaši WebCodecs API ietver skaņas un video dekoderus un kodētājus, attēlu dekoderus un funkcijas, lai strādātu ar atsevišķiem video kadriem zema līmeņa.
- Stabilizēts Insertable Streams API, kas dod iespēju manipulēt ar neapstrādātām (raw) multivides straumēm, kas tiek nodotas caur MediaStreamTrack API, piemēram, dati no kamerām un mikrofoniem, ekrāna ieraksta rezultāts vai dekodera kodēšanas starpkadri. Neapstrādāto kadru attēlošanai tiek izmantoti WebCodec interfeisi, pēc tam veidojot straumi, kas ir līdzīga tam, ko WebRTC Insertable Streams API ģenerē, pamatojoties uz RTCPeerConnections. Praktiskā pusē jaunais API ļauj īstenot tādu funkcionalitāti kā mašīnmācīšanās metožu piemērošanu objektu identifikācijai vai anotēšanai reālā laikā vai efektu pievienošanu, piemēram, fona izgriešanu, pirms kodēšanas vai pēc dekodēšanas ar kodeku.
- Ir stabilizēta metode scheduler.postTask(), kas ļauj pārvaldīt uzdevumu izpildes plānošanu (JavaScript atpakaļsaukt) ar dažādiem prioritātes līmeņiem. Ir trīs prioritātes līmeņi: 1 - izpilde kā pirmā, pat ja var tikt bloķētas lietotāja darbības; 2 - atļautas lietotājam redzamas izmaiņas; 3 - izpilde fona režīmā). Prioritātes maiņai un uzdevumu atcelšanai var izmantot objektu TaskController.
- Ir stabilizēts un tagad tiek izplatīts ārpus Origin Trials API Idle Detection, lai noteiktu lietotāja neaktivitāti. API ļauj noteikt laiku, kad lietotājs neinteraktē ar klaviatūru/peli, ir palaists ekrānsaudzētājs, ekrāns ir bloķēts vai darbs tiek veikts citā monitorā. Par lietotāja neaktivitāti lietojumprogrammu informē, nosūtot paziņojumu pēc noteikta neaktivitātes sliekšņa sasniegšanas.
- Ir formalizēts krāsu pārvaldības process objektiem CanvasRenderingContext2D un ImageData, kā arī sRGB krāsu telpas izmantošana. Ir nodrošināta iespēja izveidot objektus CanvasRenderingContext2D un ImageData krāsu telpās, kas atšķiras no sRGB, piemēram, Display P3, lai izmantotu mūsdienu monitoru uzlabotās iespējas.
- API VirtualKeyboard ir pievienotas metodes un īpašības, lai pārvaldītu virtuālās klaviatūras parādīšanu un slēgšanu, kā arī lai iegūtu informāciju par parādītās virtuālās klaviatūras izmēriem.
- JavaScript klasēm ir nodrošināta iespēja piemērot statiskus inicializācijas blokos, lai grupētu kodu, kas tiek izpildīts vienu reizi, apstrādājot klasi: class C { // Bloks tiks izpildīts, apstrādājot pašu klasi static { console.log(«C’s static block»); } }
- CSS īpašībās flex-basis un flex ir ieviesti atslēgvārdi content, min-content, max-content un fit-content, lai nodrošinātu elastīgāku galvenās Flexbox zonas izmēra pārvaldību.
- Pievienots CSS īpašums scrollbar-gutter, lai kontrolētu ekrāna vietas rezervēšanu ritināšanas joslai. Piemēram, ja nav nepieciešama satura ritināšana, var paplašināt izvadi un aizņemt ritināšanas joslas laukumu.
- Ir pievienots API Self Profiling ar profiliem, kas ļauj izmērīt JavaScript izpildes laiku lietotāja pusē, lai atkļūdotu veiktspējas problēmas JavaScript kodā, nesadarbojoties ar manuālām manipulācijām interfeisā web izstrādātājiem.
- Pēc Flash spraudņa izdzēšanas tika nolemts atgriezt tukšas vērtības īpašībās navigator.plugins un navigator.mimeTypes, taču izrādījās, ka daži lietojumi tās izmantoja, lai pārbaudītu spraudņu pieejamību PDF failu attēlošanai. Tā kā Chrome ir iebūvēts PDF skatītājs, tagad īpašības navigator.plugins un navigator.mimeTypes atgriezīs noteiktu standarta spraudņu un MIME tipu sarakstu PDF skatīšanai — «PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer un WebKit built-in PDF».
- Ir ieviesti uzlabojumi tīmekļa izstrādātāju rīkos. Sarakstam par ekrānu simulēšanu pievienoti Nest Hub un Nest Hub Max ierīces. Tīkla aktivitātes izpētes interfeisā ir pievienota poga filtrēšanas inversēšanai (piemēram, iestatot filtru «status-code: 404», var ātri apskatīt visus pārējos pieprasījumus), kā arī ir sniegta iespēja skatīt sākotnējās Set-Cookie virsrakstu vērtības (ļauj novērtēt, vai ir nepilnīgas vērtības, kas tiek noņemtas normalizācijas laikā). Ir pasludināts par novecojušu un tiks izņemts vienā no nākamajām versijām, sānu panelis tīmekļa konsolē. Pievienota eksperimentāla iespēja slēpt problēmas, cilnē Issues. Iestatījumos ir pievienota iespēja izvēlēties interfeisa valodu.

Papildus jauninājumiem un kļūdu labojumiem jaunajā versijā ir novērstas 19 ievainojamības. Daudzas no ievainojamībām tika atklātas, automatizējot testēšanu ar AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer un AFL rīkiem. Kritiskas problēmas, kas ļautu apiet visus pārlūkprogrammas aizsardzības līmeņus un izpildīt kodu sistēmā ārpus sandbox vides, nav identificētas. Ņemot vērā atklājamo ievainojamību atlīdzību programmu, pašreizējā laidiena ietvaros uzņēmums Google ir izmaksājis 17 atlīdzības, kuru kopējā summa ir 56500 USD (viena premija $15000, divas premijas $10000, viena premija $7500, četras premijas $3000, divas premijas $1000). 7 atlīdzību apjoms vēl nav noteikts.
Avots: opennet.lv





