Google heeft de release van de webbrowser Chrome 94 gepresenteerd. Tegelijkertijd is er een stabiele release van het open source project Chromium beschikbaar, dat de basis vormt voor Chrome. De browser Chrome valt op door het gebruik van Google-logo's, een systeem voor het verzenden van meldingen bij crashes, modules voor het afspelen van beveiligde videocontent (DRM), een automatisch updatesysteem en het doorgeven van RLZ-parameters tijdens het zoeken. De volgende release van Chrome 95 is gepland voor 19 oktober.
Met de release van Chrome 94 is de ontwikkeling overgeschakeld naar een nieuwe cyclus voor de releasevoorbereidingen. Nieuwe significante releases zullen nu elke 4 weken worden gepubliceerd, in plaats van elke 6 weken, wat het mogelijk maakt om nieuwe mogelijkheden sneller aan gebruikers te presenteren. Er wordt opgemerkt dat de optimalisatie van het releasevoorbereidingsproces en de verbetering van het testsysteem het mogelijk maken om vaker releases te formuleren zonder in te boeten op kwaliteit. Voor bedrijven en voor degenen die meer tijd nodig hebben voor updates, zal er elke 8 weken een aparte editie van Extended Stable worden uitgebracht, die het mogelijk maakt om over te schakelen naar nieuwe functionele releases niet elke 4 weken, maar elke 8 weken.
Belangrijkste veranderingen in Chrome 94:
- De HTTPS-First-modus is toegevoegd, die lijkt op de eerder verschenen HTTPS Only-modus in Firefox. Als de modus in de instellingen is geactiveerd, zal de browser bij een poging om een bron zonder encryptie via HTTP te openen, eerst proberen de site via HTTPS te benaderen. Als deze poging mislukt, krijgt de gebruiker een waarschuwing te zien dat HTTPS niet wordt ondersteund en wordt hij voorgesteld om de site zonder encryptie te openen. In de toekomst overweegt Google om HTTPS-First standaard voor alle gebruikers in te schakelen, toegang tot sommige mogelijkheden van het webplatform te beperken voor pagina's die via HTTP zijn geopend, en extra waarschuwingen toe te voegen om gebruikers te informeren over de risico's van het bezoeken van niet-geƫncrypteerde sites. De modus kan worden ingeschakeld in de instellingen onder 'Privacy en beveiliging' > 'Beveiliging' > 'Geavanceerd'.

- Voor pagina's die zonder HTTPS zijn geopend, is het verboden om verzoeken (het laden van middelen) naar lokale URL's (bijvoorbeeld 'http://router.local' en localhost) en interne adressen (127.0.0.0/8, 192.168.0.0/16, 10.0.0.0/8, enz.) te verzenden. Er is een uitzondering gemaakt voor pagina's die zijn geladen met servers, met interne IP. Bijvoorbeeld, een pagina geladen met de server 1.2.3.4 kan toegang krijgen tot een bron die is geplaatst op IP 192.168.0.1 of IP 127.0.0.1, terwijl een pagina geladen van de server 192.168.1.1 dat kan. De wijziging voegt een extra niveau van bescherming toe tegen het exploiteren van kwetsbaarheden in handlers die verzoeken van lokale IPās accepteren en biedt ook bescherming tegen aanvvallen zoals 'DNS rebinding'.
- De functie 'Sharing Hub' is toegevoegd, waarmee gebruikers snel een link naar de huidige pagina kunnen delen met anderen. Er is de mogelijkheid om een QR-code met de URL te genereren, de pagina op te slaan, de link naar een ander apparaat dat aan het gebruikersaccount is gekoppeld te sturen, en de link naar externe sites zoals Facebook, WhatsApp, Twitter en VK door te geven. Deze mogelijkheid is nog niet voor alle gebruikers beschikbaar. Om de 'Share'-knop in het menu en de adresbalk af te dwingen, kunnen de instellingen 'chrome://flags/#sharing-hub-desktop-app-menu' en 'chrome://flags/#sharing-hub-desktop-omnibox' worden gebruikt.

