Chrome Release Summary

Chrome version: 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 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 66

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

Enabled by default in 66

This release of Chrome had 35 new features.

Add and update MHTML headers to support sharing of MHTML pages

To support sharing of MHTML pages, a new header Snapshot-Content-Location will be added. The existing Subject header will be updated to support encoding of non-printable ASCII characters. #

Resources

Docs: https://discourse.wicg.io/t/mhtml-generation-and-loading-as-implemented-in-chrome/2387

No linked samples

Add autocomplete attribute to <textarea> and <select>

Add autocomplete attribute to <textarea> and <select> as per spec. https://html.spec.whatwg.org/multipage/form-elements.html#the-select-element, https://html.spec.whatwg.org/multipage/form-elements.html#the-textarea-element #

This feature was specified in this Spec.

Aligning U2F attestation with webauthn

Chrome has never supported the FIDO U2F API directly[1]. However, it does ship with an internal extension and it's possible to implement the U2F API by using postMessage to send messages to this extension. (Description continued in comments.) [1] https://fidoalliance.org/specs/fido-u2f-v1.2-ps-20170411/fido-u2f-javascript-api-v1.2-ps-20170411.html #

Resources

Docs: https://www.chromium.org/security-keys

No linked samples

Array.prototype.values

The values() method returns a new Array Iterator object that contains the values for each index in the array. var #

This feature was specified in this Spec.

Resources

No linked docs

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

Asynchronous Clipboard API

A modern, asynchronous Clipboard API based on Promises. Text-only APIs (clipboard.readText and clipboard.writeText): * Behind a flag in M62 * Enabled by default in M66 Support for images and other data types is still under development. #

This feature was specified in this Spec.

Resources

Docs: https://web.dev/async-clipboard/

Samples: https://googlechrome.github.io/samples/async-clipboard/

Autocapitalize support on all editable elements and on <form> elements

Improve compatibility with Safari’s implementation of autocapitalize by: - Supporting autocapitalize attribute on any contenteditable element - Allow specifying the autocapitalize attribute on a <form> element to have it apply to all child form fields #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1pBwWacGm8GsPHCJDbJ3PZ2l1ywz_dACO3sMh5hUmD7E/edit?usp=sharing

No linked samples

CSS Typed OM (Houdini)

The new CSSOM provides typed style access for developers. This will generally improve performance primarily by removing the need to do lots of string parsing. In addition to this, it will enable performant development of various new Houdini specifications (including custom properties, layout and paint). Only a subset of CSS properties are supported for now: https://chromium.googlesource.com/chromium/src/+/master/third_party/WebKit/Source/core/css/cssom/README.md #

This feature was specified in this Spec.

Resources

Docs: https://developers.google.com/web/updates/2018/03/cssomhttps://docs.google.com/document/d/1a4gFI-iFv5uA3SskHMrt-ZphCJTbNda9U78xlHmektA/view

No linked samples

CSS calc() in media queries

According to the CSS Values 4 spec, math functions such as calc() should be allowed wherever individual CSS values such as numbers are allowed. However, calc() expressions are not currently parsed in media queries. This change would introduce support for parsing calc() expressions inside of media queries. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/CSS/calchttps://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries

No linked samples

Do not throw on unimplemented but valid keyframe-specific composite values.

By spec, the following should not throw even if additive/accumulative animations are not yet supported by the browser: // Currently throws on Chrome - should not! element.animate( [ { color: 'red', composite: 'accumulate' }, { color: 'blue', composite: 'add' } ], 2000); ); Firefox does not throw in this case. #

This feature was specified in this Spec.

ECMAScript ⊃ JSON

A Stage 3 proposal makes ECMAScript a syntactic superset of JSON by allowing line separator (U+2028) and paragraph separator (U+2029) in string literals. #

This feature was specified in this Spec.

Feature Policy: control over Device Orientation API

The sensor policy-controlled features are used to control access to a device sensors requested through an event specified in the DeviceOrientation Event Specification. By default, the deviceorientation, deviceorientationabsolute and devicemotion events will be restricted to top-level document and same-origin subframes (it follows from features default allow list 'self'). The default behavior can be modified by explicitly enabling or disabling of the dedicated sensor policy-controlled features. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WICG/feature-policy/blob/gh-pages/features.md#sensor-featureshttps://w3c.github.io/sensors/#feature-policy-api

No linked samples

Fetch API: AbortSignal and AbortController

A fetch() can be made cancellable by passing an AbortSignal "signal" in the fetch options. Calling abort() on the associated AbortController will then cancel the fetch. #

This feature was specified in this Spec.

