Google heeft de release van webbrowser Chrome 95 aangekondigd. Tegelijkertijd is er een stabiele release van het open-source project Chromium beschikbaar, dat de basis vormt voor Chrome. De Chrome-browser valt op door het gebruik van de Google-logo's, een systeem voor het verzenden van meldingen bij crashes, modules voor het afspelen van beveiligde videocontent (DRM), een systeem voor automatische updates en het doorsturen van RLZ-parameters tijdens zoekopdrachten. In overeenstemming met de nieuwe ontwikkelingscyclus van vier weken is de volgende release van Chrome 96 gepland voor 16 november. Voor gebruikers die meer tijd nodig hebben voor de update, ondersteunt men een aparte tak genaamd Extended Stable, die gedurende acht weken wordt onderhouden en waarin een update voor de vorige release Chrome 94 is gemaakt.
Belangrijkste veranderingen in Chrome 95:
- Voor gebruikers van Linux, Windows, macOS en ChromeOS is er een nieuwe zijbalk beschikbaar, die aan de rechterkant van de inhoud wordt weergegeven en kan worden geactiveerd door op een speciaal pictogram in de adresbalk te klikken. In de zijbalk wordt een samenvatting van bladwijzers en een leeslijst weergegeven. Deze wijziging is niet voor alle gebruikers ingeschakeld; om het te activeren kan de instelling 'chrome://flags/#side-panel' worden gebruikt.

