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 45

Enabled (23) | Origin Trial (0) | Behind a flag (1) | Deprecated (0) | Removed (9)

Enabled by default in 45

This release of Chrome had 23 new features.

Arrow functions (ES6)

The arrow (=>) takes the place of the function keyword #

This feature was specified in this Spec.

Resources

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

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

Battery Status API

Allows access to see the battery level of the device's battery #

This feature was specified in this Spec.

Resources

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

Samples: https://github.com/GoogleChrome/samples/tree/gh-pages/battery-statushttp://jsbin.com/battery-status-testhttp://htmlpreview.github.io/?https://github.com/samdutton/simpl/blob/master/battery/index.html

CSP2: Exclude 'blob:' and 'filesystem:' from the 'self' source expression.

In CSP2, the `'self'` source expression explicitly excludes `blob:` and `filesystem:`. This means that developers will need to add those schemes explicitly to their directives if they wish to include content at those URLs. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives

No linked samples

CSS Motion Path

Motion paths allow authors to animate any graphical object along an author-specified path. The following CSS properties are defined: motion-offset motion-path motion-rotation motion (shorthand) #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/CSS/motionhttps://developer.mozilla.org/en-US/docs/Web/CSS/motion-pathhttps://developer.mozilla.org/en-US/docs/Web/CSS/motion-offsethttps://developer.mozilla.org/en-US/docs/Web/CSS/motion-rotation

Samples: https://googlechrome.github.io/samples/css-motion-path/index.htmlhttp://bit.ly/1HLfdrv

CSS Multi-column (new implementation)

Ship the flow thread based multicol implementation, so that we eventually can bring Blink's multicol support to a level that matches other engines' (Presto and Trident). #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Using_multi-column_layouts

Samples: https://googlechrome.github.io/samples/multi-column-css/index.html

CSSGroupingRule

The CSSGroupingRule interface represents an at-rule that contains other rules nested inside itself. Per spec, CSSMediaRule and CSSPageRule inherit from CSSGroupingRule. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/CSSGroupingRulehttps://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRulehttps://developer.mozilla.org/en-US/docs/Web/API/CSSPageRule

No linked samples

Document's "first-party" takes ancestors into account.

I'd like to make a small change to the definition of "first-party" that we use for third-party cookie blocking: we currently look only at the top-level origin to determine the first-party origin for a request. I'd like to start walking the whole ancestor chain of a frame. #

This feature was specified in this Spec.

ES6 Array methods

Additional static methods on Array and instance methods on Array.prototype: Array.from, Array.of, Array.prototype.copyWithin, Array.prototype.fill, Array.prototype.find, Array.prototype.findIndex #

This feature was specified in this Spec.

Resources

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

Samples: https://googlechrome.github.io/samples/array-methods-es6/index.html

ES6 TypedArray methods

Additional static methods on concrete TypedArray subclasses (Int8Array, Float32Array, etc) and instance methods on their prototypes. Includes most of the existing Array methods, as well as those added in ES6. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray#Methods

Samples: https://googlechrome.github.io/samples/typedarray-methods-es6/index.html

Notification.vibrate

The vibrate member of the NotificationOptions dictionary allows web developers to specify a vibration pattern for a notification. As of Chrome 53, the `Notification.vibrate` property is exposed as well. #

This feature was specified in this Spec.

Resources

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

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

Object.assign()

The Object.assign() method is used to copy the values of all enumerable own properties from one or more source objects to a target object. It will return the target object. #

This feature was specified in this Spec.

Resources

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

Samples: https://googlechrome.github.io/samples/object-assign-es6/index.html

Service Worker: Client.id

Client.id is a GUID allowing the ServiceWorker to track client objects between SW termination & restart. #

This feature was specified in this Spec.

Resources

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

No linked samples

Service Worker: Client.postMessage() and ServiceWorkerMessageEvent

