Google heeft de Chrome 105-webbrowser uitgebracht. Tegelijkertijd is er een stabiele versie beschikbaar van het gratis Chromium-project, de basis van Chrome. De Chrome-browser onderscheidt zich van Chromium doordat hij Google-logo's gebruikt, een notificatiesysteem heeft in geval van een crash, modules voor het afspelen van kopieerbeveiligde videocontent (DRM), een automatisch installatiesysteem voor updates, constante Sandbox-isolatie, levering van sleutels aan de Google API en overdracht van RLZ-parameters tijdens het zoeken. Voor wie meer tijd nodig heeft om te updaten, wordt de Extended Stable-branch apart ondersteund, die 8 weken lang wordt ondersteund. De volgende versie van Chrome 106 staat gepland voor 27 september.
Belangrijkste wijzigingen in Chrome 105:
- Chrome Apps, een speciale webapplicatie, is stopgezet en vervangen door zelfstandige webapplicaties gebaseerd op Progressive Web Apps (PWA)-technologie en standaard web-API's. Google kondigde in 2016 aanvankelijk aan Chrome Apps niet meer te ondersteunen en was van plan de ondersteuning ervan in 2018 te beëindigen, maar stelde dit plan vervolgens uit. In Chrome 105 wordt bij het installeren van Chrome Apps een waarschuwing weergegeven over de stopzetting, maar de applicaties zelf blijven actief. In Chrome 109 is de mogelijkheid om Chrome Apps te gebruiken uitgeschakeld.
- Er is extra isolatie voorzien voor het renderproces dat verantwoordelijk is voor de rendering. Dit proces wordt nu uitgevoerd in een extra container (App Container) die is geïmplementeerd bovenop het bestaande sandbox-isolatiesysteem. In geval van misbruik van een kwetsbaarheid in de renderingcode, zullen de toegevoegde beperkingen voorkomen dat een aanvaller toegang krijgt tot het netwerk door toegang tot netwerkgerelateerde systeemaanroepen te blokkeren.
- Er is een eigen, uniforme opslagplaats voor rootcertificaten van certificeringsinstanties (Chrome Root Store) geïmplementeerd. De nieuwe opslagplaats is nog niet standaard ingeschakeld en totdat de implementatie is voltooid, worden certificaten geverifieerd met behulp van een opslagplaats die specifiek is voor elk besturingssysteem. De geteste oplossing lijkt op de aanpak van Mozilla, die een aparte, onafhankelijke opslagplaats voor rootcertificaten voor Firefox beheert. Deze opslagplaats wordt gebruikt als eerste schakel voor het verifiëren van de vertrouwensketen van certificaten bij het openen van websites via HTTPS.
- De voorbereidingen voor de veroudering van de Web SQL API zijn gestart. Deze API is niet gestandaardiseerd, wordt zelden gebruikt en moet worden herzien om te voldoen aan moderne beveiligingseisen. Chrome 105 verbiedt toegang tot Web SQL vanuit code die zonder HTTPS is geladen en voegt tevens een waarschuwing voor veroudering toe aan DevTools. De Web SQL API zal naar verwachting in 2023 worden verwijderd. Voor ontwikkelaars die deze functionaliteit nodig hebben, wordt een vervanging op basis van WebAssembly voorbereid.
- Chrome-synchronisatie biedt geen ondersteuning meer voor synchronisatie met Chrome 73 en eerdere versies.
- Voor platforms macOS и Windows De ingebouwde certificaatviewer is geactiveerd en vervangt de interface-aanroep die door het besturingssysteem werd aangeboden. Voorheen werd de ingebouwde viewer alleen gebruikt in builds voor Linux en ChromeOS.
- In de versie voor het platform Android Er zijn instellingen toegevoegd voor het beheren van de "Topics & Interest Group"-API, die wordt gepromoot als onderdeel van het Privacy Sandbox-initiatief. Deze API maakt het mogelijk om gebruikersinteressecategorieën te identificeren en te gebruiken in plaats van trackingcookies om groepen gebruikers met vergelijkbare interesses te identificeren zonder individuele gebruikers te identificeren. Vergelijkbare instellingen waren al toegevoegd aan de versie voor de vorige release. Linux, Chrome OS, macOS и Windows.
- Wanneer u verbeterde browserbeveiliging inschakelt (Safe Browsing > Verbeterde beveiliging), worden er telemetriegegevens verzameld over geïnstalleerde add-ons, API-toegang en verbindingen met externe sites. Deze gegevens worden op Google-servers gebruikt om schadelijke activiteiten en regelovertredingen door browser-add-ons te identificeren.
- De mogelijkheid om niet-ASCII-tekens te gebruiken in domeinen die zijn opgegeven in de cookieheader (voor IDN-domeinen specificeert u domeinen in punycode-indeling) is verouderd en wordt geblokkeerd in Chrome 106. Met deze wijziging voldoet de browser aan RFC 6265bis en het gedrag dat is geïmplementeerd in Firefox.
- De Custom Highlight API wordt voorgesteld. Deze is bedoeld voor willekeurige aanpassing van de stijl van geselecteerde tekstgebieden en maakt het mogelijk om niet beperkt te worden door de vaste stijl die de browser biedt voor geselecteerde gebieden (::selection, ::inactive-selection) en om syntaxisfouten te markeren (::spelling-error, ::grammatica-error). De eerste versie van de API biedt ondersteuning voor het wijzigen van de kleur van de tekst en de achtergrond met behulp van de pseudo-elementen color en background-color, maar in de toekomst zullen er andere opties voor stijlaanpassing worden toegevoegd.
Als voorbeeld van de taken die met de nieuwe API kunnen worden opgelost, worden webframeworks genoemd die tools bieden voor tekstbewerking. Deze beschikken over eigen mechanismen voor het markeren van tekst, het aanpassen van de markering tijdens gelijktijdige bewerking door meerdere gebruikers, het zoeken in gevirtualiseerde documenten en het markeren van fouten tijdens spellingscontrole. Voorheen vereiste het creëren van een niet-standaard markering complexe bewerkingen met de DOM-boomstructuur. De Custom Highlight API biedt kant-en-klare bewerkingen voor het toevoegen en verwijderen van markering die de DOM-structuur niet beïnvloeden en het toepassen van stijlen in binding aan Range-objecten.
- De query "@container" is toegevoegd aan CSS, waarmee u elementen kunt stylen op basis van de grootte van het bovenliggende element. "@container" is vergelijkbaar met "@media"-query's, maar wordt niet gebruikt in relatie tot de grootte van het gehele zichtbare gebied, maar tot de grootte van het blok (de container) waarin het element wordt geplaatst. Hierdoor kunt u uw eigen logica voor stijlselectie voor onderliggende elementen instellen, ongeacht waar op de pagina het element zich precies bevindt.

