Kompania Google prezantoi lëshimin e shfletuesit web Chrome 101. Ndërkohë, është në dispozicion një version i qëndrueshëm i projektit të hapur Chromium, i cili përbën bazën e Chrome. Shfletuesi Chrome dallon nga Chromium për përdorimin e logove të Google, sistemin e dërgimit të njoftimeve në rast crash, modul për riprodhimin e përmbajtjes video të mbrojtur nga kopjimi (DRM), sistemin e automatik të instalimit të azhurnimeve, aktivizimin e vazhdueshëm të Sandbox-isolimit, ofrimin e çelësave për Google API dhe transmetimin e parametrave RLZ gjatë kërkimeve. Për ata që kanë nevojë për më shumë kohë për azhurnim, mbështetet një degë e veçantë Extended Stable, që shoqërohet për 8 javë, në të cilën është formuar një azhurnim për lëshimin e kaluar Chrome 100. Lëshimi i ardhshëm i Chrome 102 është planifikuar për 24 maj.
Ndryshimet kryesore në Chrome 101:
- Është shtuar funksioni Side Search, që ofron mundësinë për të parë rezultatet e kërkimit në panelin anësor njëkohësisht me shikimin e një faqe tjetër (në një dritare njëkohësisht mund të shikoni si përmbajtjen e faqes ashtu edhe rezultatin e kërkimit). Pas kalimit në një faqe nga faqja e rezultateve të kërkimit në Google, para fushës së hyrjes në shiritin e adresës shfaqet një ikonë me shkronjën «G», e cila, duke klikuar mbi të, hap panelin anësor me rezultatet e kërkimit të mëparshëm. Nga parazgjedhja funksioni nuk është aktivizuar në të gjitha sistemet, për t'u aktivizuar mund të përdorni cilësimin «chrome://flags/#side-search».

