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 54

Enabled (18) | Origin Trial (1) | Behind a flag (1) | Deprecated (2) | Removed (5)

Enabled by default in 54

This release of Chrome had 18 new features.

Align behavior of window.external.IsSearchProviderInstalled and window.external.AddSearchProvider with the spec

window.external.IsSearchProviderInstalled and window.external.AddSearchProvider will both be defined as methods that are no-ops. This was never implemented in Safari. In IE10, these methods are (mostly) no-ops: IsSearchProviderInstalled always returns 2, and AddSearchProvider always returns S_OK. Firefox still implements this, but notes that it may be removed at any time. #

This feature was specified in this Spec.

Resources

Docs: https://msdn.microsoft.com/en-us/library/aa744112(v=vs.85).aspxhttps://msdn.microsoft.com/en-us/library/aa342526(v=vs.85).aspxhttps://developer.mozilla.org/en-US/docs/Web/API/Window/sidebar/Adding_search_engines_from_Web_pages

No linked samples

BroadcastChannel

BroadcastChannel allows scripts from the same origin but other browsing contexts to send each other messages. Channels are scoped to an origin and have a name, messages posted to a channel will be delivered to all listeners of that channel in all documents. #

This feature was specified in this Spec.

Resources

Docs: https://developers.google.com/web/updates/2016/09/broadcastchannelhttps://developer.mozilla.org/en-US/docs/Web/API/Broadcast_Channel_APIhttps://hacks.mozilla.org/2015/02/broadcastchannel-api-in-firefox-38/

No linked samples

CECPQ1 in TLS

CECPQ1 is a post-quantum cipher suite: one that is designed to provide confidentiality even against an attacker who possesses a large quantum computer. It is a key-agreement algorithm plugged into TLS that combines X25519 and NewHope, a ring-learning-with-errors primitive. Even if NewHope turns out to be breakable, the X25519 key-agreement will ensure that it provides at least the security of our existing connections. This is only an experiment and will only be used on a small fraction of HTT #

This feature was specified in this Spec.

Resources

Docs: https://security.googleblog.com/2016/07/experimenting-with-post-quantum.htmlhttps://www.imperialviolet.org/2015/12/24/rlwe.htmlhttps://eprint.iacr.org/2015/1092

No linked samples

CSS text-size-adjust

The text-size-adjust property lets authors control and disable the text autosizing feature which increases font sizes on mobile. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/CSS/text-size-adjust

No linked samples

CacheStorage CacheQueryOptions support

CacheQueryOptions (ignoreMethod, ignoreVary, ignoreQuery, and cacheName) have been exposed but worked inconsistently across the various CacheStorage methods. As of M54 they are all supported as specified. #

This feature was specified in this Spec.

Resources

Docs: https://developers.google.com/web/updates/2016/09/cache-query-optionshttps://developer.mozilla.org/en-US/docs/Web/API/Cache

No linked samples

Custom Elements v1

Custom Elements let web authors define their own tags. Chrome shipped an implementation based on the working draft of the spec in M33. The current editor's draft of the spec has significant updates based on web developer and implementer feedback. #

This feature was specified in this Spec.

Resources

Docs: https://developers.google.com/web/fundamentals/web-components/customelementshttps://docs.google.com/a/chromium.org/presentation/d/179IRXRFmDGb3P60OVsoAIsElcaOp__5EuIWLcL8oNos/edit?usp=sharing

No linked samples

Disable navigations in the unload handler.

When a navigation is initiated in the unload handler, it should be blocked and the previous navigation should continue. #

This feature was specified in this Spec.

Enterprise flag to allow continued use of SHA-1 certificates by private PKIs

Private PKIs are not bound by the CA/Browser Forum's Baseline Requirements, and many not have completed the process to deprecate SHA-1 by Jan 2017, after which we'll start showing interstitials. Provide an enterprise flag that would cause SHA-1 certificates that chain to a locally installed trust anchor to display the standard HTTP page icon after Jan 2017. #

This feature was specified in this Spec.

Resources

Docs: https://www.chromium.org/Home/chromium-security/education/tls/sha-1http://go/ltvrp

No linked samples

Expose HTMLAreaElement `download` and `rel` attributes

HTMLAreaElement should define IDL `download` and `rel` attributes for faster access. #

This feature was specified in this Spec.

New DOM node methods: prepend, append, before, after, replaceWith

The DOM standard provides a set of convenience methods for working with DOM Node trees: ParentNode.prepend(), ParentNode.append(), ChildNode.before(), ChildNode.after(), ChildNode.replaceWith(). Removal of the flag is anticipated in Chrome 54. #

This feature was specified in this Spec.

Resources

Docs: https://dom.spec.whatwg.org/#parentnodehttps://developer.mozilla.org/en-US/docs/Web/API/ChildNodehttps://developer.mozilla.org/en-US/docs/Web/API/ParentNode

No linked samples

Node.getRootNode(options)

The getRootNode(options) attribute’s getter must return context object’s shadow-including root if options’s composed is true, and context object’s root otherwise. The former name was Node.rootNode. See https://github.com/whatwg/dom/issues/241 the context of renaming #

This feature was specified in this Spec.

Object.entries() and Object.values()

These methods are siblings to the Object.keys() function, and aim to provide Objects with the same set of iteration methods that exist for other ES2015 types (Array, Map, and Set). #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entrieshttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values

No linked samples

Object.getOwnPropertyDescriptors()

Retrieve all own PropertyDescriptors from an object, which could be used by Object.create() or Object.defineProperties(). #