- CSS-pseudoklasse ":has()" toegevoegd om te controleren of een onderliggend element zich in een bovenliggend element bevindt. Bijvoorbeeld, "p:has(span)" overspant elementen. , waarin zich een element bevindt .
- HTML Sanitizer API toegevoegd, waarmee u elementen uit content kunt verwijderen die de weergave en uitvoering beïnvloeden bij uitvoer via de setHTML()-methode. De API kan nuttig zijn voor het opschonen van binnenkomende externe data door HTML-tags te verwijderen die kunnen worden gebruikt voor XSS-aanvallen.
- Er is een mogelijkheid toegevoegd om de Streams (ReadableStream) API te gebruiken om ophaalverzoeken te versturen voordat de antwoordtekst is geladen. Dat wil zeggen dat u nu gegevens kunt versturen zonder te wachten tot de pagina volledig is gegenereerd.
- Voor geïnstalleerde, zelfstandige webapplicaties (PWA, Progressive Web App) is de mogelijkheid om het ontwerp van het venstertitelgebied te wijzigen beschikbaar via Window Controls Overlay-componenten. Deze breiden het schermoppervlak van de webapplicatie uit naar het volledige venster en zorgen ervoor dat de webapplicatie eruitziet als een gewone desktopapplicatie. De webapplicatie kan de rendering en invoerverwerking in het volledige venster beheren, met uitzondering van het overlappende blok met standaard vensterbedieningsknoppen (sluiten, minimaliseren, maximaliseren).

