Google har præsenteret udgivelsen af webbrowseren Chrome 105. Samtidig er den stabile version af det frie projekt Chromium, som er grundlaget for Chrome, tilgængelig. Browseren Chrome adskiller sig fra Chromium ved brugen af Googles logoer, en meddelelsessystem ved nedbrud, moduler til afspilning af kopibeskyttede videoinhold (DRM), automatisk opdatering, konstant aktivering af Sandbox-isolering, leveringen af nøgler til Google API og transmission af RLZ-parametre ved søgning. For dem der har brug for mere tid til opdatering, understøttes en separat udgave, kaldet Extended Stable, i 8 uger. Den næste version af Chrome 106 er planlagt til den 27. september.
De væsentligste ændringer i Chrome 105:
- Understøttelsen af specialiserede web-applikationer Chrome Apps er blevet ophævet, og disse erstattes nu af adskilte web-applikationer baseret på teknologien Progressive Web Apps (PWA) og standard Web API'er. Google meddelte oprindeligt sin intention om at droppe Chrome Apps allerede i 2016 og planlagde at stoppe støtten inden 2018, men udskudte senere denne plan. I Chrome 105 vil der ved installationen af Chrome Apps blive vist en advarsel om ophævelsen af støtten, men applikationerne vil fortsætte med at fungere. I Chrome 109 vil muligheden for at køre Chrome Apps blive deaktiveret.
- Der er tilvejebragt yderligere isolering af processen "renderer", som står for rendering. Denne proces kører nu i en ekstra container (App Container), der er implementeret oven på det eksisterende sandkassesystem. Ved udnyttelse af sårbarheden i rendering-koden vil de tilføjede begrænsninger forhindre angriberen i at få adgang til netværket, takket være forbuddet mod adgang til relaterede systemopkald.
- Der er implementeret et eget, ensartet lager af rodcertifikater fra certificeringsmyndigheder (Chrome Root Store). Det nye lager er ikke inkluderet som standard og indtil afslutningen af implementeringen vil certifikater fortsat blive kontrolleret ved hjælp af det OS-specifikke lager. Den testede løsning ligner virksomhedens Mozillas tilgang, som understøtter et separat uafhængigt lager af rodcertifikater til Firefox, der bruges som første led i verificeringen af certifikatets tillidsskabende kæde ved åbning af websteder over HTTPS.
- Forberedelserne til ophøret af understøttelsen af API Web SQL, som ikke er standardiseret, næsten ikke anvendes og kræver omarbejdning for at opfylde moderne sikkerhedskrav, er begyndt. I Chrome 105 er adgangen til Web SQL fra kode, der ikke er indlæst via HTTPS, forbudt, og der er tilføjet en advarsel om teknologiens forældelse i DevTools. API Web SQL forventes at blive fjernet i 2023. For udviklere, der har brug for lignende funktionalitet, vil der blive forberedt en erstatning baseret på WebAssembly.
- I Chrome sync er understøttelsen af synkronisering med Chrome 73 og tidligere versioner ophørt.
- For macOS- og Windows-platforme er den indbyggede certifikatviewer aktiveret, som har erstattet kaldet til systemleverandøren af интерфейса. Tidligere blev den indbyggede viewer kun brugt i versioner til Linux og ChromeOS.
- Der er tilføjet indstillinger til Android-versionen for at administrere API'en 'Topics & Interest Group', som fremføres under Privacy Sandbox-initiativerne og muliggør at bestemme brugerens interessekategorier og bruge dem i stedet for sporingscookies til at identificere grupper af brugere med lignende interesser uden at identificere enkeltpersoner. I den tidligere version blev sådanne indstillinger tilføjet i versioner til Linux, ChromeOS, macOS og Windows.
- Når den udvidede beskyttelse af browseren (Safe Browsing > Enhanced protection) er aktiveret, er der implementeret indsamling af telemetridata om installerede udvidelser, adgang til API og forbindelser til eksterne websteder. De nævnte data bruges på Googles servere til at identificere skadelig aktivitet og overtrædelser af reglerne fra browserudvidelser.
- Muligheden for at bruge ikke-ASCII-tegn i domæner angivet i Cookie-headeren er blevet flyttet til kategorien forældet og vil blive blokeret i Chrome 106 (for IDN-domæner skal domæner angives i punycode-format). Ændringen vil bringe browseren i overensstemmelse med kravene i RFC 6265bis og den adfærd, der er implementeret i Firefox.
- API Custom Highlight er blevet foreslået, og det er designet til vilkårligt at ændre stilen på markerede tekstområder, hvilket gør det muligt at overskride den faste stil for markerede områder, der tilbydes af browseren (::selection, ::inactive-selection) samt fremhævelse af syntaksfejl (::spelling-error, ::grammar-error). I den første version af API'et er der mulighed for at ændre tekst- og baggrundsfarve ved hjælp af pseudoelementerne color og background-color, men senere vil der blive tilføjet flere tilpasningsmuligheder.
Som et eksempel på opgaver, der kan løses ved hjælp af det nye API, nævnes tilføjelsen af egne tekstmarkeringssystemer i web-rammer, der tilbyder redigeringsværktøjer, forskellige markeringer under samtidig redigering af flere brugere, søgning i virtualiserede dokumenter og markeringsfejl under korrekturlæsning. Tidligere krævede oprettelsen af en brugerdefineret markering komplicerede manipulationer med DOM-træet, men API Custom Highlight giver klare operationer til at tilføje og fjerne fremhævelse, som ikke påvirker DOM-strukturen og anvender stilarter relateret til Range-objekter.
- CSS har fået tilføjet forespørgslen «@container», som gør det muligt at danne stil for elementer afhængigt af størrelsen på det overordnede element. «@container» ligner «@media»-forespørgsler, men anvendes ikke i forhold til størrelsen på hele den synlige område, men i stedet til størrelsen af det blok (container), hvori elementet er placeret. Dette muliggør at angive en egen logik for stilvalg for underordnede elementer, uafhængigt af hvor elementet er placeret på siden.

