Kompania Google prezantoi versionin e ri të shfletuesit web Chrome 104. Po ashtu, është e disponueshme një version stabil i projektit të lirë Chromium, i cili shërben si baza për Chrome. Shfletuesi Chrome dallohet nga Chromium për shkak të përdorimit të logotypeve të Google, sistemit të njoftimeve në rast të dështimit, moduleve për të luajtur përmbajtje video të mbrojtur nga kopjimi (DRM), sistemit të automatik të instalimit të azhurnimeve, aktivizimit të vazhdueshëm të izolimit Sandbox, ofrimin e çelëseve për API-të e Google dhe transmetimin 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ë e Stabilitetit të Zgjatur, e cila shoqërohet me 8 javë. Versioni i ardhshëm i Chrome 105 është planifikuar për më 30 gusht.
Ndryshimet kryesore në Chrome 104:
- Është futur një limit i kohës së ekzistencës së Cookie – të gjithë Cookie-t e rinj ose të azhurnuara do të fshihen automatikisht pas 400 ditëve pavarësisht nga koha e skadimit e cila është caktuar përmes atributeve Expires dhe Max-Age që tejkalon 400 ditë (për këto Cookie, koha e jetës do të kufizohet në 400 ditë). Cookie-t e krijuara para futjes së kufizimit do ta mbajnë kohën e tyre të ekzistencës, pavarësisht nëse ajo kalon 400 ditë, por do të jenë të kufizuara në rast të azhurnimit. Ky ndryshim reflekton kërkesat e reja të evidentuara në draftin e specifikimit të ri.
- Është përfshirë bllokimi i kërkesave nga iframe në URL-të që referohen në sistemin e skedarëve lokal («filesystem://»).
- Për të përshpejtuar ngarkimin e faqes është shtuar një optimizim i ri, i cili garanton lidhjen me hostin e synuar në momentin e klikimit në lidhje, pa pritur lirimin e butonit ose largimin e gishti nga ekrani prekës.
- Janë shtuar cilësime për menaxhimin e API-t «Topics & Interest Group», të promocionuar në kuadër të iniciativës Privacy Sandbox, e cila lejon përcaktimin e kategorive të interesave të përdoruesit dhe përdorimin e tyre si zëvendësim për Cookie-t ndjekës për identifikimin e grupeve të përdoruesve me interesa të ngjashme pa identifikimin e individëve. Për më tepër, janë shtuar dialogë informues që shfaqen një herë, duke shpjeguar përdoruesit natyrën e teknologjisë dhe duke ofruar aktivizimin e përkrahjes së saj në cilësimet.
- Kriteret e kufizimit për thirrjet e brendshme të timerëve setTimeout dhe setInterval, që janë nisur me një interval më pak se 4 ms («setTimeout(…, <4ms)»), janë rritur. Kufiri total për këto thirrje është rritur nga 5 në 100, duke lejuar që thirrjet e vetme të mos reduktohen ndjeshëm, por duke parandaluar abuzimet që mund të ndikojnë në performancën e shfletuesit.
- Është përfshirë dërgimi në serverin e faqes kryesore të një kërkese për konfirmimin e autorizimeve CORS (Cross-Origin Resource Sharing) me titullin «Access-Control-Request-Private-Network: true», në rast se bëhet një thirrje nga faqja në një nënburim në rrjetin e brendshëm (192.168.x.x, 10.x.x.x, 172.16-31.x.x) apo në localhost (127.x.x.x). Kur operacioni konfirmohet, serveri duhet të kthejë titullin «Access-Control-Allow-Private-Network: true» si përgjigje në këtë kërkesë. Në versionin e Chrome 104, rezultati i konfirmimit akoma nuk ndikon në përpunimin e kërkesës — në rast se nuk ka konfirmim, një paralajmërim shfaqet në web-konsolë, por vetë kërkesa për nënburimin nuk bllokohet. Aktivizimi i bllokimit në mungesë të konfirmimit сервера pritet të ndodhë më së voni në versionin Chrome 107. Për të aktivizuar bllokimin në versione më të hershme, mund të aktivizoni parametrin «chrome://flags/#private-network-access-respect-preflight-results».
Konfirmimi i autorizimeve сервером është futur për të forcuar mbrojtjen nga sulmet që lidhen me qasjen në burime në rrjetin lokal ose në kompjuterin e përdoruesit (localhost) nga skenarë që ngarkohen kur hapet faqja. Këto kërkesa përdoren nga hakerat për të realizuar sulme CSRF ndaj routerëve, pikave të aksesit, printerave, ndërfaqeve web korporative dhe pajisjeve e shërbimeve të tjera që pranojnë kërkesa vetëm nga rrjeti lokal. Për të mbrojtur nga këto sulme, në rast se bëhet një thirrje në çdo nënburim në rrjetin e brendshëm, shfletuesi do të dërgojë një kërkesë të qartë për autorizimin e ngarkimit të këtyre nënburimeve.
- Është shtuar mekanizmi Region Capture, i cili lejon prerjen e përmbajtjeve të tepruara nga videoja që formohet nga kapja e ekranit. Për shembull, me ndihmën e API getDisplayMedia, web-aplikacioni mund të organizojë transmetimin e videos me përmbajtjen e tab-it, ndërsa Region Capture lejon të pritet një pjesë e përmbajtjes që përfshin elemente të kontrollit të videokonferencës.
- Shtuar mbështetje për sintaksën e re të mediave që përcaktohen në specifikat e Media Queries Level 4, që përcaktojnë madhësinë minimale dhe maksimale të zonës së dukshme (viewport). Sintaksa e re lejon përdorimin e operatorëve matematikorë të krahasimit dhe operatorëve logjikë si «not», «or» dhe «and». Për shembull, në vend të «@media (min-width: 400px) { … }», tani mund të specifikohet «@media (width >= 400px) { … }».
- Në modalitetin e Origin Trials (mundësi eksperimentale që kërkojnë aktivizim të veçantë) janë shtuar disa API të reja. Origin Trial nënkupton mundësinë e përdorimit të API të caktuar nga aplikacione të ngarkuara nga localhost ose 127.0.0.1, ose pas regjistrimit dhe marrjes së një token-i të veçantë, i cili vepron për një kohë të kufizuar për një sit të caktuar.
- Shtuar pronën CSS «focusgroup» për të përmirësuar navigimin midis elementeve duke përdorur shigjetat e kontrollit të kursorit në tastierë.
- Në API-në Secure Payment Confirmation është ofruar mundësia për përdoruesin të çaktivizojë ruajtjen e parametrave të kartave të kreditit. Për të treguar një dialog që lejon heqjen dorë nga ruajtja e parametrave të kartave të kreditit, në konstruktorin PaymentRequest() është parashikuar një flag «showOptOut: true».
- Shtuar API Shared Element Transitions, që lejon organizimin e kalimeve të qetë midis pamjeve të ndryshme të përmbajtjes në aplikacionet web me një faqe.
- Stabilizuar mbështetja për rregullat spekulative (Speculation rules), që lejojnë autorëve të faqeve t'u japin shfletuesve informacione për faqet më të mundshme që përdoruesi mund të vizitojë. Shfletuesi përdor këto informacione për ngarkimin dhe vizatimin e paraprak të përmbajtjes së faqeve.
- Stabilizuar mekanizmi i paketimit të subresurseve në paketat në formatin Web Bundle, që rrit efikasitetin e ngarkimit të një numri të madh dosjeve shoqëruese (CSS, JavaScript, imazhe, iframe). Ndryshe nga paketat në formatin Webpack, formati Web Bundle ka këto avantazhe: në cache-në HTTP nuk ruhet paketa vetë, por pjesët e saj; kompilimi dhe ekzekutimi i JavaScript fillon pa pritur ngarkimin e plotë të paketës; përfshihen burime të tjerë, si CSS dhe imazhe, që në webpack duhet të kodoheshin në formën e строкave JavaScript.
- Shtuar pronën CSS object-view-box, që lejon përcaktimin e pjesës së imazhit që do të shfaqet në zonën përkatëse në vend të elementit të caktuar, që mund të përdoret, për shembull, për të shtuar një kornizë ose hije.
- Shtuar API-në Fullscreen Capability Delegation, që lejon një objekt Window t'i japë një objekti tjetër Window të drejtën për të thirrur requestFullscreen().
- U shtua API i Dritares së Plotë, i cili lejon vendosjen e përmbajtjes në mënyrë të plotë dhe dritareve të dalëse në një ekran tjetër pas konfirmimit nga përdoruesi.
- Në pronën CSS overflow-clip-margin është shtuar atributi visual-box, që përcakton nga cili vend duhet të fillojë prerja e përmbajtjes që del jashtë kufijve (mund të pranojë vlerat content-box, padding-box dhe border-box).
- Në API-në Async Clipboard është shtuar mundësia për të përcaktuar formate të specializuara për të dhënat që transmetohen përmes clipboard-it, ndryshe nga tekstet, imazhet dhe tekstet me markup.
- Në WebGL është ofruar mbështetje për përcaktimin e hapësirës së ngjyrave për tamponin e vizatimit dhe transformimin gjatë importit nga tekstura.
- Mbështetja për platformat OS X 10.11 dhe macOS 10.12 është ndërprerë.
- Mbështetja për API U2F (Cryptotoken), e cila ishte shpallur më parë e vjetërsuar dhe e çaktivizuar si parazgjedhje, është ndërprerë. Në vend të API U2F ka ardhur API Web Authentication.
- Janë bërë përmirësime në mjetet për zhvilluesit web. Në debugger është shtuar mundësia për të rifilluar kodin nga fillimi i funksionit, pas aktivizimit të një pikë ndalimi diku brenda trupit të funksionit. Është shtuar mbështetje për zhvillimin e shtesave 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ë web-aplikacion përmes thirrjes së metodës performance.measure(). Janë përmirësuar rekomandimet gjatë automatikisht plotësimit të pronave të objekteve JavaScript. Gjatë automatikisht plotësimit të variablave CSS, është ofruar paraprakisht vizitimi i vlerave që nuk lidhen me ngjyrat.

Përveç risive dhe korrigjimit të gabimeve, versioni i ri ka eliminuar 27 vulnerabilitete. Shumica e vulnerabiliteteve janë identifikuar si rezultat i testimit automatizuar me mjetet AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer dhe AFL. Nuk janë identifikuar probleme kritike që lejojnë rrethimin e të gjitha niveleve të mbrojtjes së shfletuesit dhe ekzekutimin e kodit në sistem jashtë ambientit sandbox. Si pjesë e programit për shpërblime për identifikimin e vulnerabiliteteve, kompania Google ka ndarë 22 shpërblime në totale prej 84 mijë dollarësh (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, tri shpërblime $3000, katër shpërblime $2000 dhe tri shpërblime $1000). Shuma e një shpërblimi nuk është përcaktuar ende.
Burimi: opennet.ru

