Google heeft een release van de webbrowser Chrome 133 gepubliceerd. Tegelijkertijd is er een stabiele versie van het vrije project Chromium beschikbaar, dat de basis vormt voor Chrome. De browser Chrome onderscheidt zich van Chromium door het gebruik van Google-logo's, een systeem voor het verzenden van meldingen in geval van een crash, modules voor het afspelen van auteursrechtelijk beschermd videomateriaal (DRM), een systeem voor automatische updates, het constant inschakelen van Sandbox-isolatie, de levering van sleutels voor Google API en de overdracht van RLZ-parameters tijdens het zoeken. Voor gebruikers die meer tijd nodig hebben om te updaten, wordt er apart een Extended Stable-tak ondersteund, die 8 weken wordt vergezeld. De volgende release van Chrome 134 is gepland voor 4 maart.
Belangrijkste wijzigingen in Chrome 133:
- Voor 1% van de gebruikers is ondersteuning voor het bevriezen van tabbladen in de energiebesparende modus (Energy saver) ingeschakeld. Tabbladen die veel CPU-bronnen verbruiken en meer dan 5 minuten verborgen zijn, worden automatisch bevroren. Tabbladen die geluid afspelen en tabbladen die verband houden met het beheer van externe apparaten of het houden van video- en audioconferenties vallen niet onder de bevriezing (deze tabbladen worden geïdentificeerd op basis van toegang tot de API voor het werken met USB, Bluetooth, camera's, invoerapparaten en microfoons, evenals bij het organiseren van een communicatiekanaal met behulp van RTCDataChannel of MediaStreamTrack). Voor het beheren van de automatische bevriezing kan de instelling "chrome://flags/#freezing-on-energy-saver" worden gebruikt.
- In de Chrome Sync-service wordt de ondersteuning voor versies van Chrome ouder dan 4 jaar stopgezet. Om informatie vast te leggen aan een Google-account en browsergegevens tussen systemen te synchroniseren, moet ten minste versie Chrome 89 worden gebruikt.
- In de Android-versie is er een instelling toegevoegd om JIT-optimizers in de JavaScript-engine V8 uit te schakelen. Het uitschakelen van JIT kan nuttig zijn voor het verbeteren van de veiligheid bij het werken met potentieel gevaarlijke web-applicaties door het verminderen van mogelijke aanvallersvectoren. In desktopversies van Chrome is een vergelijkbare instelling beschikbaar op de pagina chrome://settings/security, beginnend vanaf release Chrome 122.
- Afgestemd op de standaard voor het parseren van niet-specifieke URL-schema's (die niet op de lijst met gebruikelijke schema's staan). Bijvoorbeeld, de URL "git://example.com/path".
- De mogelijkheden van de CSS-functie attr() zijn uitgebreid, waardoor het mogelijk is om in CSS waarden van een bepaalde HTML-attribuut te gebruiken. Voorheen kon de functie attr() alleen met de eigenschap "content" van pseudo-elementen werken en waarden omzetten naar het CSS-type<string>, maar nu kan deze met elke CSS-eigenschap worden toegepast en waarden naar elk CSS-type worden omgezet. In het onderstaande voorbeeld wordt de kleur in de CSS-eigenschap "color" ingesteld op basis van de analyse van het opgegeven eigenschap "data-foo" in het "div"-element, en als de attribuut niet is opgegeven, wordt de waarde "red" gebruikt. <div data-foo="»blue»">test</div> … div { color: attr(data-foo type(<color>), red); }
- CSS-query «@container scroll-state()» is geïmplementeerd, waarmee de scrollstatus van een gebied kan worden bepaald. Ondersteunde statussen zijn: «stuck» — een container die aan een van de kanten van het scrollgebied is bevestigd; «snapped» — een container die is uitgelijnd, horizontaal of verticaal; «scrollable» — een container die in de opgegeven richting kan worden gescrold.
- CSS-eigenschappen «text-box», «text-box-trim» en «text-box-edge» zijn toegevoegd, waardoor de marges voor en na de tekst nauwkeurig kunnen worden beheerd. De eigenschap «text-box-trim» definieert het knipgebied (boven, onder of aan beide zijden), terwijl «text-box-edge» de manier van het knippen van de randen aangeeft. De eigenschap «text-box» combineert de mogelijkheden van «text-box-trim» en «text-box-edge».
- De pseudo-klasse «:open» is toegevoegd aan CSS, waarmee kan worden bepaald wanneer de dialoogvensters voor elementen <dialog> en <details> zijn geopend, en wanneer voor elementen <select> en <input> de keuzemenu's worden weergegeven.
- De DOM-primitief moveBefore is toegevoegd voor het verplaatsen van een element in de DOM-boom zonder de status opnieuw in te stellen.
- De interface FileSystemObserver is toegevoegd, waarmee websites wijzigingen in het bestandssysteem kunnen volgen.
- In de API PublicKeyCredential is de methode getClientCapabilities() toegevoegd om de door de browser ondersteunde WebAuthn-mogelijkheden te bepalen.
- De Atomics-object bevat nu de eigenschap pause() om aan te geven dat de code wacht op het vrijgeven van een slot.
- In de API WebCrypto is ondersteuning toegevoegd voor het X25519-sleutelovereenkomstenschema, dat kan worden gebruikt via de SubtleCrypto-API (methoden generateKey, importKey, exportKey, deriveKey en deriveBits).
- In WebAssembly is de mogelijkheid gerealiseerd om 64-bits aanwijzers (Memory64) te gebruiken, waarmee lineaire geheugengebieden van meer dan 4 GB kunnen worden beheerd. Deze wijziging voegt geen nieuwe WebAssembly-instructies toe, maar stelt alleen 64-bits indexen beschikbaar voor bestaande instructies voor tabellen en geheugengebieden. Werken in de Memory64-modus leidt tot merkbare overhead — afhankelijk van de soort belasting kan dit vertragingen van 10% tot tweemaal veroorzaken.
- De mogelijkheden van de tools voor webontwikkelaars zijn uitgebreid. Het is nu mogelijk om de chatgeschiedenis met de AI-assistent tussen sessies op te slaan. Er is een "What's new"-paneel toegevoegd met een overzicht van de wijzigingen in de nieuwe versie. Er is een mogelijkheid toegevoegd om scripts in een negeerlijst te plaatsen, zodat ze niet op de prestatieprofileringsdiagram worden weergegeven. In het Performance-paneel, onder het tabblad Insights, worden afbeeldingen gemarkeerd waarvan de grootte geoptimaliseerd kan worden, en onder het tabblad Summary wordt de stacktrace van JavaScript-aanroepen weergegeven (inclusief asynchrone aanroepen).


Naast de nieuwe functies en bugfixes zijn in deze versie 12 kwetsbaarheden verholpen. Veel van de kwetsbaarheden werden ontdekt door geautomatiseerde tests met behulp van tools zoals AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer en AFL. Twee problemen die leiden tot toegang tot al vrijgegeven geheugen in de V8-engine en de Skia-bibliotheek zijn geclassificeerd als hoog risico. Er zijn geen kritieke problemen gevonden die het mogelijk maken om alle niveaus van browserbeveiliging te omzeilen en code buiten de sandboxomgeving uit te voeren. In het kader van het programma voor het uitbetalen van beloningen voor het ontdekken van kwetsbaarheden heeft Google voor deze release 2 premies van in totaal 9000 dollar uitbetaald (een premie van $7000 en een van $2000). De grootte van één beloning is nog niet bepaald.
Bron: opennet.ru