- Er is een expliciete aanvraag voor rechten geïmplementeerd om adressen op te slaan die in webformulieren zijn ingevoerd, voor later gebruik in het systeem voor automatische aanvulling van formulieren. Wanneer adressen in de formulieren worden gedetecteerd, wordt de gebruiker nu een dialoogvenster getoond dat de mogelijkheid biedt om het adres op te slaan, te bewerken, een eerder opgeslagen adres bij te werken of het opslaan van het adres te weigeren.
- De code ter ondersteuning van het FTP-protocol is verwijderd. In Chrome 88 was de ondersteuning voor FTP standaard uitgeschakeld, maar er was een vlag voor heractivering.
- Ondersteuning voor URL's met hostnamen die eindigen op een cijfer, maar niet overeenkomen met IPv4-adressen, is gestopt. Bijvoorbeeld, URL's 'http://127.1/', 'http://foo.127.1/' en 'http://127.0.0.0.1' worden nu als ongeldig beschouwd.
- Voor WebAssembly is de mogelijkheid geïmplementeerd om uitzondering handlers te maken die de uitvoering kunnen onderscheppen in het geval van uitzonderingen tijdens de uitvoering van bepaalde code. Zowel het onderscheppen van bekende uitzonderingen van WebAssembly-modules als uitzonderingen tijdens het aanroepen van geïmporteerde functies wordt ondersteund. Voor het onderscheppen van uitzonderingen moet de WebAssembly-module worden opgebouwd met een compiler die uitzondering-ondersteuning biedt, zoals Emscripten.
Het wordt opgemerkt dat foutafhandeling op niveau van WebAssembly de grootte van de genereerde code aanzienlijk kan verminderen in vergelijking met foutafhandeling door JavaScript. Bijvoorbeeld, de optimalisator Binaryen met foutafhandeling door JavaScript leidt tot een toename van de code met 43%, terwijl dit met WebAssembly maar 9% is. Daarnaast verschilt de prestatie van code met foutafhandeling door WebAssembly praktisch niet van code zonder foutafhandelingsmechanismen in de ‘-O3’ optimalisatiemodus, terwijl foutafhandeling via JavaScript resulteert in een vertragingspercentage van 30%.
- Het is verboden om WebAssembly-modules gezamenlijk te gebruiken tussen verschillende domeinen (cross-origin) bij de verwerking van één website.
- 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.
- Er is een beperking toegevoegd aan de informatie in de HTTP-header User-Agent en de JavaScript-parameters navigator.userAgent, navigator.appVersion en navigator.platform. In de header zijn alleen de gegevens over de naam van de browser, de significante versie van de browser, het platform en het type apparaat (smartphone, pc, tablet) behouden. Voor extra gegevens, zoals de exacte versie en uitgebreide platforminformatie, moet de API User Agent Client Hints worden gebruikt. De start van de beperking van User-Agent op systemen voor reguliere gebruikers is gepland voor de release van Chrome 102, die over zes maanden verschijnt.
- Er is een mogelijkheid voorgesteld voor het creëren van toegangshandvatten (Access Handles) voor de API File System Access, die webapplicaties in staat stelt om direct gegevens te lezen en te schrijven naar bestanden en mappen op het apparaat van de gebruiker. Om de manieren waarop webapplicaties toegang krijgen tot het bestandssysteem te verminderen, is Google van plan om de API File System Access en Storage Foundation te combineren. Als een voorbereidende fase voor zo'n combinatie is de ondersteuning van toegangshandvatten voorgesteld, die de besturingsmethoden op basis van bestandsdescriptoren aanvult met uitgebreide mogelijkheden, zoals het instellen van schrijfvergrendeling door andere processen en het creëren van gescheiden schrijf- en leesstromen, waaronder ondersteuning voor lezen en schrijven van workers in gesynchroniseerde modus.
- De API Secure Payment Confirmation is gestabiliseerd en standaard aangeboden, met de implementatie van de nieuwe uitbreiding ‘payment’ die zorgt voor een aanvullende bevestiging van de betalingsoperatie. De controleplichtige, bijvoorbeeld de bank, heeft de mogelijkheid om een openbare sleutel PublicKeyCredential te genereren, die door de verkoper kan worden opgevraagd voor een extra veilige bevestiging van de betaling via de API Payment Request, gebruikmakend van de betaalmethode ‘secure-payment-confirmation’.
- In de callback-aanroepen, ingesteld via de constructor PerformanceObserver, is de eigenschap droppedEntriesCount geïmplementeerd, waardoor kan worden begrepen hoeveel prestatiestatistieken van de website zijn verworpen omdat ze niet in de verstrekte buffer pasten.
- De API EyeDropper is toegevoegd, waarmee de aangeboden browserinterface voor het bepalen van de kleur van willekeurige pixels op het scherm kan worden aangeroepen, wat bijvoorbeeld kan worden toegepast in grafische editors die zijn gerealiseerd als webapplicaties. const eyeDropper = new EyeDropper(); const result = await eyeDropper.open(); // result = {sRGBHex: ‘#160731’}
- De functie self.reportError() is toegevoegd, waarmee scripts fouten naar de console kunnen loggen, door het optreden van een onopgevangen uitzondering te emuleren.
- De API URLPattern is toegevoegd om te controleren of een URL aan een bepaald patroon voldoet, wat bijvoorbeeld kan worden gebruikt voor het parseren van links en voor het omleiden van verzoeken naar handlers in de service worker. const p = new URLPattern({ protocol: ‘https’, hostname: ‘example.com’, pathname: ‘/:folder/*/:fileName.jpg’, });
- De API Intl.DisplayNames is uitgebreid, waarmee gelokaliseerde namen van talen, landen, valuta, datumselementen en meer kunnen worden verkregen. In de nieuwe versie zijn nieuwe naamtypes ‘calendar’ en ‘dateTimeField’ toegevoegd, waardoor gelokaliseerde namen van kalenders en datum- en tijdvelden (zoals de namen van maanden) kunnen worden verkregen. Voor het type ‘language’ is ondersteuning voor het gebruik van dialecten van talen toegevoegd.
- In de API Intl.DateTimeFormat is ondersteuning toegevoegd voor nieuwe waarden van de parameter timeZoneName: ‘shortGeneric’ voor het weergeven van een korte tijdzone-id (bijvoorbeeld ‘PT’, ‘ET’), ‘longGeneric’ voor een lange (‘Pacific Time’, ‘Mountain Time’), ‘shortOffset’ met een korte verschuiving ten opzichte van GMT (‘GMT+5’) en ‘longOffset’ met een lange verschuiving ten opzichte van GMT (‘GMT+0500’).
- De U2F API (Cryptotoken) is als verouderd verklaard, en moet worden vervangen door de Web Authentication API. De U2F API zal standaard zijn uitgeschakeld in de release van Chrome 98 en volledig worden verwijderd in Chrome 104.
- Er zijn verbeteringen aangebracht in de tools voor webontwikkelaars. In het Styles-paneel is de aanpassing van CSS-eigenschappen gerelateerd aan grootte (hoogte, padding, etc.) vereenvoudigd. In het Issues-tabblad is het mogelijk om afzonderlijke problemen te verbergen. In de webconsole en de panelen Sources en Properties is de weergave van eigenschappen verbeterd (eigen eigenschappen worden nu vetgedrukt weergegeven en bovenaan de lijst getoond).

Naast de nieuwe functies en bugfixes zijn er in de nieuwe versie 19 kwetsbaarheden verholpen. Veel van deze kwetsbaarheden zijn ontdekt door geautomatiseerd testen met tools zoals AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer en AFL. Er zijn geen kritieke problemen gevonden die alle niveaus van browserbeveiliging kunnen omzeilen en code buiten de sandbox-omgeving kunnen uitvoeren. In het kader van het beloningsprogramma voor het melden van kwetsbaarheden heeft Google voor deze release 16 premies uitgekeerd ter waarde van 74.000 dollar (één premie van 20.000 dollar, twee premies van 10.000 dollar, één premie van 7.500 dollar, één premie van 6.000 dollar, drie premies van 5.000 dollar en elke premie van 3.000 dollar, 2.000 dollar en 1.000 dollar). De omvang van 5 premies is nog niet bepaald.
Bron: opennet.ru