- CSS-pseudoklassen «:has()» er tilføjet for at tjekke for tilstedeværelsen af et barnelement i forælderen. For eksempel dækker «p:has(span)» elementer <p>, som indeholder et element <span>.
- API HTML Sanitizer er blevet tilføjet, hvilket muliggør udskæring af elementer fra indholdet, der påvirker visning og udførelse ved output via metoden setHTML(). API'et kan være nyttigt til at rense indkommende data for HTML-tags, der kan anvendes til at udføre XSS-angreb.
- Der er givet mulighed for at bruge API Streams (ReadableStream) til at sende fetch-anmodninger, før kroppens svar indlæses, hvilket betyder, at det er muligt at begynde dataoverførslen uden at vente på, at sidens generation er fuldført.
- For installed isolated web applications (PWA, Progressive Web App), the ability to change the design of the window title area is provided through the Window Controls Overlay components, which expand the screen area of the web application to cover the entire window and allow it to have the appearance of a regular desktop application. The web application can manage rendering and input handling across the entire window, except for the overlayed block with standard window control buttons (close, minimize, maximize).

- The ability to access Media Source Extensions from dedicated workers (in the context of DedicatedWorker) has been stabilized, which can be used, for example, to improve the performance of buffered playback of multimedia data by creating a MediaSource object in a separate worker and streaming the results to an HTMLMediaElement in the main thread.
- In the Client Hints API, which is being developed to replace the User-Agent header and allows selective delivery of data about specific browser and system parameters (version, platform, etc.) only upon request, serveren, support for the Sec-CH-Viewport-Height property has been added, allowing retrieval of information about the visible area height. The markup format for specifying Client Hints parameters for external resources in the 'meta' tag has been changed: Previously: Now:
- The ability to create global event handlers for onbeforeinput (document.documentElement.onbeforeinput) has been added, allowing web applications to override behavior when editing text in ,
- The capabilities of the Navigation API have been expanded, allowing web applications to intercept navigation operations in the window, initiate transitions, and analyze the history of actions with the application. New methods intercept() for intercepting transitions and scroll() for scrolling to a specified position have been added.
- A static method Response.json() has been added, allowing the creation of response bodies based on data of type JSON.
- Der er foretaget forbedringer af værktøjerne til webudviklere. I debuggeren er det nu muligt at redigere den øverste funktion i stakken, når en breakpoint udløses, uden at bryde debug-sessionen. I Recorder-panelet, som gør det muligt at optage, afspille og analysere brugerhandlinger på siden, er der nu tilføjet support til breakpoints, trinvis afspilning og optagelse af musebevægelser.
I ydeevneanalysen er der tilføjet metrikker til LCP (Largest Contentful Paint) for at identificere forsinkelser ved indlæsningen af store (synlige for brugeren) elementer i det synlige område, såsom billeder, videoer og blokelementer. I Elements-panelet er der implementeret markering af de øverste lag, der vises over andet indhold, med et særligt ikon. Der er også mulighed for at uploade debug-data i DWARF-format for WebAssembly.
Ud over nye funktioner og fejlrettelser er der i den nye version rettet 24 sårbarheder. Mange af sårbarhederne blev identificeret via automatiseret testning ved hjælp af værktøjerne AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer og AFL. Der er ikke identificeret kritiske problemer, der ville tillade omgåelse af browserens sikkerhedsniveauer og udførelse af kode i systemet uden for sandbox-miljøet. Som en del af belønningsprogrammet for rapportering af sikkerhedsbrister har Google udbetalt 21 præmier til en samlet værdi af 60.500 USD (en præmie på $10.000, en præmie på $9.000, en præmie på $7.500, en præmie på $7.000, to præmier på $5.000, fire præmier på $3.000, to præmier på $2.000 og en præmie på $1.000). Størrelsen på syv af præmierne er endnu ikke fastlagt.
Kilde: opennet.ru