Before Chrome 45, a Service Worker sending a message via Client.postMessage() results in a MessageEvent fired on the Client's global scope (e.g., window). Since Chrome 45, the event is a ServiceWorkerMessageEvent fired on navigator.serviceWorker rather than window. Until Chrome 45, Client.postMessage displayed an "experimental, may change" deprecation warning. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerMessageEventhttps://developer.mozilla.org/en-US/docs/Web/API/Client/postMessage

Samples: https://googlechrome.github.io/samples/service-worker/post-message/index.html

Service Worker: ServiceWorkerContainer.getRegistrations()

Returns all Service Worker registrations for the current origin. #

This feature was specified in this Spec.

Resources

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

No linked samples

Service Worker: ServiceWorkerRegistration.update()

update() pings the server for an updated version of this Service Worker registration without consulting caches. #

This feature was specified in this Spec.

Resources

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

No linked samples

Stop sending mouse position updates during scrolling

While scrolling via trackpad or mousewheel, we previously sent mouse position updates every 100ms. On pages with heavy mouse handlers or :hover styles, this could cause significant amounts of scroll jank. Sending a mouse position update includes updating :hover styles, and dispatching mousemove, mouseover, mouseenter, mouseleave, and mouseout events. We’re planning to stop sending mouse position updates while scrolling. Instead, we'll trigger this behavior 100ms after scrolling ends. #

This feature was specified in this Spec.

Resources

Docs: https://groups.google.com/a/chromium.org/d/msg/blink-dev/KIoVljZw5fc/EKGAoTeX8CQJ

No linked samples

Subresource Integrity

Subresource Integrity defines a mechanism by which user agents may verify that a fetched resource has been delivered without unexpected manipulation. In a nutshell, metadata inlined into HTML elements allows the browser to determine whether the resource that was downloaded matches the resource the page's author expected to download. This implementation covers only the two elements outlined in the spec: <script> and <link rel="stylesheet"> elements. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/linkhttps://developer.mozilla.org/en-US/docs/Web/HTML/Element/scripthttps://developer.mozilla.org/en-US/docs/Web/API/Request

Samples: https://googlechrome.github.io/samples/subresource-integrity/index.html

Touch event timeout on mobile sites

Chrome on Android currently has a touch ACK timeout of 200ms for desktop sites. If the renderer does not respond to a touch event before the timeout delay, the touch sequence is cancelled and any associated gestures are dispatched. This change restores a touch timeout for sites with a mobile-friendly viewport, but with a timeout delay of 1 second. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/u/1/d/12k_LL_Ot9GjF8zGWP9eI_3IMbSizD72susba0frg44Y/view#heading=h.5zfdv2co2oj

Samples: rbyers.net/touch-timeout.html

Touch.rotationAngle

The rotation angle, in degrees, of the contact area ellipse defined by Touch.radiusX and Touch.radiusY. #

This feature was specified in this Spec.

Resources

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

Samples: https://rbyers.github.io/paint.html

Treat file:// URLs as having unique origin

Similar to sandboxed iframes and data: URLs, treat file:// URLs as having unique origin. #

This feature was specified in this Spec.

Window.{move,resize}{To,By} with non-optional arguments

The functions window.moveTo(), window.moveBy(), window.resizeTo() and window.resizeBy() throw TypeError when called with fewer than two arguments. #

This feature was specified in this Spec.

beforeinstallprompt event for web/native app install banners

An event for notifying the site that the browser is about to show an install banner, that also gives the site the ability to both suppress the banner, as well as show it later at a time of their choosing. Related: https://www.chromestatus.com/features/4540065577435136 #

This feature was specified in this Spec.

Resources

Docs: https://github.com/slightlyoff/AppInstallImprovements/blob/master/explainer.md#controlling-installationhttps://developer.mozilla.org/en-US/docs/Web/API/Window#Event_handlershttps://developer.mozilla.org/en-US/docs/Web/API/Window/onbeforeinstallprompthttps://developer.mozilla.org/en-US/docs/Web/API/BeforeInstallPromptEvent

Samples: https://killer-marmot.appspot.com/web/https://github.com/GoogleChrome/samples/tree/gh-pages/app-install-banner

