Google har lansert versjonen av nettleseren Chrome 105. Samtidig er det en stabil utgave av det frie prosjektet Chromium, som danner grunnlaget for Chrome. Nettleseren Chrome skiller seg fra Chromium ved bruken av Googles logoer, ha et system for sendte varsler ved krasj, moduler for avspilling av kopibeskyttede videoinnhold (DRM), et automatisk oppdateringssystem, konstant aktivering av Sandbox-isolasjon, leveranse av nøkler til Google API, og overføring av RLZ-parametere ved søk. For de som trenger mer tid til oppdateringer, støttes en egen Extended Stable-variant som varer i 8 uker. Neste utgivelse, Chrome 106, er planlagt 27. september.
Hovedendringer i Chrome 105:
- Støtten for spesialiserte webapplikasjoner kalt Chrome Apps er avsluttet, og er blitt erstattet av separate webapplikasjoner basert på teknologien Progressive Web Apps (PWA) og standard Web API. Opprinnelig annonserte Google sin intensjon om å avvikle Chrome Apps allerede i 2016, med planer om å avslutte støtten innen 2018, men dette ble senere utsatt. I Chrome 105 vil det vises en advarsel om avvikling ved forsøk på installering av Chrome Apps, men applikasjonene vil fortsatt kunne kjøres. I Chrome 109 vil muligheten til å kjøre Chrome Apps bli deaktivert.
- Det er sikret ekstra isolasjon for «renderer»-prosessen, som er ansvarlig for gjengivelsen. Denne prosessen kjøres nå i et ekstra container (App Container), som er implementert over det eksisterende systemet med sandbox-isolasjon. Hvis det skulle utnyttes en sårbarhet i gjengivelseskoden, vil de tilleggene av begrensninger forhindre angriperen i å få tilgang til nettverket, takket være forbudet mot å gjøre systemkall relatert til nettverksmuligheter.
- Det er implementert et eget, enhetlig lagringssystem for rotsertifikatene fra sertifiseringsinstanser (Chrome Root Store). Det nye lagringssystemet er ikke aktivert som standard, og inntil det er fullført, vil sertifikatene fortsatt bli validert ved hjelp av det OS-spesifikke lagringssystemet. Den testede løsningen ligner tilnærmingen fra Mozilla, som støtter et eget, uavhengig lagringssystem for rotsertifikatene i Firefox, brukt som det første leddet i valideringen av sertifikatkjeder ved åpning av nettsteder over HTTPS.
- Forberedelsene til avviklingen av API Web SQL, som ikke er standardisert, knapt brukes og krever omarbeiding for å møte moderne sikkerhetskrav, har startet. I Chrome 105 er tilgang til Web SQL fra kode lastet uten HTTPS forbudt, og det er også lagt til en advarsel om teknologiens foreldelse i DevTools. I 2023 planlegges API Web SQL fjernet. For utviklere som trenger lignende funksjonalitet, vil det bli forberedt en erstatning basert på WebAssembly.
- I Chrome er synkroniseringen for Chrome 73 og tidligere versjoner sluttført.
- For plattformene macOS og Windows er den innebygde sertifikatviseren aktivert, som har erstattet anropet til grensesnittet som tilbys av operativsystemet. Tidligere ble den innebygde viseren kun brukt i versjoner for Linux og ChromeOS.
- I versjonen for Android-plattformen er det lagt til innstillinger for å administrere API-en «Topics & Interest Group», som fremmes i Privacy Sandbox-initiativet og gjør det mulig å bestemme brukerens interessekategorier og bruke dem i stedet for sporingscookies for å utpeke grupper av brukere med lignende interesser uten å identifisere enkeltbrukere. I forrige utgave ble lignende innstillinger lagt til i versjonene for Linux, ChromeOS, macOS og Windows.
- Når utvidet nettleservern (Safe Browsing > Enhanced protection) er aktivert, implementeres innsamling av telemetri om installerte tillegg, tilgang til API-er og tilkoblinger til eksterne nettsteder. De angitte dataene brukes på Googles servere for å oppdage skadelig aktivitet og brudd på retningslinjene for nettleserutvidelser.
- Muligheten til å bruke ikke-ASCII-tegn i domenene angitt i Cookie-headeren er blitt flyttet til kategorien foreldede og vil bli blokkert i utgaven Chrome 106 (for IDN-domener skal domener angis i punycode-format). Endringen vil bringe nettleseren i samsvar med kravene i RFC 6265bis og atferden implementert i Firefox.
- API Custom Highlight er foreslått for å tilpasse stilen på utvalgte tekstområder, slik at man ikke er begrenset til fastsatte stilarter fra nettleseren for disse områdene (::selection, ::inactive-selection) og for syntaksfeilutheving (::spelling-error, ::grammar-error). Den første versjonen av API-et støtter endringer av både tekst- og bakgrunnsfarge ved hjelp av pseudo-elementene color og background-color, men flere tilpasningsmuligheter vil bli lagt til senere.
Blant eksemplene på oppgaver som kan løses ved hjelp av det nye API-et nevnes å legge til egne mekanismer for tekstutheving i web-rammeverk som tilbyr verktøy for tekstredigering, variert uthenting ved samtidig redigering av flere brukere, søk i virtualiserte dokumenter, og merking av feil under stavekontroll. Tidligere krevde oppretting av tilpasset uthenting kompliserte manipulasjoner av DOM-treet, mens API Custom Highlight gir klare operasjoner for å legge til og fjerne utheving uten å påvirke DOM-strukturen, og som anvender stiler knyttet til Range-objektene.
- CSS har fått forespørselen «@container», som gjør det mulig å styre stilene til elementer avhengig av størrelsen på det overordnede elementet. «@container» ligner på «@media»-forespørselene, men brukes i forhold til størrelsen på blokken (beholderen) der elementet er plassert, noe som gjør det mulig å bestemme en egen logikk for stilvalg for barnelementene, uavhengig av hvor elementet er plassert på siden.