Resources

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

Samples: https://developers.google.com/web/updates/2017/09/abortable-fetch

Fetch API: keepalive

This option instructs fetch() to perform resource fetching with the keepalive flag set for non-blocking event reporting, analytics, etc. as well as the Beacon API (SendBeacon). #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1iHJtFa3jOo5n9QXHb6Ok5nK8kavXSk2DrLoubPWi9ys/edit

No linked samples

Function.prototype.toString revision

The "implementation-dependent String" returned from Function.prototype.toString() is now a fully-specified String, which is a substring of the source code that defines the function. For example, this preserves whitespace and comments between the "function" keyword and the function name identifier. For functions created with CreateDynamicFunction (such as through `new Function()`), the String is fully-specified and includes the parameters passed to CreateDynamicFunction. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/tc39/Function-prototype-toString-revisionhttps://tc39.github.io/Function-prototype-toString-revision/

No linked samples

Link rel=modulepreload

The new "modulepreload" rel value in <link> element and Link: header provides a way to initiate early (and high-priority) loading of module scripts. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1WebH4IOCswACUbaczx5cGQPVl5mnqcieOd4MRJM2syk/edit?usp=sharing

Samples: https://irori.github.io/modulepreload-demo/

Make <tr> with transform be a containing block.

Elements with table-row, table-row-group, table-header-group, table-footer-group, table-cell, and table-caption that have a transform property should be containing blocks for fixed position elements. Blink currently does not make <tr>, <tbody>, <tfoot>, and <thead> be a containing block for fixed position elements, which we propose to change. #

This feature was specified in this Spec.

Resources

Docs: https://www.w3.org/TR/css-transforms-1/#transformable-elementhttps://www.w3.org/TR/css-transforms-1/#transform-rendering

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

Media Capabilities: decoding

This specification intends to provide APIs to allow websites to make an optimal decision when picking media content for the user. This launch is only about exposing the decoding abilities of the device/system/browser. #

This feature was specified in this Spec.

Resources

Docs: https://developers.google.com/web/updates/2017/12/chrome-63-64-media-updates#media-capabilities-decoding-info-api

Samples: https://googlechrome.github.io/samples/media-capabilities/decoding-info.htmlhttps://beaufortfrancois.github.io/sandbox/media-capabilities/decoding-info-2.html

MediaStreamTrack.getCapabilities()

Returns the capabilities of the source associated to a MediaStreamTrack. There is also a variant InputDeviceInfo.getCapabilities(), available in the results of MediaDevices.enumerateDevices(). These devices are used as sources for MediaStreamTrack; in this case, getCapabilities() returns the same values as MediaStreamTrack.getCapabilities(). #

This feature was specified in this Spec.

Resources

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

No linked samples

Network error when blob URL loading fails

Rather than returning a 404 when attempting to read from a invalid/non-existing Blob URL, these fetches should result in a network error. #

This feature was specified in this Spec.

Optional catch binding

This proposal allows the `catch` clause to exist without a parameter. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: http://2ality.com/2017/08/optional-catch-binding.htmlhttps://twitter.com/mathias/status/956209997808939008

RTCRtpSender: dtmf attribute

This attribute allows access to the DTMF feature of a PeerConnection's audio track. It is a replacement for the now non-standard CreateDTMFSender function on a PeerConnection. #

This feature was specified in this Spec.

Retargeting result of elementFromPoint and elementsFromPoint

Previously elementFromPoint and elementsFromPoint are not per spec, and it may return null incorrectly because it is not retargeting the result correctly. We are fixing it to adhere to the spec by applying the correct retargeting algorithm. #

This feature was specified in this Spec.

Send “input” Event on activation behavior for radio and file input type

As per spec, on input activation behavior fires a input event, then a change event for radio and file <input > type. #

This feature was specified in this Spec.

Resources

Docs: https://html.spec.whatwg.org/multipage/input.html#radio-button-state-(type=radio)https://html.spec.whatwg.org/multipage/input.html#file-upload-state-(type=file)

No linked samples

Send “input” Event on checkbox click

As per spec, click on mutable checkbox fires a click event, then an input event, then a change event. #

This feature was specified in this Spec.

Service Worker: Disallow CORS responses for same-origin requests.

With this change, a service worker can no longer respond to a request whose mode is 'same-origin' with a response whose type is 'cors'. This is a security measure added to the Fetch specification via https://github.com/whatwg/fetch/issues/629 and https://github.com/whatwg/fetch/pull/655. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/whatwg/fetch/issues/629https://github.com/whatwg/fetch/pull/655

No linked samples