This feature was specified in this Spec.

Resources

No linked docs

Samples: http://www.2ality.com/2016/02/object-getownpropertydescriptors.html

PushSubscription.options

An "options" attribute is added to PushSubscription objects that the PushManager.subscribe(...) and getSubscription() promises resolve to. It reflects the options passed in when subscribing. This allows web developers to see what applicationServerKey each PushSubscription is associated with, and hence what key their server will need to present when sending messages. Previously web developers with more than one applicationServerKey had to keep track of this separately (e.g. in IndexedDB). #

This feature was specified in this Spec.

Resources

Docs: https://developers.google.com/web/updates/2016/09/options-of-a-pushsubscription

No linked samples

Request fullscreen on orientation change

Allow web pages to request fullscreen while an orientation change event handler is running. This will allow pages to go fullscreen when the user turn their device. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://mounirlamouri.github.io/sandbox/fullscreen-orientation.html

Size related attributes to Resource Timing API

Add size related attributes to Resource Timing API Changes to API surface: Add 3 attributes (transfer/encoded/decoded sizes) #

This feature was specified in this Spec.

Resources

Docs: https://lists.w3.org/Archives/Public/public-web-perf/

No linked samples

Unprefixed CSS user-select

The user-select property enables authors to specify which elements in the document can be selected by the user and how. Chrome has supported only prefixed version: -webkit-user-select. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1158E0YvlUJ5Lwd-8XZBFqE2Ow_FWLrNVik1MFqk3WRU/edit?usp=sharing

No linked samples

imageSmoothingQuality attribute for CanvasRenderingContext2D

It allows a web developer to choose the quality/performance tradeoff when scaling images. There are 3 options in total: low, medium and high. #

This feature was specified in this Spec.

Resources

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

Samples: https://jsfiddle.net/khru0mzj/https://drive.google.com/a/google.com/file/d/0BySFHAS13VhbRVBUM3dHaDV3VFU/view

Origin Trials in-progress in 54

This release of Chrome had 1 new origin trials.

Foreign Fetch

Foreign Fetch is a proposal to enable third party Service Workers. #

This feature was specified in this Spec.

Resources

Docs: https://developers.google.com/web/updates/2016/09/foreign-fetchhttps://github.com/slightlyoff/ServiceWorker/blob/master/foreign_fetch_explainer.md

Samples: https://googlechrome.github.io/samples/service-worker/foreign-fetch/

Flagged features in 54

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

SRI: The `require-sri-for` CSP directive.

The `require-sri-for` directive gives developers the ability to assert to the browser that every resource of a given type ought to be integrity checked. If a resource of that type is loaded without integrity metadata, it will be rejected without triggering a network request. #

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 54

This release of Chrome had 2 features deprecated.

Beacon with non-CORS-safelisted Content-Type

sendBeacon() has been available as described in https://www.chromestatus.com/feature/5517433905348608. A part of sendBeacon()'s functionalities has been temporarily disabled later due to a security issue. The change is that, from M60, sendBeacon() will throw when called with a Blob whose type is not a CORS-safelisted value for the Content-Type request header as the data argument. This entry is used for tracking progress on resolving the issue and re-enabling the functionality. #

This feature was specified in this Spec.

Resources

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

No linked samples

Deprecate SVGSVGElement.viewport attribute

The implementation is trivial but entirely useless and has been since 2012. The attribute is not present at all in Gecko. It has been removed from the spec: https://github.com/w3c/svgwg/commit/99a342c09dc0f8f164667d45d1c8486f0f87af8f #

This feature was specified in this Spec.

Removed features in 54

This release of Chrome had 5 features removed.

Blocking sync XHR during microtask execution

Certain blocking APIs spin up nested message loops. Invoking those APIs during microtask execution has undesirable effects, e.g., it is possible that events are dispatched during microtasks. Those APIs currently are alert, prompt, confirm, print, and send() on synchronous XHRs. #

This feature was specified in this Spec.

Resources

Docs: TODO: jochen to work with devrel on an article

No linked samples

Deprecate and Remove SVGZoomEvent

SVGZoomEvent has been removed from the SVG 2.0 specification and has a non-functional implementation in Chromium. Since it doesn't work but is still feature detectable, it's in a confusing state right now and should be removed. #

This feature was specified in this Spec.

Deprecate and remove initTouchEvent

Chrome’s initTouchEvent is not interoperable with Safari's or Firefox’s version of initTouchEvent. Deprecated since M49. Developers should use the new TouchEvent constructor. See https://www.chromestatus.com/features/4923255479599104 #

This feature was specified in this Spec.

Resources

Docs: https://developers.google.com/web/updates/2016/02/chrome-49-deprecations?hl=en#use-of-inittouchevent-is-deprecated

Samples: https://output.jsbin.com/lohuwahttps://w3c.github.io/touch-events/#firing-a-synthetic-touchevent-from-script

MediaStream ended event and onended attribute

The ended event and the corresponding onended attribute have been removed from the MediaStream spec. Removal is anticipated in Chrome 54. #

This feature was specified in this Spec.

Resources

Docs: https://developers.google.com/web/updates/2015/07/mediastream-deprecations

No linked samples

Remove KeyEvent.keyIdentifier

Remove the WebKit specific KeyEvent.keyIdentifier field. It is not specified in a current specification and has a number of interoperability concerns. The KeyboardEvent.key field is a suitable specified replacement for this field. #

This feature was specified in this Spec.

Resources

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

No linked samples