- Den CSS-pseudoklassen «:has()» er lagt til for å sjekke tilstedeværelsen av et barnelement i en forelder. For eksempel, «p:has(span)» omfatter elementer <p>, hvor det finnes et element <span>.
- API HTML Sanitizer er lagt til, som lar brukeren fjerne elementer fra innholdet som påvirker fremvisningen og utførelsen ved å bruke metoden setHTML(). API-et kan være nyttig for å rense innkommende data for HTML-tagger som kan brukes til å utføre XSS-angrep.
- Det er nå mulig å bruke API Streams (ReadableStream) for å sende fetch-forespørsel før responsens innhold er lastet ned, det vil si at man kan begynne å sende data uten å vente på at genereringen av siden er fullført.
- For installed isolated web applications (PWA, Progressive Web App), the ability to change the header area design of the window is provided using Window Controls Overlay components, which expand the screen area of the web application to the entire window and allow the web application to appear as a regular desktop application. The web application can control rendering and handle input across the entire window, except for the overlay block with standard window control buttons (close, minimize, maximize).

- Access to Media Source Extensions from dedicated workers (in the context of DedicatedWorker) has been stabilized, which can be used, for example, to increase the performance of buffered playback of multimedia data by creating a MediaSource object in a separate worker and streaming the results to the HTMLMediaElement in the main thread.
- In the Client Hints API, which is evolving to replace the User-Agent header and allows selectively providing data about specific browser and system parameters (version, platform, etc.) only upon request, support for the Sec-CH-Viewport-Height property has been added, allowing the 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: serverenThe ability to create global event handlers for onbeforeinput (document.documentElement.onbeforeinput) has been added, allowing web applications to override behavior during text editing 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 action history 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 formation of the response body based on data of type JSON.
- A static method Response.json() has been added, which allows creating a response body based on data of JSON type.
- Det er blitt gjort forbedringer i verktøyene for webutviklere. I debuggeren er det nå mulig å redigere toppen av funksjonsstakken uten å avbryte feilsøkingsøkten når et stoppunkt treffes. I Recorder-panelet, som lar deg ta opp, gjenskape og analysere brukerens handlinger på siden, er det lagt til støtte for stoppunkter, trinnvis avspilling og registrering av musepekerevents.
I ytelsesanalysepanelet er det lagt til metrikker for LCP (Largest Contentful Paint) for å identifisere forsinkelser i gjengivelsen av store (synlige for brukeren) elementer på skjermen, som bilder, videoer og blokkinnhold. I Elements-panelet er det blitt implementert merkingen av øverste lag som vises over annet innhold med et spesialikon. For WebAssembly er det mulig å laste opp feilsøkingsdata i DWARF-format.
I tillegg til nye funksjoner og feilrettinger i den nye versjonen er 24 sårbarheter blitt utbedret. Mange av sårbarhetene ble oppdaget gjennom automatisert testing ved hjelp av verktøy som AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer og AFL. Ingen kritiske problemer som tillater omgåelse av alle beskyttelseslag i nettleseren og kjøring av kode på systemet utenfor sandbox-miljøet har blitt avdekket. Som del av belønningsprogrammet for oppdagelse av sårbarheter har Google betalt ut 21 premier med en samlet sum på 60500 USD for denne utgivelsen (én premie på $10000, én premie på $9000, én premie på $7500, én premie på $7000, to premier på $5000, fire premier på $3000, to premier på $2000 og én premie på $1000). Størrelsen på syv premier er fortsatt ikke definert.
Kilde: opennet.ru