- De mogelijkheid om toegang te krijgen tot Media Source Extensions vanuit speciale workers (in de context van DedicatedWorker) is gestabiliseerd. Deze kunnen bijvoorbeeld worden gebruikt om de prestaties van gebufferde mediaweergave te verbeteren door een MediaSource-object in een aparte worker te maken en de resultaten van het werk uit te zenden naar een HTMLMediaElement in de hoofdthread.
- In de Client Hints API, die wordt ontwikkeld ter vervanging van de User-Agent-header en waarmee selectief gegevens over specifieke browser- en systeemparameters (versie, platform, enz.) kunnen worden geretourneerd, maar pas na een verzoek. serverEr is ondersteuning toegevoegd voor de eigenschap Sec-CH-Viewport-Heigh, waarmee informatie over de hoogte van de viewport kan worden verkregen. De opmaak voor het specificeren van Client Hints-parameters in de "meta"-tag voor externe bronnen is gewijzigd: Voorheen: Het werd:
- De mogelijkheid toegevoegd om globale onbeforeinput-gebeurtenisafhandelingen te maken (document.documentElement.onbeforeinput), waarmee webapplicaties het gedrag kunnen overschrijven bij het bewerken van tekst in blokken , en andere elementen met het kenmerk "contenteditable" ingesteld, voordat de browser de inhoud van het element en de DOM-boom wijzigt.
- De mogelijkheden van de Navigatie API zijn uitgebreid, waardoor webapplicaties navigatiebewerkingen in een venster kunnen onderscheppen, een overgang kunnen initiëren en de actiegeschiedenis van de applicatie kunnen analyseren. Er zijn nieuwe methoden toegevoegd: intercept() om een overgang te onderscheppen en scroll() om naar een opgegeven positie te scrollen.
- Statische methode Response.json() toegevoegd, waarmee u een responsbody kunt genereren op basis van JSON-gegevens.
- Er zijn verbeteringen aangebracht in de tools voor webontwikkelaars. In de debugger is het, wanneer een breekpunt wordt geactiveerd, mogelijk om de bovenste functie in de stack te bewerken zonder de debugsessie te onderbreken. Het Recorder-paneel, waarmee u gebruikersacties op de pagina kunt opnemen, afspelen en analyseren, ondersteunt nu breekpunten, stapsgewijze weergave en het opnemen van muisbewegingen.
De LCP-statistieken (Largest Contentful Paint) zijn toegevoegd aan het paneel Prestatieanalyse om vertragingen in de weergave van grote (voor de gebruiker zichtbare) elementen in het zichtbare gebied, zoals afbeeldingen, video's en blokelementen, te identificeren. Het paneel Elementen markeert nu overlays die over andere content worden weergegeven met een speciaal pictogram. Voor WebAssembly is de mogelijkheid toegevoegd om debuggegevens in DWARF-formaat te downloaden.
Naast innovaties en bugfixes elimineert de nieuwe versie 24 kwetsbaarheden. Veel van de kwetsbaarheden werden geïdentificeerd als resultaat van geautomatiseerde tests met de tools AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer en AFL. Er werden geen kritieke problemen geïdentificeerd die het mogelijk maakten om alle niveaus van browserbeveiliging te omzeilen en code in het systeem buiten de sandbox-omgeving uit te voeren. Als onderdeel van het programma voor het uitkeren van geldbeloningen voor het ontdekken van kwetsbaarheden voor de huidige release, heeft Google 21 beloningen uitgekeerd met een totaalbedrag van $ 60500 (één beloning van $ 10000, één beloning van $ 9000, één beloning van $ 7500, één beloning van $ 7000, twee beloningen van $ 5000, vier beloningen van $ 3000, twee beloningen van $ 2000 en één beloning van $ 1000). Het bedrag van zeven beloningen is nog niet vastgesteld.
Bron: opennet.ru


