Chrome Release Summary

Chrome version: 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0

Chrome 47

Enabled (13) | Origin Trial (0) | Behind a flag (1) | Deprecated (0) | Removed (5)

Enabled by default in 47

This release of Chrome had 13 new features.

Array.prototype.includes

Method to determine whether an array includes a given element. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes

Samples: https://googlechrome.github.io/samples/array-includes-es7/index.html

CSSNamespaceRule

The CSSNamespaceRule interface represents an at-rule for declaring the default namespace and binding namespaces to namespace prefixes. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/CSSNamespaceRule/namespaceURIhttps://developer.mozilla.org/en-US/docs/Web/API/CSSNamespaceRule/prefix

No linked samples

Cache.matchAll()

matchAll() returns a promise to be resolved with an array of all matched responses in the Cache object. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/Cache/matchAll

No linked samples

Fetch API: RequestInit.referrer

This feature enables users to specifying request's referrer as a construct argument. Note this is different from Request.referrer which was already introduced. In service workers, a captured request had the service worker's referrer (i.e. the service worker's script URL), but with this feature the request keeps the original referrer. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/Request/Request

No linked samples

MouseEvent.getModifierState

MouseEvent.getModifierState is unimplemented. KeyboardEvent.getModifierState is implemented; but the action on the MouseEvent isn't. We need to be consistent in our APIs this is a simple change to bring matching spec behavior. http://www.w3.org/TR/DOM-Level-3-Events/#widl-MouseEvent-getModifierState #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/getModifierState

Samples: https://googlechrome.github.io/samples/mouseevent-get-modifier-state/index.html

Navigator.mediaDevices

Navigator.mediaDevices has * an enumerateDevices function, which provides the same functionality as MediaStreamTrack.getSources and adds audio output devices to the list, and * a devicechange event to notify when the set of devices available have changed. enumerateDevices is enabled by default, and the devicechange event is behind a flag. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/MediaDeviceshttps://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/enumerateDeviceshttps://developer.mozilla.org/en-US/docs/Web/API/Navigator

Samples: https://webrtc.github.io/samples/src/content/devices/input-output/

NotificationOptions.requireInteraction, and auto-minimize timeout

Support for the NotificationOptions.requireInteraction property, letting authors hint that a notification should remain readily available until the user clicks or dismisses it. When omitted, Chrome desktop will start to close* notifications after ~20 seconds (rather than the toast remaining permanently on-screen); Chrome for Android will be unaffected, since the platform requires that notifications are always minimized there. *Chrome OS only - auto-minimize to the notification center. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/notification/Notificationhttps://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/showNotification

Samples: https://googlechrome.github.io/samples/notifications/requireInteraction.html

Rest parameters (ES6)

Allows representation of an indefinite number of arguments as an array. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters

Samples: https://googlechrome.github.io/samples/rest-parameters-es6/index.html

Secure Contexts

This specification provides guidelines for user agent implementors and spec authors for implementing features whose properties dictate that they be exposed to the web only within a trustworthy environment. #

This feature was specified in this Spec.

Service Worker: Change the fetch API request flags (mode, credentials and redirect) for navigation requests.

The flags of request objects which are passed to the service worker's Fetch Event handler for navigation requests will be changed. Current: mode: "no-cors" credentials: "same-origin" redirect: "follow" (available since in M46) From M47: mode: "same-origin" credentials: "include" redirect: "manual" #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/Request/Request

No linked samples

The Placeholder-shown Pseudo-class: :placeholder-shown

The :placeholder-shown pseudo-class matches an input element that is showing placeholder text. #

This feature was specified in this Spec.

UIEvent.sourceCapabilities & InputDeviceCapabilities.firesTouchEvents

The InputDeviceCapabilities API provides details about the physical device responsible for generating an event. InputDeviceCapabilities.firesTouchEvents returns whether this device dispatches touch events. All types of UIEvent now have their own sourceCapabilities attribute which returns the InputDeviceCapabilities associated with the physical device responsible for them. #

This feature was specified in this Spec.

Resources

Docs: https://developers.google.com/web/updates/2015/10/inputdevicecapabilitieshttps://docs.google.com/document/d/1WLadG2dn4vlCewOmUtUEoRsThiptC7Ox28CRmYUn8Uw/edithttps://developer.mozilla.org/en-US/docs/Web/API/InputDeviceCapabilities_API

Samples: https://developer.mozilla.org/en-US/docs/Web/API/InputDeviceCapabilities_API

requestIdleCallback

An API which allows posting of tasks which are scheduled during periods when the browser is idle, and are passed a deadline when called which is calculated based on how long the browser expects to remain idle. This enables developers to perform background work on the main event loop, without impacting latency-critical events such as animation and input response. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallbackhttps://developer.mozilla.org/en-US/docs/Web/API/Window/cancelIdleCallbackhttps://developers.google.com/web/updates/2015/08/using-requestidlecallback

Samples: https://developers.google.com/web/updates/2015/08/using-requestidlecallback

Origin Trials in-progress in 47

This release of Chrome had 0 new origin trials.

Flagged features in 47

This release of Chrome had 1 are available behind a flag.

EXT_disjoint_timer_query WebGL extension

This WebGL extension, exposing the underlying OpenGL ES functionality, allows developers to measure the duration of the commands they submit to the graphics processor. This will allow the development of additional tools to help developers make their WebGL code run faster. #

This feature was specified in this Spec.

Resources

Docs: Conformance test:https://www.khronos.org/registry/webgl/sdk/tests/conformance/extensions/ext-disjoint-timer-query.html(Open-sourced in Github repository at https://github.com/KhronosGroup/WebGL )

No linked samples

Deprecations and Removals

Deprecation policy

To keep the platform healthy, we sometimes remove APIs from the Web Platform which have run their course. There can be many reasons why we would remove an API, such as:

Some of these changes will have an effect on a very small number of sites. To mitigate issues ahead of time, we try to give developers advanced notice so they can make the required changes to keep their sites running.

Chrome currently has a process for deprecations and removals of API's, essentially:

You can find a list of all deprecated features on chromestatus.com using the deprecated filter and removed features by applying the removed filter. We will also try to summarize some of the changes, reasoning, and migration paths in these posts.

Deprecated features in 47

This release of Chrome had 0 features deprecated.

Removed features in 47

This release of Chrome had 5 features removed.

MediaStream.label, MediaStream.ended and MediaStream.stop()

These parts of the MediaStream API have been removed from the spec. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/MediaStream

No linked samples

Remove getUserMedia() from Insecure Contexts

Per https://w3c.github.io/webappsec-secure-contexts/, we are deprecating and then removing getUserMedia() from insecure contexts. getUserMedia() is a powerful feature that allows access to the microphone and camera of the user agent's machine, which is a powerful privilege escalation for HTTP content injection. This will remove that attack vector by only allowing it over HTTPS. #

This feature was specified in this Spec.

Resources

Docs: Part of the larger effort to remove powerful features on insecure origins:https://chromium.org/Home/chromium-security/deprecating-powerful-features-on-insecure-originsblink-dev discussion and API owner approval:https://groups.google.com/a/chromium.org/forum/#!topic/blink-reviews/NdkY1SUxxV4https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia%20

No linked samples

Remove support for

The <applet> tag is only used to instantiate the Java plugin. Running the Java plugin requires NPAPI support, but NPAPI support in Blink has already been removed. Most <applet> support has been removed, though the special parsing rules have been retained for backwards compatibility. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/applet

No linked samples

SVG hasExtension() methods

The hasExtension() methods have been removed in SVG2. As implemented in Blink they always returned false and were thus of no use. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/SVGTests

No linked samples

SVGSVGElement.pixelUnitToMillimeterX and friends

These were in SVG 1.1 put have been removed: http://www.w3.org/TR/SVG11/struct.html#InterfaceSVGSVGElement http://www.w3.org/TR/SVG2/struct.html#InterfaceSVGSVGElement These properties all return the constant 0.2645833194255829 on all platforms, so they don't do what their names suggest. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement#Browser_compatibility

No linked samples