Google heeft versie 88 van zijn webbrowser Chrome uitgebracht. Google Chrome is beschikbaar voor Windows, Linux en macOS. Er zijn ook versies voor Android en iOS, maar die volgen een iets ander releaseschema. In versie 88 zijn er een aantal dingen die niet meer mogelijk zijn, zoals Adobe Flash, ftp, dtls 1.0 en downloads over een niet-beveiligde verbinding. Gelukkig zijn er ook nieuwe dingen toegevoegd, zoals officiële ondersteuning voor extensies gemaakt met manifest versie 3, is er bescherming tegen tab nabbing en kunnen wachtwoorden nu handmatig worden aangepast. De belangrijkste veranderingen die in versie 88 zijn aangebracht, naast de gebruikelijke bug- en security fixes, zijn hieronder voor je op een rijtje gezet.
Digital Goods APIChrome now supports an API for querying and managing digital products to facilitate in-app purchases from web applications. This is used with the Payment Request API, which is used to make the actual purchases. The API would be linked to a digital distribution service connected via the user agent. In Chromium, this is specifically a web API wrapper around the Android Play Billing API.
This is needed so that web apps in the Play Store can accept purchases for digital goods. (Play policies prevent them from accepting payment via any other method.) Without this, websites that sell digital goods are not installable through the Play Store.
In Chrome 88, this is available for Android in an origin trial. For a list of other origin trials starting in this release, see below.
Origin TrialsThis version of Chrome introduces the origin trial described below. Origin trials allow you to try new features and give feedback on usability, practicality, and effectiveness to the web standards community. To register for any of the origin trials currently supported in Chrome, including the ones described below, visit the Origin Trials dashboard. To learn more about origin trials themselves, visit the Origin Trials Guide for Web Developers.
New Origin Trials
WebXR: AR Lighting EstimationAllows sites to query for estimates of the environmental lighting conditions within WebXR sessions. This exposes both spherical harmonics representing the ambient lighting, as well as a cubemap texture representing "reflections". Adding lighting estimation can help to make models feel more natural and like they "fit" better with the user's environment. This can make them feel more "real" or "natural".
In Chrome 88, this is available for Android only.
Completed Origin TrialsThe following features, previously in Chrome origin trials, are now enabled by default.
performance.measureMemory() MethodAdds the performance.measureMemory() method that estimates the memory usage of the web page in case the page is currently isolated (e.g. on Desktop). Because the method is gated behind COOP/COEP web sites need to enabled crossOriginIsolated to use this method. For more information, see Monitor your web page's total memory usage with measureMemory().
PointerLock unadjustedMovementAdds the ability to request unadjusted/unaccelerated mouse movement data when in
Other features in this releasePointerLock
. IfunadjustedMovement
is set to true, then the pointer movements will not be affected by the underlying platform modifications such as mouse acceleration. For more information, see Disable mouse acceleration to provide a better FPS gaming experience.
Anchor rel="external" implies rel=noopener by DefaultTo mitigate "tab-napping" attacks, in which a new tab/window opened by a victim context may navigate that opener context, anchors that target
Dark Mode Form Controls and Scrollbars_blank
will behave as thoughrel
is set tonoopener
. To opt out of this behavior, you can setrel
to opener. This conforms to a change in the HTML standard.Dark mode is an accessibility feature that allows web authors to enable their web pages to be viewed in dark mode. When enabled, users are able to view dark mode supported websites by toggling the dark mode settings on their OS. The benefits of dark mode are being easier on the eyes in a low light environment and lower battery consumption. For more about dark mode and form controls, see Improved dark mode default styling with the color-scheme CSS property and the corresponding meta tag.
AbortSignal in addEventListener()Adds the
CSS aspect-ratio PropertyAbortSignal
option, namedsignal
, to the options parameter ofaddEventListener()
. Thesignal
option must first be created by anAbortController
by accessing thesignal
property on anAbortController
instance. Once the signal is passed in toaddEventListener()
, callingAbortController.abort()
removes the event listener added withaddEventListener()
.Allows explicitly specifying an aspect ratio for any element to get similar behavior to a replaced element. This generalizes the aspect ratio concept to general elements. It allows various effects, examples include sizing
CSS Selectors 4: Complex :not()<iframe>
elements using an aspect ratio, filmstrips where each element has the same height but needs an appropriate width, and cases where a replaced element is wrapped by a component but should keep the aspect ratio.Allows complex selectors inside the
Don't Clear adoptedStyleSheets on Adoption to/from <template>:not()
pseudo class, such as:not(.a + .b .c)
.When adopting a shadow root into a
ElementInternals.shadowRoot Attribute<template>
document from a document that the<template>
is in (or vice versa), Chrome will no longer clear itsadoptedStyleSheets
. Currently Chrome always clearsadoptedStyleSheets
when the shadow root containing it is adopted into a different document. This ensures that constructed stylesheets are not used across<iframe>
elements, but this also covers adopting into/from<template>
elements, causing some confusion for the web developer.A new attribute on
ElementInternals
,shadowRoot
, allows custom elements to access their own shadow root, regardless of open/closed status. Additionally, further restrictions are added to theattachInternals()
method to ensure that custom elements get the first chance to attach theElementInternals
interface. With this change, theattachInternals()
method will throw an exception if called before the custom element constructor being run.This feature was mostly driven, at least initially, by the declarative Shadow DOM feature introduction. With declarative Shadow DOM, there was a problem with closed shadow roots: declarative shadow content loads before the custom element is upgraded, which means that closed shadow content would have been inaccessible. In addition to the declarative Shadow DOM use case, this feature also offers a convenience to custom element authors, who no longer need to keep a reference to attached shadow roots, and can instead use the
Make Type Optional in WakeLock.request()ElementInternals
interface.The
Origin Isolationtype
parameter inWakeLock.request()
is now optional and defaults to"screen"
, which is currently the only allowed value. For more information, see Stay awake with the Screen Wake Lock API.Origin isolation allows developers to opt in to giving up certain cross-origin same-site access capabilities—namely synchronous scripting via
path() Support in clip-path CSS Propertydocument.domain
, and callingpostMessage()
withWebAssembly.Module
instances. This gives the browser more flexibility in implementation technologies. Reasons why a site may want better isolation include: performance isolation, allocations of large amounts of memory, side-channel protection (e.g. against Spectre), and improved memory measurement.Adds support for
Permissions-Policy Headerpath()
as a value for the CSSclip-path
property, which allows specifying SVG-style paths for clipping. This supplements the four basic shapes currently supported byclip-path
:circle
,ellipse
,polygon
, andurl
. For example, the following would clip an element with a triangle:clip-path: path(oddeven, 'M 5 5 h 100 v 100 Z')
The
RTCRtpTransceiver.stop()Permissions-Policy
HTTP header replaces the existingFeature-Policy
header for controlling delegation of permissions and powerful features. The header uses a structured syntax, and allows sites to more tightly restrict which origins can be granted access to features.Transceivers allow the sending and/or receiving of media in WebRTC. Stopping a transceiver makes it permanently inactive and frees its network port, encoder, and decoder resources. This also makes its
JavaScriptm=
section in the SDP reusable by future transceivers, preventing the SDP from growing indefinitely as transceivers are added and removed. This is part of "Perfect Negotiation", which makes signaling in WebRTC race free and less error-prone.This version of Chrome incorporates version 8.8 of the V8 JavaScript engine. It specifically includes the change listed below. You can find a complete list of recent features in the V8 release notes.
Shared Array Buffers, Atomics, and Futex APIs
Adds the JavaScript type
SharedArrayBuffer
gated behind COOP/COEP. ASharedArrayBuffer
allows a message to be posted to a worker by sending a reference instead of a copy of the sent data.JavaScript Atomics provides atomic loads and stores and read/modify/write accesses toSharedArrayBuffer
objects.Atomics.wait()
provides the ability for a worker to wait for another worker to signal it, without having to spinlock.The primary use case for
SharedArrayBuffer
is for asm.js code, but it is also useful for implementing other higher-level sharing between Workers.For more information, see Making your website "cross-origin isolated" using COOP and COEP.
Deprecations, and RemovalsThis version of Chrome introduces the deprecations and removals listed below. Visit ChromeStatus.com for lists of current deprecations and previous removals.
Don't Allow Popups During Page Unload (Enterprises)Since Chrome 80, pages have no longer been able to open a new page during unloading using
FTP Support Removedwindow.open()
. Since then enterprises have been able to use the AllowPopupsDuringPageUnload policy flag to allow popups during page unload. Starting in Chrome 88, this flag is no longer supported.Chrome is removing support for FTP URLs. The legacy FTP implementation in Chrome has no support for encrypted connections (FTPS), nor proxies. Usage of FTP in the browser is sufficiently low that it is no longer viable to invest in improving the existing FTP client. In addition, more capable FTP clients are available on all affected platforms.
Google Chrome 72 and later removed support for fetching document subresources over FTP and rendering of top level FTP resources. Navigating to FTP URLs results in showing a directory listing or a download depending on the type of resource. A bug in Google Chrome 74 and later resulted in dropping support for accessing FTP URLs over HTTP proxies. Proxy support for FTP was removed entirely in Google Chrome 76.
The remaining capabilities of Google Chrome's FTP implementation were restricted to either displaying a directory listing or downloading a resource over unencrypted connections.
In Chrome 77, FTP support was disabled by default for fifty percent of users but was available with flags.
In Chrome 88 all FTP support is disabled.
Web Components v0 RemovedWeb Components v0 have been in a reverse origin trial since Chrome 80. This allowed users of the API time to upgrade their sites while ensuring that new adopters of Web Components used version 1. The reverse origin trial ends with Chrome 87, making Chrome 88 the first in which version 0 is no longer supported. The Web Components v1 APIs replace Web Components v0 and are fully supported in Chrome, Safari, Firefox, and Edge. This removal covers the items listed below.