Google heeft de release van webbrowser Chrome 101 aangekondigd. Tegelijkertijd is de stabiele release van het vrije 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 auteursrechtelijk beschermd videomateriaal (DRM), een systeem voor automatische updates, constante Sandbox-isolatie, levering van sleutels voor Google API en het doorgeven van RLZ-parameters tijdens het zoeken. Voor degenen die meer tijd nodig hebben voor updates, wordt een aparte Extended Stable-tak ondersteund, die gedurende 8 weken wordt onderhouden en waarin een update voor de vorige release Chrome 100 is voorbereid. De volgende release Chrome 102 is gepland voor 24 mei.
Belangrijkste wijzigingen in Chrome 101:
- De functie Side Search is toegevoegd, waarmee gebruikers zoekresultaten in een zijbalk kunnen bekijken terwijl ze een andere pagina bekijken (in één venster kunnen zowel de inhoud van de pagina als het resultaat van de zoekopdracht worden weergegeven). Wanneer je van een resultaatpagina van Google naar een bepaalde site gaat, verschijnt er een pictogram met de letter 'G' voor het invoerveld in de adresbalk, waarop je kunt klikken om de zijbalk met resultaten van de eerder uitgevoerde zoekopdracht te openen. Standaard is deze functie niet op alle systemen ingeschakeld; om deze in te schakelen kun je de instelling 'chrome://flags/#side-search' gebruiken.

