Chrome Release Summary

Chrome version: 132, 131, 130, 129, 128, 127, 126, 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 56

Enabled (34) | Origin Trial (0) | Behind a flag (1) | Deprecated (2) | Removed (10)

Enabled by default in 56

This release of Chrome had 34 new features.

"system-ui" generic font family

This generic font family allows authors to style contents so it fits within the system UI. #

This feature was specified in this Spec.

2nd arg of document.createElement should be an object

This feature adds a dictionary as a second argument for document.createElement. The dictionary 'is' member is used to set custom element attribute. For now both syntaxes will be supported. Later on after v1 custom elements (https://www.chromestatus.com/features/4696261944934400) are shipped the string argument will be deprecated. #

This feature was specified in this Spec.

Resources

Docs: https://dom.spec.whatwg.org/#dom-document-createelement

No linked samples

CSP: SecurityPolicyViolationEvent for Workers.

When a Worker's CSP is violated, we should fire a 'SecurityPolicyViolation' event at its global object. #

This feature was specified in this Spec.

CSS border-image-repeat: space support

Previously, "space" was implemented the same as "repeat". #

This feature was specified in this Spec.

Resources

No linked docs

Samples: http://codepen.io/Savago/pen/XjvwjZ

CSS position: sticky

position: sticky is a new way to position elements and is conceptually similar to position: fixed. The difference is that a stickily positioned element behaves like position: relative within its parent, until a given offset threshold is met. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/CSS/position#Sticky_positioning

Samples: https://ebidel.github.io/demos/sticky-position-event.html

CSS: New names for motion path properties

Motion paths allow authors to animate any graphical object along an author-specified path. The CSS properties are being named: offset-path offset-distance offset-rotate. From Chrome 55, offset-path and offset-distance are supported. offset-rotate will become available in Chrome 56. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: http://goo.gl/WjA4lQ

CSSConditionRule interface

The CSSConditionRule interface inherits from CSSGroupingRule. CSSMediaRule and CSSSupportsRule both inherit from CSSConditionRule. Before the introduction of CSSConditionRule in Blink, CSSMediaRule inherited from CSSGroupingRule, while CSSSupportsRule inherited from CSSRule and duplicated the members of CSSGroupingRule. #

This feature was specified in this Spec.

Resources

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

No linked samples

Dispatch synthetic events (at least until its root) when target and relatedTarget are identical

Spec: DOM Standard: https://dom.spec.whatwg.org/#dispatching-events WPT Update: https://github.com/w3c/web-platform-tests/pull/3865 So far, Blink does not dispatch synthetic events if all of the following conditions are satisfied: 1) event's target is in a shadow tree 2) event has relatedTarget 3) event's target and event's relatedTarget are identical The new behavior will dispatch synthetic events even if the all conditions are satisfied. #

This feature was specified in this Spec.

FLAC codec support for

Enables support for the FLAC audio codec within the FLAC and Ogg containers for the HTML5 <audio> tag and WebAudio's decodeAudioData() API. #

This feature was specified in this Spec.

Resources

Docs: https://en.wikipedia.org/wiki/FLAChttps://xiph.org/flac/ogg_mapping.htmlhttps://developer.mozilla.org/en-US/docs/Web/API/AudioContext/decodeAudioData

Samples: http://hpr.dogphilosophy.net/test/

Fire VisibilityChange event on document unloading

visibilitychange event should fire as part of unload process and document.visibilityState should report 'hidden'. #

This feature was specified in this Spec.

Fractional coordinates in MouseEvents

Update the types of all coordinates in MouseEvents from long to double to make the coordinates more precise for PointerEvents on high-DPI devices. Note, however, that the only browser-fired events that will change are PointerEvents. MouseEvents will continue to have integral coordinates for backward compatibility. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://output.jsbin.com/quqoqe/4/quiet

Inert URL Bar

Hiding and Showing the URL bar will no longer resize the initial containing block or elements sized with vh units. This matches iOS Safari. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/bokand/URLBarSizing

Samples: http://bokand.github.io/demo/urlbarsize.html

KeyboardEvent.isComposing

Allows an app to determine if there is an active composition outstanding for keyboard events being generated without monitoring composition events directly. #

This feature was specified in this Spec.

Resources

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

Samples: https://cdn.rawgit.com/w3c/uievents/gh-pages/tools/key-event-viewer.html

Link rel=prefetch header support

The proposed change will add support for the "prefetch" rel value in Link headers, enabling easy addition of such resource hints and therefore easier hinting of resources needed for next navigation. #

This feature was specified in this Spec.

Resources

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

No linked samples

Media preload over cellular connections

Allow preloading metadata over cellular connection unless some restrictions apply such as Data Saver being enabled. #

This feature was specified in this Spec.

Notification image

Allows developers to show a large image as part of the content of a notification (whereas the existing `icon` and `badge` properties tend to be icons and are rendered smaller). Screenshot: http://i.imgur.com/fNf97ro.png #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/showNotificationhttps://developer.mozilla.org/en-US/docs/Web/API/notificationhttps://developer.mozilla.org/en-US/docs/Web/API/notification/Notification

Samples: https://tests.peter.sh/notification-generator/#image=1

OPUS codec support in WebAudio's decodeAudioData() API.

Extends support for OPUS to WebAudio's decodeAudioData() API. #

This feature was specified in this Spec.

Resources

Docs: http://opus-codec.org/https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/decodeAudioData

No linked samples

PaymentRequest.canMakePayment()

A method in PaymentRequest, canMakePayment(), that returns back a boolean indicating whether or not the user has the ability to make a payment at the time PaymentRequest.show() is called. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://rsolomakhin.github.io/samples/paymentrequest/can-make-payment/

RSA-PSS for TLS

In preparation for TLS 1.3, ship RSA-PSS signature algorithms in our TLS implementation. This will improve the options available for signing with RSA keys in TLS 1.2 (aligning with QUIC and TLS 1.3) and, more importantly, pave the road for TLS 1.3 by ensuring the ecosystem can handle new signature algorithms. #

This feature was specified in this Spec.

RTCConfiguration iceTransportPolicy member

RTCConfiguration is the type of the optional first argument to the RTCPeerConnection constructor. Previously only 'iceTransports' was supported, but now the standard 'iceTransportPolicy' will also be supported. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/RTCPeerConnection#RTCConfiguration_dictionary

No linked samples

RTCPeerConnection unprefixed interface

This entry track exposing the unprefixed RTCPeerConnection. webkitRTCPeerConnection has been exposed for a long time, and removing it is not part of this entry. #

This feature was specified in this Spec.

Resources

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

No linked samples

Referrer-Policy header

The Referrer-Policy header allows pages to set a referrer policy by sending an HTTP response header. #

This feature was specified in this Spec.

Rename RTCIceCandidateEvent to RTCPeerConnectionIceEvent and expose

This entry track renaming RTCIceCandidateEvent (implemented and shipped) to RTCPeerConnectionIceEvent and exposing RTCPeerConnectionIceEvent constructor. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en/docs/Web/API/RTCPeerConnectionIceEvent

No linked samples

Render Unicode control characters

Currently Chrome and other browsers do not render unicode control characters. This violates the unicode spec and the handling in other software. With this change non-white-space control characters will be rendered. #

This feature was specified in this Spec.

Stop re-signaling a slotchange event.

The spec change: https://github.com/whatwg/dom/pull/353 (PR to DOM Standard) Blink no longer re-fires a slotchange event at a slot's assignedSlot (or parent slot). See https://github.com/w3c/webcomponents/issues/571 for details. #

This feature was specified in this Spec.

Supporting chrome_settings_overrides API on OS X

The API is currently only available on Windows. This change will enable it on OS X as well #

This feature was specified in this Spec.

Resources

Docs: https://developer.chrome.com/extensions/settings_override

No linked samples

Throttle the rendering pipeline during page load when there's pending sheets.

Delay running the rendering pipeline (style, layout, paint) and executing requestAnimationFrame callbacks inside iframes until pending stylesheets have finished loading. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1waQggCtPb44gwTp8PK5iz4B-YTiSOSBqbqtbopNrxNA/edit

Samples: https://www.elliottsprehn.com/examples/iframe-fouc-raf/?delay=500

Touch-action: pinch-zoom CSS property

Support the touch-action: pinch-zoom CSS property. The user agent MAY consider touches that begin on the element for the purposes of continuous zooming and immediately execute the default action instead of waiting for an event handler to not cancel it. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/w3c/pointerevents/issues/29

No linked samples

Web Bluetooth API

Allows web sites to communicate over GATT with nearby user-selected Bluetooth devices in a secure and privacy-preserving way. Status in Chrome is more complicated than can be captured by this form. In Chrome 56, this shipped on Android, ChromeOS, and macOS. In Chrome 70 it is shipping on Windows 10. For earlier versions of Windows and Linux, it is still behind a flag (chrome://flags/#enable-experimental-web-platform-features). #

This feature was specified in this Spec.

Resources

Docs: https://web.dev/bluetooth/https://www.w3.org/community/web-bluetooth/https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API

Samples: https://googlechrome.github.io/samples/web-bluetooth/https://github.com/WebBluetoothCG/demos

WebAudio: Add ConstantSourceNode

Add a new ConstantSourceNode that produces a constant output mixed with an AudioParam. This node serves as a constant source and also as a "constructible AudioParam" #

This feature was specified in this Spec.

Resources

Docs: https://www.chromestatus.com/features/5647701588836352https://github.com/WebAudio/web-audio-api/pull/902https://github.com/WebAudio/web-audio-api/issues/367

No linked samples

WebAudio: ChannelSplitterNode channelCount and channelCountMode are constant

The channelCount and channelCountMode attributes for a ChannelSplitterNode are fixed to the number of outputs and "explicit", respectively. They cannot be changed. #

This feature was specified in this Spec.

Resources

Docs: https://webaudio.github.io/web-audio-api/#the-channelsplitternode-interfacehttps://webaudio.github.io/web-audio-api/#widl-AudioNode-channelCounthttps://webaudio.github.io/web-audio-api/#widl-AudioNode-channelCountMode

No linked samples

WebAudio: PannerNode.rolloffFactor clamps to nominal range.

The PannerNode.rolloffFactor clamps to the nominal range which depends on the distance model being used. #

This feature was specified in this Spec.

Resources

Docs: https://webaudio.github.io/web-audio-api/#widl-PannerNode-rolloffFactor

No linked samples

WebAudio: Remove Doppler API

Remove the deprecated Doppler API. This includes removing speedOfSound, dopplerFactor, and setVelocity from the WebAudio API. This was removed from the WebAudio spec quite a while ago. The actual effect was removed a while ago, but the API remained. The API is being removed now. #

This feature was specified in this Spec.

WebGL 2

OpenGL ES 3.0 level rendering capabilities via the <canvas> element. #

This feature was specified in this Spec.

Resources

Docs: https://www.khronos.org/webgl/wiki/Getting_a_WebGL_Implementation

Samples: https://www.khronos.org/webgl/wiki/Getting_a_WebGL_Implementation

Origin Trials in-progress in 56

This release of Chrome had 0 new origin trials.

Flagged features in 56

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

Shadow-piercing descendant combinator (>>>) in snapshot profile

A shadow-piercing descendant combinator (>>>) is defined in https://drafts.csswg.org/css-scoping/#deep-combinator as a straightforward replacement for `/deep/` combinator (which was for Shadow DOM V0), with a restriction that it is only allowed for selectors in querySelector() (aka static profile, not in dynamic profile for styling). See spec discussions: https://github.com/w3c/webcomponents/issues/78 (already closed) https://github.com/w3c/csswg-drafts/issues/640 #

This feature was specified in this Spec.

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 56

This release of Chrome had 2 features deprecated.

Deprecate and Remove SVGViewElement.viewTarget attribute

As per SVG2.0, SVGViewElement.viewTarget is removed https://github.com/w3c/svgwg/commit/c1690ae1b99aa95c648a304ec7a8f7dec46d7c83 #

This feature was specified in this Spec.

Remove case-insensitive matching for radio button group names

"Compatibility caseless" had been applied to radio button group name matching. The specification was updated so that case-sensitive matching is applied. https://github.com/whatwg/html/commit/6acdb2122298d2bb7bb839c0a61b4e1f9b0f9bc9 #

This feature was specified in this Spec.

Removed features in 56

This release of Chrome had 10 features removed.

CSP 'referrer' directive

The CSP 'referrer' directive allows site owners to set a Referrer Policy (https://w3c.github.io/webappsec-referrer-policy/) for their page from an HTTP header. The 'referrer' directive has been removed from the spec and replaced with the Referrer-Policy header. This feature was added in Chrome 33. #

This feature was specified in this Spec.

Deprecate SVGSVGElement.currentView/useCurrentView and SVGViewSpec interface

SVGSVGElement.currentView/useCurrentView and SVGViewSpec interface are removed from SVG2.0 spec. This was deprecated in Chrome 54. #

This feature was specified in this Spec.

Deprecate `reflected-xss` CSP directive.

Early drafts of CSP2 contained a `reflected-xss` directive, which is little more than syntactic sugar for the `X-XSS-Protection` header. It offered no additional functionality beyond that header, just a better syntax. I shipped our implementation as part of shipping CSP2 (https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/wToP6b04zVE/imuPatGy3awJ). I should have undone that in 2015 when we dropped the directive from the CR draft. I'd like to undo it now. #

This feature was specified in this Spec.

Deprecate all fetches for scripts with invalid type/language attributes

Right now, the preload scanner will send fetches for script tags regardless of type/language, but the script will not execute when parsed. Often, sites will use these custom tags combined with XHR, resulting in double downloads. By deprecating the fetch, the preload scanner and the parser will have the same semantics, and we will not be initiating fetches for scripts we will not execute. To work around this issue and maintain the fetch, sites should use link preload. #

This feature was specified in this Spec.

Resources

Docs: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/eu57SCNltlshttps://html.spec.whatwg.org/multipage/scripting.html#prepare-a-script

No linked samples

Deprecate and remove MediaStreamTrack.getSources()

Remove support for the MediaStreamTrack.getSources() method. This method was removed from the spec in favor of MediaDevices.enumerateDevices(). This was deprecated in Chrome 40. #

This feature was specified in this Spec.

Remove CBC-mode ECDSA ciphers in TLS

Remove ECDHE_ECDSA_WITH_AES_128_CBC_SHA and ECDHE_ECDSA_WITH_AES_256_CBC_SHA TLS cipher suites. TLS's CBC-mode construction is flawed, making it fragile and very difficult to implement securely. Although CBC-mode ciphers are still widely used with RSA, they are virtually nonexistent with ECDSA. #

This feature was specified in this Spec.

Remove TLS 1.2 ECDSA with SHA-1 and SHA-512 signature algorithms

In most modes, TLS 1.2 uses a signature in the ServerKeyExchange message to prove ownership of the private key. (Note this is NOT related to SHA-1 certificates.) There is an extension, signature_algorithms, to negotiate which signature algorithms are acceptable. To reduce dependencies on SHA-1 and prepare for TLS 1.3's new ECDSA handling, we intend to remove ECDSA with SHA-1 and ECDSA with SHA-512, leaving only SHA-256 and SHA-384 for ECDSA. #

This feature was specified in this Spec.

Stop Trusting SHA-1 Certificates

Protect Chrome users from attackers who might use the broken SHA-1 hash algorithm to obtain counterfeit website authentication certificates. #

This feature was specified in this Spec.

Resources

Docs: https://security.googleblog.com/2014/09/gradually-sunsetting-sha-1.htmlhttps://security.googleblog.com/2015/12/an-update-on-sha-1-certificates-in.htmlhttps://sites.google.com/a/chromium.org/dev/Home/chromium-security/education/tls/sha-1

No linked samples

User gesture for touch scrolling

No longer allow opening pop-ups (and other sensitive operations) to occur during input events which represent a touch scroll. In particular, touchstart and touchmove listeners now never have a user gesture. touchend listeners do have a user gesture unless the user was scrolling / pinching. Builds on https://www.chromestatus.com/feature/5649871251963904. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WICG/interventions/issues/13https://docs.google.com/document/d/1oF1T3O7_E4t1PYHV6gyCwHxOi3ystm0eSL5xZu7nvOg/edit

Samples: http://output.jsbin.com/kibaxu

Web MIDI MIDIMessageEvent.receivedTime deprecation

Deprecate receivedTime property from MIDIMessageEvent. This is because the attribute was introduced to represent a high-resolution timestamp for real-time MIDI processing, but DOM Event started using hi-resolution monotonic time instead of epoch time for Event.timeStamp that can cover our use-case too. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WebAudio/web-midi-api/issues/145

No linked samples