Kompania Google lansoi versionin e ri të shfletuesit web Chrome 104. Njëkohësisht është në dispozicion edhe një version stabil i projektit të lirë Chromium, i cili shërben si baza e Chrome. Shfletuesi Chrome dallon nga Chromium me përdorimin e logove të Google, sistemin e dërgimit të njoftimeve në rast dështimi, module për riprodhimin e përmbajtjes video të mbrojtur nga kopjimi (DRM), sistemin e instalimit automatik të azhurnimeve, përfshirjen e vazhdueshme të Sandbox-isolimit, ofrimin e çelësave për Google API dhe transferimin e parametrave RLZ gjatë kërkimeve. Për ata që kanë nevojë për më shumë kohë për azhurnim, mbështetet veçmas një degë Extended Stable, e cila shoqërohet me 8 javë. Versioni i ardhshëm i Chrome 105 është planifikuar për 30 gusht.
Ndryshimet kryesore në Chrome 104:
- Është vendosur një kufizim në kohëzgjatjen e Cookie-eve — të gjitha Cookie-t e reja ose të azhurnuara do të fshihen automatikisht pas 400 ditësh, edhe nëse koha e skadencës e caktuar përmes atributeve Expires dhe Max-Age është e tejkaluar (për këto Cookie, koha e jetës do të kufizohet në 400 ditë). Cookie-t e krijuara para vendosjes së kufizimeve do të ruajnë kohën e tyre të jetës, edhe nëse ajo tejkalon 400 ditë, por do të jenë të kufizuara në rastin e azhurnimit. Ky ndryshim reflekton kërkesat e reja, të shënuara në projektin e ri të specifikimeve.
- Është aktivizuar bllokimi i kërkesave nga iframe për URL-të që i referohen sistemit lokal të skedarëve ("filesystem://").
- Për të përshpejtuar ngarkimin e faqes është shtuar një optimizim i ri që siguron krijimin e lidhjes me hostin e synuar në momentin e klikimit në lidhje, pa pritur që butoni të lirohet ose gishti të hiqet nga ekrani prekës.
- Janë shtuar rregullimet për menaxhimin e API-së "Topics & Interest Group", e promovuar brenda iniciativës Privacy Sandbox dhe që lejon përcaktimin e kategorive të interesave të përdoruesit dhe përdorimin e tyre si zëvendësim për Cookie-t ndjekëse, për të identifikuar grupe përdoruesish me interesa të ngjashëm pa identifikimin e përdoruesve të veçantë. Gjithashtu, janë shtuar dritaret informuese që shfaqen një herë, të cilat shpjegojnë përdoruesit në lidhje me teknologjinë dhe ofrojnë aktivizimin e mbështetjes së saj në cilësimet.
- Janë rritur kufijtë për bllokimin e thirrjeve të ngjashme të funksioneve setTimeout dhe setInterval, të nisura me një interval më të vogël se 4 ms ("setTimeout(…, <4ms)"). Kufiri total për këto thirrje është rritur nga 5 në 100, duke lejuar që të mos prishen thirrjet e vetme në mënyrë agresive, por gjithëashtu duke mos lejuar abuzimin që mund të ndikojë në performancën e shfletuesit.
- Është aktivizuar dërgimi në serverin kryesor të një kërkese për konfirmimin e autorizimeve CORS (Cross-Origin Resource Sharing) me titullin "Access-Control-Request-Private-Network: true", në rastet kur kërkohet një sub-resurs nga një faqe në një rrjet lokal (192.168.x.x, 10.x.x.x, 172.16-31.x.x) ose localhost (127.x.x.x). Kur operacioni konfirmohet përgjigjja ndaj kësaj kërkese duhet të kthejë titullin "Access-Control-Allow-Private-Network: true". Në versionin 104 të Chrome, rezultati i konfirmimit për momentin nuk ndikon në procesin e kërkesës — në rast të mungesës së konfirmimit, një paralajmërim shfaqet në konsolën web, por kërkesa për sub-resursin nuk bllokohet. Aktivizimi i bllokimit në mungesë të konfirmimit server pritet të ndodhë jo më herët se në versionin 107 të Chrome. Për aktivizimin e bllokimit në versionet më të hershme, mund të aktivizoni cilësimin "chrome://flags/#private-network-access-respect-preflight-results".
Konfirmimi i autorizimeve serverin është vendosur për të forcuar mbrojtjen kundër sulmeve që lidhen me aksesin në burimet në rrjetin lokal ose në kompjuterin e përdoruesit (localhost) nga skriptet e ngarkuara në hapjen e faqes. Këto kërkesa përdoren nga sulmuesit për të kryer sulme CSRF ndaj routerave, pikave të qasjes, printerave, ndërfaqeve web korporative dhe pajisjeve dhe shërbimeve të tjera që pranojnë kërkesa vetëm nga rrjeti lokal. Për të mbrojtur nga këto sulme, në rastin e kërkesave për çdo sub-resurs në rrjetin e brendshëm, shfletuesi do të dërgojë një kërkesë të qartë për autorizimin e ngarkesës së këtyre sub-resurseve.
- Është shtuar mekanizmi Region Capture, i cili lejon prerjen e përmbajtjes së tepërt nga videoja, e cila formohet mbi bazën e kapjes së ekranit. Për shembull, me anë të API-së getDisplayMedia, aplikacioni web mund të organizojë transmetimin e videos me përmbajtjen e skedës, ndërsa Region Capture lejon të pritet një pjesë e përmbajtjes, e cila përfshin elementet e kontrollit të videokonferencës.
- Shtuar përkrahja për sintaksën e re të mediave të specifikuar në Media Queries Level 4, e cila përcakton madhësinë minimale dhe maksimale të zonës së dukshme (viewport). Sintaksa e re lejon përdorimin e operatorëve matematikorë të zakonshëm dhe operatorëve logjikë, si "not", "or" dhe "and". Për shembull, në vend të "@media (min-width: 400px) { … }" tani mund të specifikoni "@media (width >= 400px) { … }".
- Në regjimin Origin Trials (funksione eksperimentale që kërkojnë aktivizim të veçantë), janë shtuar disa API të reja. Origin Trial nënkupton mundësinë e funksionimit me API-në e specifikuar nga aplikacionet e ngarkuara nga localhost ose 127.0.0.1, ose pas regjistrimit dhe marrjes së një token-i special, i cili është i vlefshëm për një kohë të kufizuar për një faqe specifike.
- Shtuar pasuria CSS "focusgroup" për të përmirësuar navigimin midis elementëve duke përdorur arrow keys në tastierë.
- Në API-në Secure Payment Confirmation, përdoruesi tani ka mundësinë të çaktivizojë ruajtjen e parametrave të kartave të kreditit. Për të shfaqur dialogun që lejon heqjen dorë nga ruajtja e parametrave të kartave të kreditit, në ndërtuesin PaymentRequest() është parashikuar një flamur "showOptOut: true".
- Shtuar API-në Shared Element Transitions, e cila lejon organizimin e një kalimi të qetë midis pamjeve të ndryshme të përmbajtjes në aplikacionet web me një faqe.
- Stabilizuar përkrahja për rregullat spekulative (Speculation rules), që lejojnë autorët e faqeve të dërgojnë informacion në shfletues mbi faqet që përdoruesi mund të vizitojë. Shfletuesi përdor këtë informacion për ngarkimin dhe vizualizimin paraprak të përmbajtjes së faqeve.
- Stabilizuar mekanizmi për paketimin e nënburimeve në paketa në formatin Web Bundle, që lejon rritjen e eficiencës së ngarkimit të një numri të madh fileve anësore (CSS, JavaScript, imazhe, iframe). Ndryshe nga paketat në formatin Webpack, formati Web Bundle ka këto përparësi: në cache-në HTTP mbetet jo vetë paketa, por përbërësit e saj; kompilimi dhe ekzekutimi i JavaScript fillon pa pritur ngarkimin e plotë të paketës; lejohet përfshirja e burimeve të tjera si CSS dhe imazhe, të cilat në webpack duhet të kodoheshin në formën e stringjeve JavaScript.
- Shtuar pasuria CSS object-view-box, që lejon përcaktimin e pjesës së imazhit që do të shfaqet në zonën e caktuar në vend të elementit të dhënë, e cila mund të përdoret, për shembull, për të shtuar një kufi ose hije.
- Shtuar API-në Fullscreen Capability Delegation, që lejon një objekt Window të drejtojë një objekti tjetër Window të drejtat për të thirrur requestFullscreen().
- Shtuar API-në Fullscreen Companion Window, e cila lejon vendosjen e përmbajtjes me ekran të plotë dhe dritareve të daljes në një ekran tjetër pas përfitimit të miratimit nga përdoruesi.
- Në pasurinë CSS overflow-clip-margin është shtuar atribute vizual-box, që përcakton nga cili vend duhet të fillojë prerja e përmbajtjes që kalon kufirin e zonës (mund të marrë vlera content-box, padding-box dhe border-box).
- Në API-në Async Clipboard është shtuar mundësia e përcaktimit të formateve të specializuara për të dhënat që kalohen përmes një buferi të kopjimit, që janë të ndryshme nga tekstet dhe imazhet.
- Në WebGL ofrohet përkrahje për përcaktimin e hapësirës së ngjyrave për bufferin e vizatimit dhe transformimin gjatë importit nga tekstura.
- Ka ndalur përkrahjen për platforma OS X 10.11 dhe macOS 10.12.
- Ka ndalur përkrahjen për API-në U2F (Cryptotoken), e cila më parë është shpallur e vjetruar dhe e çaktivizuar nga e drejta. Në vend të API U2F ka ardhur API Web Authentication.
- Janë kryer përmirësime në mjetet për zhvilluesit web. Në debugger është shtuar mundësia për të rifilluar kodin nga fillimi i funksionit, pasi është provokuar pika e ndalimit diku në trupin e funksionit. Është shtuar përkrahja për zhvillimin e prapashtesave për panelin Recorder. Në panelin për analizën e performancës është shtuar mbështetje për vizualizimin e etiketave, të vendosura në aplikacionin web përmes thirrjes së metodës performance.measure(). Janë përmirësuar rekomandimet gjatë autokodifikimit të pronave të objekteve JavaScript. Gjatë autokodifikimit të variablave CSS është siguruar parashikimi i vlerave, të pa lidhura me ngjyrat.

Përveç risive dhe korrigjimeve të gabimeve, në versionin e ri janë eliminuar 27 vulnerabilitetet. Shumica e vulnerabiliteteve janë zbuluar si rezultat i testimeve automatike me mjete si AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer dhe AFL. Nuk janë zbuluar probleme kritike, që lejojnë anashkalimin e të gjitha niveleve të mbrojtjes së shfletuesit dhe ekzekutimin e kodit në sistem përtej sandbox-it. Në kuadër të programit për shpërblime për zbulesat e vulnerabiliteteve të këtij lëshimi, kompania Google ka ndarë 22 shpërblime me një total prej 84 mijë dollarësh amerikanë (një shpërblim $15000, një shpërblim $10000, një shpërblim $8000, një shpërblim $7000, katër shpërblime $5000, një shpërblim $4000, tre shpërblime $3000, katër shpërblime $2000 dhe tre shpërblime $1000). Shuma e një shpërblimi ende nuk është përcaktuar.
Burimi: opennet.ru