rtcpMuxPolicy

The rtcpMuxPolicy is used by the application to specify its preferred policy regarding use of RTP/RTCP multiplexing. When the policy is "negotiate", the ICE candidates for both RTP and RTCP will be gathered. If the remote-endpoint is capable of multiplexing RTCP, multiplex RTCP on the RTP candidates. If it is not, use both the RTP and RTCP candidates separately. Note: The removal of this feature is not certain. Please comment on the launch bug #685727 if there is any concern. #

This feature was specified in this Spec.

Origin Trials in-progress in 45

This release of Chrome had 0 new origin trials.

Flagged features in 45

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

Audio and video tracks

This adds the ability to get information about multiple audio and video tracks, and switch between them using the AudioTrack.enabled and VideoTrack.selected attributes. #

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 45

This release of Chrome had 0 features deprecated.

Removed features in 45

This release of Chrome had 9 features removed.

Attr child nodes

Attr should not have any child nodes per the DOM spec and should not inherit from Node. This entry covers the child node aspect only. #

This feature was specified in this Spec.

Resources

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

No linked samples

CSSKeyframesRule.insertRule()

Replaced by CSSKeyframesRule.appendRule() #

This feature was specified in this Spec.

Resources

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

No linked samples

CSSUnknownRule

The CSSUnknownRule interface represents an at-rule not supported by this user agent. #

This feature was specified in this Spec.

Resources

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

No linked samples

Document.charset setter

Document.charset is a non-standard IDL attribute supported by all engines except Gecko, with a proposal to standardize it: https://www.w3.org/Bugs/Public/show_bug.cgi?id=27436 In order to simplify standardization, Document.charset has been made readonly, as a simple alias of Document.characterSet. #

This feature was specified in this Spec.

Resources

Docs: https://www.w3.org/Bugs/Public/show_bug.cgi?id=27436https://developer.mozilla.org/en-US/docs/Web/API/Document/characterSet

No linked samples

NPAPI plug-in support

NPAPI’s 90s-era architecture has become a leading cause of hangs, crashes, security incidents, and code complexity in Chrome. Because of this, Chrome will be phasing out NPAPI support in 2013. #

This feature was specified in this Spec.

Push API: PushSubscription.subscriptionId

[Deprecated in Chrome 44, removed in Chrome 45] The Push API previously exposed two properties identifying the subscription: {endpoint, subscriptionId}. These will be merged to be only a single property: endpoint. Developers can update their implementation by only considering endpoint if it considers the contents of subscriptionId. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/PushSubscription/subscriptionIdhttps://developer.mozilla.org/en-US/docs/Web/API/PushSubscription/endpointhttp://updates.html5rocks.com/2015/05/Notifying-you-of-notificiation-changes

Samples: https://github.com/GoogleChrome/samples/tree/gh-pages/push-messaging-and-notifications

Push API: gcm_user_visible_only deprecation

[Deprecated in Chrome 44, removed in Chrome 45] We asked developers to indicate their intent to only send push messages that result in user visible UI - Web Notifications, by including the "gcm_user_visible_only" key in their Manifest. We are now removing this key in favor of the specified solution: userVisibleOnly. The subscribe() method should be updated like this: serviceWorkerRegistration.pushManager.subscribe({ userVisibleOnly: true }).then(...) #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/PushManager/subscribehttp://updates.html5rocks.com/2015/05/Notifying-you-of-notificiation-changes

Samples: https://github.com/GoogleChrome/samples/tree/gh-pages/push-messaging-and-notifications

Range.compareNode() and Range.expand()

These are non-standard extensions to the Range interface introduced in 2006 and 2009 respectively: https://trac.webkit.org/changeset/48271 https://trac.webkit.org/changeset/16302 #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/range/compareNodehttps://msdn.microsoft.com/library/ms536421(v=vs.85).aspx

No linked samples

Remove filterRes attribute

We plan to remove the filterRes attribute to align with the spec (http://www.w3.org/TR/filter-effects/#element-attrdef-filter-filterres). #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/filterRes

No linked samples