- In de adresbalk Omnibox is er een functie voor vooraf tekenen (prerendering) van de inhoud van aanbevelingen die wordt aangeboden tijdens het invoeren. Eerder werden de meest waarschijnlijke aanbevelingen voor een snellere overgang vanuit de adresbalk geladen zonder te wachten op een klik van de gebruiker, gebruikmakend van de Prefetch-aanroep. Nu worden, naast het laden, de aanbevelingen ook in de buffer getekend (inclusief het uitvoeren van scripts en het opbouwen van de DOM-boom), waardoor onmiddellijk zichtbare aanbevelingen na de klik mogelijk zijn. Voor het beheren van de voorafgaande tekenfunctie zijn instellingen aangeboden zoals 'chrome://flags/#enable-prerender2', 'chrome://flags/#omnibox-trigger-for-prerender2' en 'chrome://flags/#search-suggestion-for-prerender2'.
- Informatie in de HTTP-header User-Agent en JavaScript-parameters navigator.userAgent, navigator.appVersion en navigator.platform is ingekort. In de header zijn alleen gegevens over de naam van de browser, de significante versie van de browser (de versies MINOR.BUILD.PATCH zijn vervangen door 0.0.0), het platform en het type apparaat (mobiele telefoon, pc, tablet) achtergelaten. Voor aanvullende gegevens, zoals de exacte versie en uitgebreide platformgegevens, moet de API User Agent Client Hints worden gebruikt. Voor websites die niet genoeg informatie hebben en nog niet klaar zijn om over te schakelen naar User Agent Client Hints, is er tot mei 2023 de mogelijkheid om de volledige User-Agent terug te geven.
- Het gedrag van de functie setTimeout is gewijzigd bij het doorgeven van een nulargument dat de vertraging van de aanroep bepaalt. Vanaf Chrome 101 zal de code bij het opgeven van "setTimeout(…, 0)" onmiddellijk worden aangeroepen, zonder een vertraging van 1 ms zoals gespecificeerd. Voor herhaalde geneste aanroepen van setTimeout wordt een vertraging van 4 ms toegepast.
- In de versie voor het Android-platform is ondersteuning voor de aanvraag van machtigingen voor het weergeven van meldingen geïmplementeerd (in Android 13 moet een app de machtiging "POST_NOTIFICATIONS" hebben om meldingen weer te geven; zonder deze machtiging worden meldingen geblokkeerd). Bij het draaien van Chrome in de Android 13-omgeving zal de browser nu een verzoek om machtigingen voor het weergeven van meldingen tonen.
- De mogelijkheid om de API WebSQL in externe scripts te gebruiken, is verwijderd. Standaard was de blokkering van WebSQL in scripts die niet van de huidige site zijn geladen ingeschakeld in Chrome 97, maar er was een optie om dit gedrag uit te schakelen. In Chrome 101 is deze optie verwijderd. In de toekomst is het plan om de ondersteuning van WebSQL geleidelijk volledig stop te zetten, ongeacht de gebruikscontext. In plaats van WebSQL wordt aangeraden de API Web Storage en Indexed Database te gebruiken. De WebSQL-handler is gebaseerd op SQLite-code en kon door aanvallers worden gebruikt om kwetsbaarheden in SQLite te exploiteren.
- De beleidsnamen voor ondernemingen (chrome://policy) die niet-inclusieve termen bevatten, zijn verwijderd. Vanaf Chrome 86 zijn er vervangingen voor deze beleidsregels voorgesteld, die inclusieve terminologie gebruiken. Termen zoals "whitelist", "blacklist", "native" en "master" zijn schoongemaakt. Bijvoorbeeld, de policy URLBlacklist is hernoemd naar URLBlocklist, AutoplayWhitelist naar AutoplayAllowlist, en NativePrinters naar Printers.
- In de Origin Trials (experimenterende functies die afzonderlijke activatie vereisen) is begonnen met het testen van de Federated Credential Management API (FedCM) in builds voor het Android-platform. Deze API maakt het mogelijk om samengestelde identificatiediensten te creëren die privacy waarborgen en werken zonder mechanismen voor cross-site tracking, zoals het verwerken van third-party cookies. De Origin Trial houdt in dat de API kan worden gebruikt vanuit applicaties die zijn gedownload vanaf localhost of 127.0.0.1, of na registratie en ontvangst van een speciale token die beperkt geldig is voor een specifieke site.
- De mechanismen Priority Hints zijn gestabiliseerd en aangeboden aan iedereen die het wil, waarmee je de belangrijkheid van de te laden middelen kunt aangeven door een extra attribuut 'importance' te gebruiken in tags zoals iframe, img en link. Het attribuut kan de waarden 'auto', 'low' en 'high' aannemen, die invloed hebben op de volgorde waarin externe middelen door de browser worden geladen.
- De eigenschap AudioContext.outputLatency is toegevoegd, waarmee je informatie kunt krijgen over de verwachte vertraging voordat geluid wordt uitgegeven (de vertraging tussen het verzoek om geluid en het begin van de verwerking van de ontvangen gegevens door het uitvoerapparaat).
- De CSS-eigenschap font-palette en de regel @font-palette-values zijn toegevoegd, waarmee je een palet uit een gekleurd lettertype kunt kiezen of een eigen palet kunt definiëren. Bijvoorbeeld, deze mogelijkheden kunnen worden gebruikt om gekleurde symbolische lettertypen of emoji aan te passen aan de kleur van de inhoud of om een donkere of lichte modus voor het lettertype in te schakelen.
- De CSS-functie hwb() is toegevoegd, die een alternatieve methode biedt om kleuren in sRGB aan te geven in het HWB-formaat (Hue, Whiteness, Blackness), dat lijkt op het HSL-formaat (Hue, Saturation, Lightness), maar eenvoudiger is voor menselijke perceptie.
- In de methode window.open() wordt het vermelden van de eigenschap popup in de windowFeatures-string, zonder een waarde toe te kennen (d.w.z. wanneer enkel popup is vermeld en niet popup=true), nu behandeld als het inschakelen van het openen van een verkleind pop-upvenster (vergelijkbaar met 'popup=true') in plaats van standaard een waarde van 'false' toe te wijzen, wat onlogisch was en ontwikkelaars in de war bracht.
- In de MediaCapabilities API, die informatie verstrekt over de mogelijkheden van het apparaat en de browser voor het decoderen van multimedia-inhoud (ondersteunde codecs, profielen, bitrates en resoluties), is ondersteuning voor WebRTC-stromen toegevoegd.
- De derde versie van de Secure Payment Confirmation API is aangeboden, die hulpmiddelen biedt voor een aanvullende bevestiging van een betalingsoperatie. In de nieuwe versie is ondersteuning toegevoegd voor identificatoren die invoer vereisen, de definitie van een pictogram voor het aangeven van een verificatiefout, en een optionele eigenschap payeeName.
- De API USBDevice heeft de methode forget() toegevoegd voor het intrekken van eerder verleende gebruikersrechten voor toegang tot een USB-apparaat. Bovendien zijn de instanties USBConfiguration, USBInterface, USBAlternateInterface en USBEndpoint nu gelijk bij strikte vergelijking ("===", verwijzen naar hetzelfde object), als ze zijn teruggegeven voor hetzelfde object USBDevice.
- Er zijn verbeteringen aangebracht aan de tools voor webontwikkelaars. Er is een mogelijkheid toegevoegd om gebruikersacties te importeren en exporteren in JSON-formaat (voorbeeld). In de webconsole en de code-weergave-interface is de berekening en weergave van privéspecificaties verbeterd. Ondersteuning voor het werken met het kleurmodel HWB is toegevoegd. In het CSS-paneel is de mogelijkheid toegevoegd om cascade-lagen te bekijken die zijn gedefinieerd met behulp van de @layer-regel.

Naast nieuwe functies en bugfixes zijn in de nieuwe versie 30 kwetsbaarheden verholpen. Veel van deze kwetsbaarheden zijn ontdekt door geautomatiseerd testen met behulp van tools zoals AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer en AFL. Er zijn geen kritieke problemen ontdekt die alle lagen van de browserbeveiliging kunnen omzeilen en code buiten de sandbox-omgeving kunnen uitvoeren. In het kader van het programma voor het uitbetalen van beloningen voor het ontdekken van kwetsbaarheden heeft Google voor deze release 25 premies ter waarde van 81.000 dollar uitbetaald (één premie van $10.000, drie premies van $7.500, drie premies van $7.000, één premie van $6.000, twee premies van $5.000, vier premies van $2.000, drie premies van $1.000 en één premie van $500). De grootte van 6 beloningen is nog niet bepaald.
Bron: opennet.ru