- De interface voor browserinstellingen is herstructureerd. Elke instelling sectie wordt nu weergegeven op een aparte pagina, in plaats van op ƩƩn enkele pagina.

- Ondersteuning voor dynamische updates van het logboek van uitgegeven en ingetrokken certificaten (Certificate Transparency) is geĆÆmplementeerd, dat nu zal worden bijgewerkt zonder afhankelijkheid van browserupdates.
- Er is een servicepagina 'chrome://whats-new' toegevoegd die een overzicht toont van zichtbare wijzigingen voor de gebruiker in de nieuwe versie. De pagina wordt automatisch weergegeven na de update of is toegankelijk via de knop 'Wat is nieuw' (What's New) in het Help-menu. Momenteel worden op de pagina de functies tabbladen zoeken, profiel splitsing en de functie om de achtergrondkleur te veranderen genoemd, die niet specifiek zijn voor Chrome 94 en in eerdere versies zijn verschenen. De weergave van de pagina is voorlopig niet voor alle gebruikers ingeschakeld: voor het beheren van de activatie kunnen de instellingen 'chrome://flags#chrome-whats-new-ui' en 'chrome://flags#chrome-whats-new-in-main-menu-new-badge' worden gebruikt.

- Het gebruik van de WebSQL API vanuit inhoud die van externe sites wordt geladen (bijvoorbeeld via iframe) is verouderd verklaard. In Chrome 94 verschijnt er een waarschuwing wanneer geprobeerd wordt toegang te krijgen tot WebSQL vanuit externe scripts, maar vanaf Chrome 97 zullen dergelijke verzoeken worden geblokkeerd. In de toekomst is het de bedoeling om de ondersteuning voor WebSQL geleidelijk volledig te beƫindigen, ongeacht de gebruikscontext. De WebSQL-handler is gebaseerd op SQLite-code en kon door kwaadwillenden worden gebruikt om kwetsbaarheden in SQLite te exploiteren.
- Om veiligheidsredenen en ter voorkoming van kwaadaardige activiteiten is begonnen met het blokkeren van het gebruik van het verouderde MK-protocol (URL:MK), dat ooit in Internet Explorer werd gebruikt en webapplicaties in staat stelde om informatie uit gecomprimeerde bestanden te extraheren.
- De ondersteuning voor synchronisatie met oudere versies van Chrome (Chrome 48 en ouder) is beƫindigd.
- In de HTTP-header Permissions-Policy, die is bedoeld om bepaalde mogelijkheden in te schakelen en toegang tot API's te beheren, is ondersteuning toegevoegd voor de vlag 'display-capture', waarmee het gebruik van de Screen Capture API op de pagina kan worden beheerd (standaard is de mogelijkheid om inhoud van het scherm uit externe iframes vast te leggen geblokkeerd).
- 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.
- De WebGPU API is toegevoegd, ter vervanging van de WebGL API en biedt middelen voor het uitvoeren van bewerkingen op de GPU, zoals rendering en berekeningen. Conceptueel is WebGPU vergelijkbaar met de Vulkan, Metal en Direct3D 12 API's. WebGPU verschilt conceptueel van WebGL ongeveer zoals de Vulkan graphics API verschilt van OpenGL, maar is niet afhankelijk van een specifieke graphics API en vormt een universele laag die dezelfde low-level primitieve gebruikt die beschikbaar zijn in Vulkan, Metal en Direct3D 12.
WebGPU biedt JavaScript-toepassingen middelen voor low-level controle over de organisatie, verwerking en overdracht van opdrachten naar de GPU, evenals het beheer van gerelateerde bronnen, geheugen, buffers, texture-objecten en gecompileerde graphics shaders. Deze aanpak stelt ontwikkelaars in staat om grafische toepassingen met hogere prestaties te bereiken door overhead te verminderen en de efficiƫntie van de GPU te verbeteren. De API biedt ook de mogelijkheid om complexe 3D-projecten voor het web te creƫren die net zo goed presteren als zelfstandige programma's, maar niet aan specifieke platformen gebonden zijn.
- Voor afzonderlijke PWA-applicaties is de mogelijkheid geĆÆmplementeerd om zich te registreren als URL-handlers. Bijvoorbeeld, de applicatie music.example.com kan zichzelf registreren als handler voor de URL https://*.music.example.com, en alle overgangen vanuit externe applicaties via deze links, bijvoorbeeld vanuit messengers en e-mailclients, zullen leiden tot het openen van deze PWA-applicaties in plaats van een nieuw tabblad in de browser.
- Er is ondersteuning toegevoegd voor de nieuwe HTTP-responscode ā 103, die kan worden gebruikt voor anticiperende header-output. Code 103 stelt de client in staat om onmiddellijk na de aanvraag te worden geĆÆnformeerd over de inhoud van bepaalde HTTP-headers, zonder te wachten tot de server alle bij de aanvraag betrokken operaties heeft uitgevoerd en begint met het leveren van inhoud. Op dezelfde manier kunnen hints over gerelateerde elementen van de pagina die kunnen worden voorgeladen worden verstrekt (bijvoorbeeld kunnen links naar gebruikte css- en javascript-bestanden worden gegeven). Zodra de browser informatie over dergelijke bronnen ontvangt, begint deze met hun download zonder te wachten tot de hoofdpagina is geladen, waardoor de totale verwerkingstijd van de aanvraag kan worden verkort.
- De WebGPU API is toegevoegd, ter vervanging van de WebGL API en biedt middelen voor het uitvoeren van bewerkingen op de GPU, zoals rendering en berekeningen. Conceptueel is WebGPU vergelijkbaar met de Vulkan, Metal en Direct3D 12 API's. WebGPU verschilt conceptueel van WebGL ongeveer zoals de Vulkan graphics API verschilt van OpenGL, maar is niet afhankelijk van een specifieke graphics API en vormt een universele laag die dezelfde low-level primitieve gebruikt die beschikbaar zijn in Vulkan, Metal en Direct3D 12.
- De WebCodecs API is toegevoegd voor het manipuleren van multimediale stromen op laag niveau, ter aanvulling van de hoog-niveau API's zoals HTMLMediaElement, Media Source Extensions, WebAudio, MediaRecorder en WebRTC. De nieuwe API kan van belang zijn in gebieden zoals game streaming, het toepassen van effecten aan de clientzijde, het herschalen van stromen en het ondersteunen van niet-standaard multimediale containers. In plaats van afzonderlijke codecs te implementeren in JavaScript of WebAssembly, biedt de WebCodecs API toegang tot kant-en-klare, hoogpresterende componenten die in de browser zijn ingebouwd. In het bijzonder biedt de WebCodecs API decoders en encoders voor audio en video, afbeeldingsdecoders en functies voor het werken met afzonderlijke videokaders op laag niveau.
- Ge Stabiliseerde API Insertable Streams, die de mogelijkheid biedt om onbewerkte multimedia streams te manipuleren die via de API MediaStreamTrack worden verzonden, zoals gegevens van camera en microfoon, het resultaat van schermopname of tussentijdse gegevens van de decoders. Voor het weergeven van onbewerkte frames worden de WebCodec interfaces gebruikt, waarna een stroom wordt gevormd die vergelijkbaar is met de stroom die de API WebRTC Insertable Streams genereert op basis van RTCPeerConnections. Vanuit praktisch oogpunt stelt de nieuwe API in staat om functionaliteit te implementeren zoals het toepassen van machinelearning-methoden voor het identificeren of annoteren van objecten in real-time of voor het toevoegen van effecten zoals achtergrondverwijdering, voor of na codering door de codec.
- De method scheduler.postTask() is gestabiliseerd, waarmee het beheer van de planning van taakuitvoeringen (callback-aanroepen in JavaScript) met verschillende prioriteitsniveaus mogelijk is. Er zijn drie prioriteitsniveaus: 1 - eerst uitvoeren, zelfs als dit gebruikersoperaties kan blokkeren; 2 - ziebare veranderingen voor de gebruiker zijn toegestaan; 3 - uitvoeringen op de achtergrond). Voor het wijzigen van prioriteiten en het annuleren van taken kan het TaskController-object worden gebruikt.
- De API Idle Detection is gestabiliseerd en wordt nu verspreid buiten Origin Trials voor het detecteren van gebruikersinactiviteit. De API maakt het mogelijk om te bepalen wanneer een gebruiker niet met het toetsenbord/muis interacteert, de screensaver is gestart, het scherm is vergrendeld of er werk wordt uitgevoerd op een ander scherm. De applicatie wordt geĆÆnformeerd over inactiviteit door een melding te versturen wanneer een vooraf gedefinieerde inactiviteitsdrempel is bereikt.
- Het proces voor kleurbeheer in de objecten CanvasRenderingContext2D en ImageData en het gebruik van het kleurenspectrum sRGB is geformaliseerd. De mogelijkheid is gegeven om objecten CanvasRenderingContext2D en ImageData te creƫren in kleurenspectra die verschillen van sRGB, zoals Display P3, om de uitgebreide mogelijkheden van moderne beeldschermen te benutten.
- In de API VirtualKeyboard zijn methoden en eigenschappen toegevoegd om het tonen en verbergen van het virtuele toetsenbord te beheren, evenals om informatie te verkrijgen over de grootte van het weergegeven virtuele toetsenbord.
- In JavaScript, classes have the option to use static initialization blocks to group code that runs once when the class is processed: class C { // The block will execute during the class processing static { console.log('Cās static block'); } }
- In the CSS properties flex-basis and flex, the keywords content, min-content, max-content, and fit-content have been implemented for more flexible control over the size of the main Flexbox area.
- The CSS property scrollbar-gutter has been added to manage the screen space reserved for the scroll bar. For example, when scrolling is not needed, the output can be expanded to occupy the area of the scroll bar.
- The Self Profiling API has been added, implementing a profiling system that allows measuring the execution time of JavaScript on the client side to debug performance issues in JavaScript code without manual manipulations in the web developers' interface.
- After the removal of the Flash plugin, it was decided to return empty values in the properties navigator.plugins and navigator.mimeTypes, but it turned out that some applications used them to check for the presence of plugins to display PDF files. Since Chrome has a built-in PDF viewer, the properties navigator.plugins and navigator.mimeTypes will now return a fixed list of standard plugins and MIME types for viewing PDFs ā 'PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer and WebKit built-in PDF'.
- Improvements have been made to the web developer tools. Devices Nest Hub and Nest Hub Max have been added to the screen simulation list. An invert filter button has been added to the network activity inspection interface (for example, when the filter 'status-code: 404' is set, you can quickly view all other requests), and the ability to see the original values of the Set-Cookie headers has been provided (allowing you to assess the presence of incorrect values removed during normalization). The sidebar in the web console has been marked as deprecated and will be removed in one of the following releases. An experimental ability to hide issues in the Issues tab has been added. In settings, the option to select the interface language has been added.

Naast de innovaties en bugfixes in de nieuwe versie zijn er 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 beveiligingsniveaus van de browser kunnen omzeilen en code buiten de sandbox-omgeving kunnen uitvoeren. In het kader van het beloningsprogramma voor het ontdekken van kwetsbaarheden heeft Google voor deze release 17 beloningen uitbetaald, ter waarde van 56.500 USD (ƩƩn beloning van $15.000, twee beloningen van $10.000, ƩƩn beloning van $7.500, vier beloningen van $3.000 en twee beloningen van $1.000). De hoogte van 7 beloningen is nog niet vastgesteld.
Bron: opennet.ru