- Në shiritin e adresës Omnibox është zbatuar para-renderimi (prerendering) i përmbajtjes së rekomandimeve, që ofrohen ndërsa shkruhet. Më parë, për të përshpejtuar kalimin nga shiritin e adresës, rekomandimet më të mundshme për kalim shkarkoheshin pa pritur klikimin e përdoruesit, duke përdorur thirrjen Prefetch. Tani, përveç shkarkimit, ato gjithashtu para-renderohen në memorie (në përfshirje ekzekutohen skenarët dhe formohet struktura DOM), duke mundësuar që rekomandimet të shfaqen menjëherë pas klikimit. Për menaxhimin e para-renderimit janë propozuar cilësimet «chrome://flags/#enable-prerender2», «chrome://flags/#omnibox-trigger-for-prerender2» dhe «chrome://flags/#search-suggestion-for-prerender2».
- Informacioni në HTTP-headin User-Agent dhe parametrat JavaScript navigator.userAgent, navigator.appVersion dhe navigator.platform janë reduktuar. Në heading janë lënë vetëm informacionet mbi emrin e shfletuesit, versionin e rëndësishëm të shfletuesit (komponentët e versionit MINOR.BUILD.PATCH janë zëvendësuar me 0.0.0), platformën dhe llojin e pajisjes (telefon mobil, PC, tabletë). Për të marrë të dhëna të tjera, si versioni i saktë dhe të dhëna të avancuara mbi platformën, është e nevojshme të përdoret API User Agent Client Hints. Për sa i përket faqeve që nuk kanë nevojë për informacion të ri dhe që ende nuk janë gati të kalojnë në User Agent Client Hints, deri në maj 2023 është ofruar mundësia e kthimit të plotë të User-Agent.
- Kushtet e funksionit setTimeout janë ndryshuar kur kalon një argument zero që përcakton vonesën e thirrjes. Duke filluar me Chrome 101, me specifikimin "setTimeout(…, 0)" kodi do të thirret menjëherë, pa vonesë prej 1ms, siç kërkon specifikata. Për thirrje të ripërsëritura të brendshme setTimeout, aplikohet një vonesë prej 4ms.
- Në versionin për platformën Android është implementuar mbështetje për kërkesën e autorizimeve për dërgimin e njoftimeve (në Android 13 për të shfaqur njoftime, aplikacioni duhet të ketë autorizimin "POST_NOTIFICATIONS", përndryshe dërgimi i njoftimeve do të bllokohet). Kur Chrome hapet në mjedisin Android 13, shfletuesi tani do të shfaqë kërkesën për marrjen e autorizimeve për dërgimin e njoftimeve.
- Ka ndodhur heqja e mundësisë për të përdorur API WebSQL në skriptet e palëve të treta. Në mënyrë të paracaktuar, bllokimi i WebSQL në skriptet e shkarkuara nga vende që nuk janë aktuale, ishte aktivizuar në Chrome 97, por ishte lënë një mundësi për të çaktivizuar këtë sjellje. Në Chrome 101 kjo mundësi është hequr. Në të ardhmen planifikohet që mbështetja për WebSQL të pezullohet gradualisht, pavarësisht kontekstit të përdorimit. Në vend të WebSQL rekomandohet përdorimi i API-së Web Storage dhe Indexed Database. Menaxhuesi WebSQL është i bazuar në kodin SQLite dhe mund të ishte përdorur nga sulmuesit për të shfrytëzuar dobësitë në SQLite.
- Emrat e politikave për ndërmarrjet (chrome://policy) që përmbajnë terma jo-inkluzivë janë hequr. Duke filluar me Chrome 86, për politikat e specifikuara janë ofruar zëvendësime që përdorin terminologji inkluzive. Është bërë pastrimi i terma si "whitelist", "blacklist", "native" dhe "master". Për shembull, politika URLBlacklist është riemëruar në URLBlocklist, AutoplayWhitelist në AutoplayAllowlist, dhe NativePrinters në Printers.
- Në mënyrën Origin Trials (mundësi eksperimentale që kërkojnë aktivizim të veçantë), testimi i API Federated Credential Management (FedCM) ka filluar vetëm në ndërtimet për platformën Android, e cila lejon krijimin e shërbimeve të bashkuara të identifikimit, duke garantuar ruajtjen e privatësisë dhe duke punuar pa mekanizma ndjekjeje të ndërmjetëm, siç është përpunimi i Cookie-ve të palëve të treta. Trial Origin nënkupton mundësinë e përdorimit të këtij API nga aplikacione të shkarkuara nga localhost ose 127.0.0.1, ose pas regjistrimit dhe marrjes së një t_tokeni të veçantë, i cili ka një afat të kufizuar veprimi për një faqe të caktuar.
- Mekanizmi Priority Hints është stabilizuar dhe ofrohet për të gjithë ata që e duan, duke lejuar përcaktimin e rëndësisë së burimeve të ngarkuara përmes specifikimit të atributit shtesë 'importance' në etiketat si iframe, img dhe link. Ky atribut mund të marrë vlera 'auto', 'low' dhe 'high', të cilat ndikojnë në rendin e ngarkimit të burimeve të jashtme nga shfletuesi.
- Shtuar është pronësia AudioContext.outputLatency, përmes së cilës mund të merret informacion mbi ecurinë e vonesës së parashikuar para daljes së zërit (vonësën mes kërkesës për zë dhe fillimin e përpunimit të të dhënave të pranuara nga aparati i daljes së zërit).
- Shtuar është pronësia CSS font-palette dhe rregulli @font-palette-values, që lejojnë përzgjedhjen e një palete nga një font i ngjyrosur ose përcaktimin e një palette të personalizuar. Për shembull, këto mundësi mund të përdoren për të përshtatur fontet me ngjyra ose emoji me ngjyrën e dizajnit të përmbajtjes ose për të aktivizuar modalitetin e errët ose të ndritur për fontin.
- Shtatë është funksioni CSS hwb(), që ofron një metodë alternative për të specifikuar ngjyrat sRGB në formatin HWB (Hue, Whiteness, Blackness), i ngjashëm me formatin HSL (Hue, Saturation, Lightness), por më i thjeshtë për perceptimin e njeriut.
- Në metodën window.open(), specifikimi i pronës popup në vargun windowFeatures, pa i caktuar një vlerë (dmth. kur thjesht përmendet popup, jo popup=true) tani përpunon si aktivizim për hapjen e një dritarja të vogël hapëse (si 'popup=true') në vend të caktimit të vlerës 'false' siç ishte e logjikshme dhe e shkaktonte konfuzion për zhvilluesit.
- Në API MediaCapabilities, i cili ofron informacion mbi kapacitetet e pajisjes dhe shfletuesit për dekodimin e përmbajtjeve multimediale (kodekët, profillet, bitrate-t dhe rezolucionet e mbështetura), është shtuar mbështetje për rrjedhat WebRTC.
- Versioni i tretë i API-së Secure Payment Confirmation është propozuar, duke ofruar mjete për konfirmimin e ndihmës së operacioneve të pagesës. Në versionin e ri është shtuar mbështetje për identifikuesit që kërkojnë futjen e të dhënave, përcaktimin e ikonës për tregimin e dështimit të verifikimit, si dhe një pronë opsionale payeeName.
- Në API USBDevice është shtuar metoda forget() për të tërhequr autorizimet e dhëna më parë nga përdoruesi për qasje në pajisjen USB. Për më tepër, instancat e USBConfiguration, USBInterface, USBAlternateInterface dhe USBEndpoint tani janë të barabarta në krahasimin e rreptë ("===", tregojnë për një objekt të vetëm), nëse janë kthyer për të njëjtin objekt USBDevice.
- Përmirësime janë bërë në mjetet për zhvilluesit web. Është ofruar mundësia për eksportimin dhe importimin në formatin JSON të veprimeve të regjistruara nga përdoruesi (shembuj). Në konsolën web dhe në ndërfaqen e shikimit të kodit është përmirësuar llogaritja dhe shfaqja e pronave private. Është shtuar mbështetje për punën me modelin e ngjyrave HWB. Në panelin CSS është shtuar mundësia për të parë shtresat kaskadë, të caktuara me rregullën @layer.

Përveç novacioneve dhe rregullimeve të gabimeve, versioni i ri ka eliminuar 30 vulnerabilitete. Shumë nga vulnerabilitetet janë identifikuar përmes testimit automatizuar me mjete si AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer dhe AFL. Problemet kritike që lejojnë kalimin e të gjitha niveleve të mbrojtjes së shfletuesit dhe ekzekutimin e kodit në sistem jashtë mjedisit sandbox nuk janë zbuluar. Në kuadër të programit për shpërblimin monetar për zbulimin e vulnerabiliteteve për këtë lëshim, kompania Google ka dhënë 25 shpërblime me një total prej 81,000 dollarësh (një shpërblim $10,000, tre shpërblime $7,500, tri shpërblime $7,000, një shpërblim $6,000, dy shpërblime $5,000, katër shpërblime $2,000, tre shpërblime $1,000 dhe një shpërblim $500). Shuma e 6 shpërblimeve ende nuk është përcaktuar.
Burimi: opennet.ru