Service Worker: Non-nullable FetchEvent#clientId

With this change FetchEvent#clientId will return an empty string instead of null when it isn't set, e.g., for a navigation request. #

This feature was specified in this Spec.

Service Worker: Requests from embed and object elements skip service workers

Service workers no longer receive fetch events for requests from embed and object elements. This includes both requests for the main resource itself (the src or data attribute) and for any requests from the resulting context (the plugin or HTML context). This change was made to adhere to the specification, which disallows service worker interception due to security considerations. #

This feature was specified in this Spec.

String.prototype.trimStart / String.prototype.trimEnd

Until now, String.prototype.{trimLeft,trimRight} were non-standard language extensions, required for Web compatibility. The Stage 3 proposal at https://github.com/tc39/proposal-string-left-right-trim standardizes this functionality as String.prototype.{trimStart,trimEnd}, and defines String.prototype.{trimLeft,trimRight} as aliases for backwards compatibility. This patch implements that proposal behind the --harmony-string-trimming flag. #

This feature was specified in this Spec.

The ImageBitmap rendering context for <canvas>

A new rendering context that streamlines the display of ImageBitmap objects. This new rendering context uses transfer semantics to take ownership of the pixels of an ImageBitmap object, thus avoiding memory duplication and rasterization overhead. #

This feature was specified in this Spec.

Resources

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

No linked samples

Unprefix CSS Grid Layout gutter properties

Rename gutter properties to remove "grid-" prefix: * grid-gap => gap * grid-row-gap => row-gap * grid-column-gap => column-gap Note that column-gap already exists and is used by css-multicol. The parsing needs to be updated as now the default value is "normal". The old (prefixed) properties names will be kept working as aliases. #

This feature was specified in this Spec.

WebAudio: AudioParam setter is equivalent to setValueAtTime

When setting the value of an AudioParam via the value setter, the value is updated exactly as if setValueAtTime(newValue, context.currentTime). This includes throwing errors that weren't previously thrown and changing the AudioParam timeline #

This feature was specified in this Spec.

Resources

Docs: https://webaudio.github.io/web-audio-api/#attributes-5

No linked samples

WebAudio: Remove dezippering

Historically, Chrome implemented dezippering such that when the value setter of an AudioParam was used, the value was not changed instantaneously. Instead, an exponential approach equivalent to setTargetValueAtTime was done. The actual time constant used was never specified and depended on the AudioParam. With the spec change in https://github.com/WebAudio/web-audio-api/pull/393, (Sep 2015), all dezippering was removed from the spec. Dezippering will be removed from Chrome. #

This feature was specified in this Spec.

Resources

Docs: https://webaudio.github.io/web-audio-api/#audioparam-transitionshttps://github.com/WebAudio/web-audio-api/issues/76#issuecomment-107679878https://github.com/WebAudio/web-audio-api/pull/393

No linked samples

[WebAudio] AudioWorklet

The AudioWorklet allows developers to supply JavaScript to process audio on the audio rendering thread. This processing mechanism ensures the synchronous execution of the author code with other built-in AudioNodes in the audio graph. The AudioWorklet is designed to replace ScriptProcessorNode. ScriptProcessorNode will be deprecated once AudioWorklet is shipped. #

This feature was specified in this Spec.

Resources

Docs: https://developers.google.com/web/updates/2017/12/audio-worklet, https://developers.google.com/web/updates/2018/06/audio-worklet-design-pattern

Samples: https://googlechromelabs.github.io/web-audio-samples/audio-worklet/

inputmode

The inputmode content attribute is an enumerated attribute that specifies what kind of input mechanism would be most helpful for users entering content into the form control or content editable. #

This feature was specified in this Spec.

Resources

Docs: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/KjKEZ5Ga3k8

Samples: http://output.jsbin.com/teselus/1

window.focus() exits HTML5 fullscreen

If a page in fullscreen mode opens a popup and calls window.focus(), that page will exit full screen. This will not occur if the popup receives focus some other way. #

Origin Trials in-progress in 66

This release of Chrome had 1 new origin trials.

Web Locks API

This API allows scripts running in one tab to asynchronously acquire a lock, hold it while work is performed, then release it. While held, no other script in the origin can acquire the same lock. A lock represents some potentially shared resource, identified by a name chosen by the web app. For example, if a web app running in multiple tabs wants to ensure that only one tab is syncing to the network, each tab could try to acquire a "my_net_sync" lock, but only one tab will succeed. #

This feature was specified in this Spec.

Flagged features in 66

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

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 66

This release of Chrome had 0 features deprecated.

Removed features in 66

This release of Chrome had 0 features removed.