Google heeft de release van webbrowser Chrome 104 aangekondigd. Tegelijkertijd is er een stabiele versie van het open-source project Chromium beschikbaar, dat de basis vormt voor Chrome. De browser Chrome verschilt van Chromium door het gebruik van Google-logo's, een systeem voor het verzenden van meldingen bij crashes, modules voor het afspelen van beveiligde videoinhoud (DRM), een automatische update-installatiefunctie, constante inschakeling van sandbox-isolatie, levering van sleutels voor de Google API en het overdragen van RLZ-parameters tijdens zoekopdrachten. Voor degenen die meer tijd nodig hebben voor updates, wordt de Extended Stable-tak afzonderlijk ondersteund, welke 8 weken duurt. De volgende release van Chrome 105 staat gepland voor 30 augustus.
Belangrijkste wijzigingen in Chrome 104:
- Er is een maximale houdbaarheid voor cookies ingevoerd — alle nieuwe of bijgewerkte cookies zullen automatisch worden verwijderd na 400 dagen, zelfs als de vervaldatum die via de attributen Expires en Max-Age is ingesteld, langer dan 400 dagen is (voor dergelijke cookies wordt de levensduur beperkt tot 400 dagen). Cookies die zijn aangemaakt vóór de invoering van de beperking behouden hun levensduur, zelfs als deze langer is dan 400 dagen, maar worden beperkt bij een update. Deze wijziging weerspiegelt nieuwe eisen die zijn gemarkeerd in een concept van de nieuwe specificatie.
- Toegang van iframes naar URL's die verwijzen naar het lokale bestandssysteem ('filesystem://') is geblokkeerd.
- Om de laadtijd van pagina's te versnellen, is er een nieuwe optimalisatie toegevoegd die het tot stand brengen van een verbinding met de doelhost mogelijk maakt op het moment dat op de link wordt geklikt, zonder te wachten op het loslaten van de knop of het van het touchscreen afhalen van de vinger.
- Er zijn instellingen toegevoegd voor het beheer van de API 'Topics & Interest Group', die wordt gepromoot binnen het Privacy Sandbox-initiatief en waarmee gebruikersinteressecategorieën kunnen worden bepaald en gebruikt in plaats van trackingcookies om groepen gebruikers met vergelijkbare interesses te segmenteren zonder individuele gebruikers te identificeren. Daarnaast zijn er eenmalige informatieve dialoogvensters toegevoegd die de technologie uitleggen aan de gebruiker en voorstellen om de ondersteuning ervan in de instellingen te activeren.
- De drempelwaarden voor het beperken van ingesloten aanroepen van de timers setTimeout en setInterval, die zijn gestart met een interval van minder dan 4 ms ('setTimeout(…, <4ms)') zijn verhoogd. De totale limiet voor dergelijke aanroepen is verhoogd van 5 naar 100, waardoor agressief afsnijden van enkele aanroepen wordt voorkomen, terwijl misbruik dat de prestaties van de browser kan beïnvloeden, wordt beperkt.
- De verzending van een verzoek om bevestiging van CORS (Cross-Origin Resource Sharing) machtigingen naar de server van de hoofdwebsite is ingeschakeld met de header 'Access-Control-Request-Private-Network: true', in het geval van een verzoek vanaf een pagina naar een subresource in een intern netwerk (192.168.x.x, 10.x.x.x, 172.16-31.x.x) of naar localhost (127.x.x.x). Wanneer de operatie wordt bevestigd, moet de server in antwoord op dit verzoek de header 'Access-Control-Allow-Private-Network: true' terugsturen. In Chrome versie 104 beïnvloedt de bevestigingsresultaat momenteel nog de verwerking van het verzoek niet — als er geen bevestiging is, verschijnt er een waarschuwing in de webconsole, maar wordt het verzoek naar de subresource niet geblokkeerd. De invoering van een blokkering bij afwezigheid van bevestiging de server wordt pas verwacht in de Chrome 107 release. Voor de invoering van de blokkering in eerdere versies kan de instelling 'chrome://flags/#private-network-access-respect-preflight-results' worden geactiveerd.
Machtiging bevestiging server is geïntroduceerd ter versterking van de bescherming tegen aanvallen die betrekking hebben op het toegang krijgen tot bronnen in lokale netwerken of op de computer van de gebruiker (localhost) vanuit scripts die worden geladen bij het openen van de website. Dergelijke verzoeken worden door aanvallers gebruikt voor het uitvoeren van CSRF-aanvallen op routers, toegangspunten, printers, bedrijfsmatige webinterfaces en andere apparaten en diensten die alleen verzoeken uit het lokale netwerk accepteren. Ter bescherming tegen dergelijke aanvallen zal de browser bij verzoeken naar subresources in het interne netwerk, een expliciet verzoek om machtiging voor de huidige subresources versturen.
- Er is een mechanisme voor Regio-opname toegevoegd, waarmee overtollige inhoud uit video, gegenereerd op basis van schermopname, kan worden verwijderd. Bijvoorbeeld, met de API getDisplayMedia kan een webapplicatie video-inhoud van het tabblad verzenden, terwijl Regio-opname het mogelijk maakt om een deel van de inhoud te snijden, inclusief elementen voor videoconferencing.
- Ondersteuning toegevoegd voor de specifieke syntaxis van Media Queries Level 4, die de minimale en maximale grootte van het zichtbare gebied (viewport) definieert. De nieuwe syntaxis maakt gebruik van reguliere vergelijkings- en logische operatoren, zoals 'not', 'or' en 'and'. Bijvoorbeeld, in plaats van '@media (min-width: 400px) { … }', kan nu '@media (width >= 400px) { … }' worden opgegeven.
- In de Origin Trials-modus (experimentele mogelijkheden die afzonderlijk moeten worden geactiveerd) zijn enkele nieuwe API's toegevoegd. Origin Trial houdt in dat het mogelijk is om met de opgegeven API te werken vanuit applicaties geladen vanaf localhost of 127.0.0.1, of na registratie en het verkrijgen van een speciale token die tijdelijk geldig is voor de specifieke site.
- CSS-eigenschap 'focusgroup' toegevoegd om de navigatie tussen elementen met behulp van de pijltjestoetsen op het toetsenbord te verbeteren.
- In de API Secure Payment Confirmation is de mogelijkheid toegevoegd voor de gebruiker om de opslag van creditcardparameters uit te schakelen. Om de dialoog weer te geven die de gebruiker in staat stelt om af te zien van het opslaan van creditcardgegevens, is er een vlag 'showOptOut: true' in de PaymentRequest() constructor.
- API Shared Element Transitions toegevoegd, waarmee een soepele overgang tussen verschillende weergaven van inhoud in single-page webapplicaties mogelijk is.
- Ondersteuning voor speculatieve regels (Speculation rules) is gestabiliseerd, waardoor website-eigenaren de browser informatie kunnen geven over de meest waarschijnlijke pagina's die de gebruiker mogelijk bezoekt. De browser maakt gebruik van deze informatie voor het proactief laden en weergeven van inhoud op pagina's.
- Mechanisme voor het verpakt in subbronnen in Web Bundle-formaat is gestabiliseerd, waardoor de efficiëntie van het laden van een groot aantal bijbehorende bestanden (CSS-stijlen, JavaScript, afbeeldingen, iframe) is toegenomen. In tegenstelling tot pakketten in Webpack-formaat, heeft het Web Bundle-formaat de volgende voordelen: de samenstelling wordt in de HTTP-cache opgeslagen in plaats van het pakket zelf; compilatie en uitvoering van JavaScript begint niet te wachten op de volledige laadtijd van het pakket; extra middelen, zoals CSS en afbeeldingen, kunnen worden opgenomen, die in Webpack als JavaScript-strings moesten worden gecodeerd.
- CSS-eigenschap object-view-box toegevoegd, waarmee een deel van een afbeelding kan worden gedefinieerd die in het gebied in plaats van het opgegeven element zal worden weergegeven, wat bijvoorbeeld kan worden gebruikt voor het toevoegen van een rand of schaduw.
- API Fullscreen Capability Delegation toegevoegd, waarmee een Window-object het recht kan overdragen aan een ander Window-object om requestFullscreen() aan te roepen.
- De API voor het Volledig Scherm Companion Window is toegevoegd, waarmee volledig scherminhoud en pop-ups op een ander scherm kunnen worden weergegeven na bevestiging van de gebruiker.
- De CSS-eigenschap overflow-clip-margin heeft de visual-box-attribuut gekregen, dat bepaalt vanaf welke plek de snijding van de inhoud die buiten het gebied valt, moet beginnen (kan de waarden content-box, padding-box en border-box aannemen).
- De API Async Clipboard heeft de mogelijkheid toegevoegd om gespecialiseerde formaten te definiëren voor gegevens die via het klembord worden verzonden, anders dan tekst, afbeeldingen en gelabelde tekst.
- In WebGL is de ondersteuning voor het specificeren van het kleurenschema voor de renderbuffer en conversie bij import vanuit texturen toegevoegd.
- De ondersteuning voor de platforms OS X 10.11 en macOS 10.12 is stopgezet.
- De ondersteuning voor de API U2F (Cryptotoken), die eerder als verouderd was aangeduid en standaard was uitgeschakeld, is beëindigd. In plaats van de API U2F is de API Web Authenticatie gekomen.
- Er zijn verbeteringen aangebracht in de tools voor webontwikkelaars. In de debugger is de mogelijkheid toegevoegd om de code opnieuw te starten vanaf het begin van de functie, na het activeren van een breakpoint ergens in het lichaam van de functie. Ondersteuning voor de ontwikkeling van extensies voor de Recorder-paneel is toegevoegd. In het paneel voor prestatie-analyse is ondersteuning voor visualisatie van labels, die in de webtoepassing zijn gezet via de aanroep van de methode performance.measure(), toegevoegd. Verbeterde aanbevelingen voor het automatisch aanvullen van eigenschappen van JavaScript-objecten. Bij het automatisch aanvullen van CSS-variabelen wordt een voorvertoning van waarden, die niet met kleuren zijn verbonden, aangeboden.

Naast nieuwe functies en bugfixes zijn er 27 kwetsbaarheden in de nieuwe versie verholpen. Veel van de kwetsbaarheden zijn ontdekt door middel van geautomatiseerde tests met de tools AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer en AFL. Kritieke problemen die in staat waren om alle beveiligingsniveaus van de browser te omzeilen en code buiten de sandbox-omgeving uit te voeren, zijn niet gevonden. In het kader van het beloningsprogramma voor het ontdekken van kwetsbaarheden heeft Google 22 premies ter waarde van 84.000 dollar betaald voor deze release (één premie van $ 15.000, één van $ 10.000, één van $ 8.000, één van $ 7.000, vier van $ 5.000, één van $ 4.000, drie van $ 3.000, vier van $ 2.000 en drie van $ 1.000). De hoogte van één beloning is nog niet vastgesteld.
Bron: opennet.ru

