Google heeft de release onthuld van de webbrowser Chrome 99. Tegelijkertijd is er een stabiele release van het gratis Chromium-project, dat als basis van Chrome dient, beschikbaar. De Chrome-browser onderscheidt zich door het gebruik van Google-logo's, de aanwezigheid van een systeem voor het verzenden van meldingen bij een crash, modules voor het afspelen van tegen kopiëren beveiligde video-inhoud (DRM), een systeem voor het automatisch installeren van updates en het verzenden van RLZ-parameters bij zoeken. De volgende Chrome 100-release staat gepland voor 29 maart.
Grote veranderingen in Chrome 99:
- In Chrome voor Android Het mechanisme voor certificaattransparantie is ingeschakeld, waardoor een onafhankelijk openbaar logboek wordt bijgehouden van alle uitgegeven en ingetrokken certificaten. Dit openbare logboek maakt onafhankelijke controle mogelijk van alle wijzigingen en acties door certificeringsinstanties en detecteert direct pogingen om heimelijk vervalste documenten aan te maken. Certificaten die niet in certificaattransparantie zijn opgenomen, worden automatisch door de browser geweigerd en er wordt een bijbehorende foutmelding weergegeven. Voorheen was dit mechanisme alleen beschikbaar voor de desktopversie en voor een klein percentage gebruikers. Android.
- Vanwege een groot aantal klachten is het Private Network Access-mechanisme, dat eerder in testmodus werd voorgesteld en gericht was op het versterken van de bescherming tegen aanvallen met betrekking tot toegang tot bronnen op een lokaal netwerk of op de computer van een gebruiker (localhost) via scripts die worden geladen bij het openen van een site, uitgeschakeld. Om bescherming te bieden tegen dit soort aanvallen, wordt voorgesteld om bij het benaderen van subbronnen in het interne netwerk een expliciet verzoek te versturen om toestemming om deze subbronnen te downloaden. Google zal de implementatie evalueren op basis van de ontvangen feedback en in een toekomstige release een verbeterde versie aanbieden.
- De mogelijkheid om standaardzoekmachines te verwijderen is hersteld. Laten we eens kijken naar het feit dat vanaf Chrome 97 in de configurator in het gedeelte ‘Zoekmachinebeheer’ (chrome://settings/searchEngines) de mogelijkheid om items uit de lijst met standaardzoekmachines (Google, Bing, Yahoo) te verwijderen en zoekmachineparameters te bewerken, niet meer mogelijk was, wat bij veel gebruikers tot ontevredenheid leidde.
- Op het platform Windows De mogelijkheid om zelfstandige webapplicaties (PWA, Progressive Web App) te verwijderen via systeeminstellingen of controlepaneel naar analogie met verwijdering Windows-toepassingen.
- Er worden laatste tests uitgevoerd om te zien of sites kunnen worden verstoord als de browser een versienummer bereikt dat bestaat uit drie cijfers in plaats van twee (er zijn veel problemen aan het licht gekomen in de User-Agent parsing-bibliotheken na de release van Chrome 10). Wanneer u de optie "chrome://flags#force-major-version-to-100" inschakelt, wordt versie 100 weergegeven in de User-Agent-header.
- CSS biedt ondersteuning voor trapsgewijze lagen, gedefinieerd met de @layer-regel en geïmporteerd via de @import CSS-regel met behulp van de layer()-functie. CSS-regels binnen een enkele cascadelaag worden samengevoegd, waardoor het eenvoudiger wordt om de hele cascade te beheren. Bovendien biedt het flexibiliteit bij het wijzigen van de volgorde van de lagen en kunt u CSS-bestanden explicieter beheren om conflicten te voorkomen. Cascading-lagen zijn handig voor ontwerpthema's, het definiëren van standaardelementstijlen en het exporteren van componentontwerpen naar externe bibliotheken.
- De showPicker()-methode is toegevoegd aan de HTMLInputElement-klasse, waardoor u kant-en-klare dialoogvensters kunt weergeven voor het invullen van typische waarden in velden met de typen "datum", "maand", "week", "tijd", "datetime-local", "kleur" en "bestand", en voor velden die automatisch invullen en datalist ondersteunen. U kunt bijvoorbeeld een kalenderachtige interface weergeven voor het selecteren van een datum of een palet voor het invoeren van een kleur.

- In de Origin Trials-modus (experimentele functies die aparte activering vereisen) is de mogelijkheid geïmplementeerd om de donkere modus voor webapplicaties in te schakelen. De kleuren en de achtergrond voor het donkere thema worden geselecteerd met behulp van het nieuwe veld color_scheme_dark in het manifestbestand van de webtoepassing. Met Origin Trial kunt u met de opgegeven API werken vanuit applicaties die zijn geladen vanaf localhost of 127.0.0.1, of nadat u zich hebt geregistreerd en een speciaal token hebt ontvangen dat gedurende een beperkte tijd geldig is voor een specifieke site.
- De API voor handschriftherkenning is gestabiliseerd en voor iedereen beschikbaar gesteld, waardoor u gebruik kunt maken van de handschriftherkenningsdiensten die het besturingssysteem biedt.
- Voor geïnstalleerde, zelfstandige webapplicaties (PWA, Progressive Web App) is de Window Controls Overlay-component gestabiliseerd, waardoor het schermgebied van de applicatie wordt uitgebreid naar het volledige venster, inclusief het titelgebied, waarop de standaardknoppen voor vensterbediening (sluiten, minimaliseren, maximaliseren) zijn geplaatst. Met een webtoepassing kunt u de weergave en invoerverwerking van het hele venster beheren, met uitzondering van het overlayblok met vensterbesturingsknoppen.
- De CSS-functie calc() staat de waarden "infinity", "-infinity" en "NaN" toe, of expressies die zulke waarden opleveren, zoals 'calc(1/0)'.
- De CSS-eigenschap color-scheme, waarmee u kunt bepalen in welke kleurenschema's een element correct kan worden weergegeven ("licht", "donker", "dagmodus" en "nachtmodus"), is uitgebreid met de parameter "only", waarmee u gedwongen wijzigingen in het kleurenschema voor afzonderlijke HTML-elementen kunt uitsluiten. Als u bijvoorbeeld "div { color-scheme: only light }" opgeeft, wordt alleen het lichte thema gebruikt voor het div-element, zelfs als de browser gedwongen wordt het donkere thema te gebruiken.
- Met de push()- en pop()-bewerkingen kunt u nu de waarden van de eigenschap document.adoptedStyleSheets wijzigen in plaats van de eigenschap volledig opnieuw toe te wijzen. Bijvoorbeeld: "document.adoptedStyleSheets.push(newSheet);".
- De implementatie van de CanvasRenderingContext2D-interface is bijgewerkt met ondersteuning voor de gebeurtenissen ContextLost en ContextRestored, de reset()-methode, de optie "willReadFrequently", CSS-tekstmodifiers, het roundRect-renderingelement en conische gradiënten. Verbeterde ondersteuning voor SVG-filters.
- Het voorvoegsel "-webkit-" is verwijderd uit de eigenschappen "text-emphasis", "text-emphasis-color", "text-emphasis-position" en "text-emphasis-style".
- Voor pagina's die zonder HTTPS worden geopend, is toegang tot de Battery Status API, waarmee u informatie kunt opvragen over de batterijlading, niet toegestaan.
- De navigator.getGamepads()-methode geeft nu een reeks Gamepad-objecten uit in plaats van GamepadList. GamepadList wordt niet langer ondersteund in Chrome, wat overeenkomt met de standaard en het gedrag van de Gecko- en Webkit-engines.
- De WebCodecs API is in overeenstemming gebracht met de specificatie. Met name de EncodedVideoChunkOutputCallback()-methode en de VideoFrame()-constructor zijn gewijzigd.
- De V8 JavaScript-engine voegt nieuwe eigenschappen toe aan de Intl.Locale API: kalenders, collaties, hourCycles, numberingSystems, timeZones, textInfo en weekInfo. Deze bieden informatie over ondersteunde kalenders, tijdzones en tijd- en tekstparameters. const arabicEgyptLocale = new Intl.Locale('ar-EG') // ar-EG arabicEgyptLocale.calendars // ['gregory', 'coptic', 'islamic', 'islamic-civil', 'islamic-tbla'] arabicEgyptLocale.collations // ['compat', 'emoji', 'eor'] arabicEgyptLocale.hourCycles // ['h12'] arabicEgyptLocale.numberingSystems // ['arab'] arabicEgyptLocale.timeZones // ['Africa/Cairo'] arabicEgyptLocale.textInfo // { richting: 'rtl' } japaneseLocale.textInfo // { richting: 'ltr' } chineseTaiwanLocale.textInfo // { richting: 'ltr' }
- Functie Intl.supportedValuesOf(code) toegevoegd die een reeks ondersteunde id's retourneert voor de Intl API voor de eigenschappen kalender, collatie, valuta, numberingSystem, timeZone en eenheid. Intl.supportedValuesOf('eenheid') // ['acre', 'bit', 'byte', 'celsius', 'centimeter', …]
- Er zijn verbeteringen doorgevoerd in de hulpmiddelen voor webontwikkelaars. Via het netwerkpaneel kunt u WebSocket-aanvragen voor foutopsporing vertragen bij trage netwerkverbindingen. Er is een paneel toegevoegd aan het tabblad Toepassing voor het volgen van rapporten die zijn gegenereerd via de Rapportage-API. Het paneel Recorder ondersteunt nu het wachten tot een element zichtbaar of klikbaar wordt voordat een opgenomen opdracht wordt afgespeeld. Emulatie van het donkere thema is vereenvoudigd. Verbeterde bediening van panelen via touchscreens. De webconsole ondersteunt nu escape-reeksen voor het markeren van tekst in kleur, voegt ondersteuning toe voor de substitutiemaskers %s, %d, %i en %f en verbetert de werking van berichtfilters.

Naast vernieuwingen en bugfixes elimineert de nieuwe versie 28 kwetsbaarheden. Veel van de kwetsbaarheden werden geïdentificeerd door geautomatiseerde tests met behulp van de tools AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer en AFL. Er zijn geen kritieke problemen geïdentificeerd waarmee alle niveaus van browserbeveiliging omzeild zouden kunnen worden en code in het systeem buiten de sandbox-omgeving zou kunnen worden uitgevoerd. Als onderdeel van het bug bounty-programma voor de huidige release heeft Google 21 premies uitgekeerd met een totale waarde van $ 96 (één premie van $ 15000, twee premies van $ 10000, zes premies van $ 7000, twee premies van $ 5000, twee premies van $ 3000 en één premie van $ 2000 en $ 1000).
Bron: opennet.ru


