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 59

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

Enabled by default in 59

This release of Chrome had 24 new features.

Animated PNG

Support for animated PNG images #

This feature was specified in this Spec.

Resources

Docs: https://en.wikipedia.org/wiki/APNG#Technical_detailshttps://en.wikipedia.org/wiki/APNG#/media/File:Apng_assembling.svghttp://philip.html5.org/tests/apng/tests.html

Samples: http://littlesvr.ca/apng/gif_apng_webp1.htmlhttp://people.mozilla.org/~dolske/apng/demo.htmlhttp://photobucket.com/apng

CSP hash expressions can match external scripts.

CSP3 allows hash expressions to match external scripts, by relying on SRI as underlying infrastructure. That is, given `Content-Security-Policy: script-src 'sha256-abc123' 'sha512-321cba'`, `<script integrity="sha256-abc123" ...></script>` will be allowed. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/default-src

No linked samples

CSP3: The 'worker-src' directive

The 'worker-src' directive restricts the URLs which may be loaded as a Worker, SharedWorker, or ServiceWorker. It falls back to 'child-src' (which, in turn, falls back to 'default-src'). #

This feature was specified in this Spec.

CSP: `report-sample` property in violation reports

The `report-sample` property attempts to reach consensus on an opt-in variant Firefox's behavior. In short, we'll collect a 40-character sample for inline script and style violations, and include it in the violation report (and associated SecurityPolicyViolationEvent object) iff a 'report-sample' expression is present in the violated directive. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src

No linked samples

CSS Box Alignment shorthands

Shorthand properties to control the alignment behavior along block and inline axes in a single declaration. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/CSS/place-contenthttps://developer.mozilla.org/en-US/docs/Web/CSS/place-selfhttps://developer.mozilla.org/en-US/docs/Web/CSS/place-items

No linked samples

DIALOG element has display:block style by default

The default display style of a DIALOG element is changed from inline to block. #

This feature was specified in this Spec.

DeviceOrientationEvent and DeviceMotionEvent constructors

The DeviceOrientationEvent and DeviceMotionEvent constructors are defined by the DeviceOrientation Event Specification but were not were not implemented in Chrome. Firefox has already shipped these constructors as specified. #

This feature was specified in this Spec.

Resources

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

Samples: http://w3c-test.org/orientation-event/idlharness.html

Fetch API: Request#url includes the URL fragment

Request#url now includes the URL fragment, as per the spec. Before Chrome 59, the fragment was stripped out. This means service workers can see the URL fragment in the 'fetch' event handler. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/Request/urlhttps://github.com/w3c/ServiceWorker/issues/854https://github.com/whatwg/fetch/issues/214

No linked samples

Headless mode

Headless mode allows running Chromium in a headless/server environment. Expected use cases include loading web pages, extracting metadata (e.g., the DOM) and generating bitmaps from page contents -- using all the modern web platform features provided by Chromium and Blink. To use headless, start Chrome with a command line flag: $ chrome --headless --remote-debugging-port=9222 https://chromium.org #

This feature was specified in this Spec.

Resources

Docs: https://developers.google.com/web/updates/2017/04/headless-chromehttps://developers.google.com/web/updates/2017/06/headless-karma-mocha-chaihttps://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md

Samples: https://www.youtube.com/watch?v=n6biclFh0i0

MediaError.message

The MediaError.message DOMString field provides, if available, any additional vendor-specific error message detail to assist web authors debugging media player errors. The format and content of the string is left to vendors, though it's commonly in the form of a vendor-specific error code followed optionally by a ":" and further detail about the error. It is populated at the time of MediaError creation. #

This feature was specified in this Spec.

Resources

Docs: https://html.spec.whatwg.org/multipage/embedded-content.html#dom-mediaerror-messagehttps://developer.mozilla.org/en-US/docs/Web/API/MediaError/message

Samples: https://googlechrome.github.io/samples/media/error-message.html

MediaStream Image Capture

Enable taking pictures from an Image/Video Capture Device. #

This feature was specified in this Spec.

Resources

Docs: http://w3c.github.io/mediacapture-image/index.html

Samples: https://googlechrome.github.io/samples/image-capture/index.htmlhttps://tinyurl.com/image-capturehttps://dandv.github.io/imagecapturehttps://simpl.info/ic

Navigation preload for service workers

An API that enables the browser to send “preload” network requests for navigations before executing the fetch event handler in the service worker that intercepts the target URL. The worker has access to the preload response inside the fetch event handler. Common use cases would be to respond with the preload response directly, or use it to populate the response. #

This feature was specified in this Spec.

Resources

Docs: https://developers.google.com/web/updates/2017/02/navigation-preloadhttps://mattto.github.io/sw/demo/navigation-preload/https://developer.mozilla.org/en-US/docs/Web/API/NavigationPreloadManager

No linked samples

Partial RTCRtpReceiver and RTCRtpContributingSource support

The parts of the RTC Media API (https://w3c.github.io/webrtc-pc/#rtp-media-api) that allow keeping track of contributing sources for receiving tracks. RTCPeerConnection extension: getReceivers(). RTCRtpSender support: track, getContributingSources(). RTCRtpContributingSource support: timestamp, source. Feature for the rest of the API: https://www.chromestatus.com/feature/5347809238712320 #

This feature was specified in this Spec.

Resources

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

No linked samples

Presentation API: Receiver API

This is implementing the receiving side of the API in order to allow a web page to be presented and interact with the presenting web page. This is also called 1-UA mode because that mode would allow the browser to render both presenting and receiving pages locally. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://googlechrome.github.io/samples/presentation-api/https://googlechromelabs.github.io/presentation-api-samples/photowall/

RTCConfiguration.iceCandidatePoolSize

Normally, ICE candidates are only gathered after RTCPeerConnection.setLocalDescription is called, because this is the point at which the PeerConnection knows how many ports it needs. The iceCandidatePoolSize member of RTCConfiguration instructs the PeerConnection to gather ICE candidates before this occurs, as a performance optimization. Thus, if setting the local description is delayed (by signaling, for example), interactions with STUN/TURN servers can occur in parallel. #

This feature was specified in this Spec.

RTCPeerConnection.onicegatheringstatechange

This feature adds the icegatheringstatechange event and the onicegatheringstatechange event handler to RTCPeerConnection. #

This feature was specified in this Spec.

Resources

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

No linked samples

Referrer Policy Header for CSS

Add the ability for CSS stylesheets to specify their own referrer policy via the HTTP header. #

This feature was specified in this Spec.

Response.redirected and a new security restriction

- Add .redirected attribute to Response class of Fetch API. Web developers can check it to avoid untrustworthy responses. - To avoid the risk of open redirectors (https://cwe.mitre.org/data/definitions/601.html) introduce a new security restriction which disallows service workers to respond to requests with a redirect mode different from "follow". #

This feature was specified in this Spec.

Resources

Docs: Public standards discussion:https://github.com/whatwg/fetch/issues/79Spec of Response.redirected:https://fetch.spec.whatwg.org/#dom-response-redirectedSpec change:https://github.com/whatwg/fetch/commit/e54f6bd1e75f46cd4b8202f5ee3bfa68e9ded906MDN:https://developer.mozilla.org/en-US/docs/Web/API/Response/redirected

No linked samples

Screen.colorDepth and Screen.pixelDepth can return other value than 24

The Screen object is no longer required to return 24 for colorDepth and pixelDepth. It enables websites to have a better idea of the number of bits being used to display a color on the screen. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/Screenhttps://developer.mozilla.org/en-US/docs/Web/API/Screen/colorDepthhttps://developer.mozilla.org/en-US/docs/Web/API/Screen/pixelDepth

No linked samples

Streams API: Piping

ReadableStream's pipeTo() is the standard way to compose readable and writable streams. It reads data from the ReadableStream and writes it to a WritableStream while respecting backpressure. pipeThrough() is a simple wrapper around pipeTo() that provides elegant syntax for chaining multiple streams. #

This feature was specified in this Spec.

Resources

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

Samples: https://streams.spec.whatwg.org/#rs-intro

Streams API: WritableStream

WritableStream is part of the Streams API for creating, composing, and consuming streams of data. It is the writable counterpart to ReadableStream, which is already shipping in Chrome. It provides a standard abstraction for writing streaming data to a sink, with built-in backpressure and queuing. This is expected to be on by default in Chrome 59. #

This feature was specified in this Spec.

Resources

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

Samples: https://streams.spec.whatwg.org/#ws-intro

WebAudio: decodeAudioData detaches ArrayBuffer

According to the spec, decodeAudioData detaches the given ArrayBuffer before decoding. This means that the ArrayBuffer no longer has any contents and can't be reused or examined. If it's important to keep the data, user ArrayBuffer.slice(0) to make a copy for decodeAudioData. #

This feature was specified in this Spec.

Resources

Docs: https://webaudio.github.io/web-audio-api/#widl-BaseAudioContext-decodeAudioData-Promise-AudioBuffer--ArrayBuffer-audioData-DecodeSuccessCallback-successCallback-DecodeErrorCallback-errorCallback

No linked samples

rAF Aligned Touch Input

Align touchmove events so that they occur close to requestAnimationFrame() as possible. #

This feature was specified in this Spec.

Resources

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

Samples: http://rbyers.github.io/event-timing.html

self.origin

self.origin returns the Unicode serialization of the origin of the settings object of the global represented by "self" (a Window or WorkerGlobalScope). This gives scripts a consistent way of getting their origin in both situations. Note that unlike location.origin this represents the actual origin of the global, not the origin of the URL it's loaded from. The difference can be substantial in the case of sandboxing, for example. #

This feature was specified in this Spec.

Resources

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

No linked samples

Origin Trials in-progress in 59

This release of Chrome had 0 new origin trials.

Flagged features in 59

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 59

This release of Chrome had 1 features deprecated.

Deprecate and Disable SDCH

SDCH is a shared dictionary compression mechanism developed by Google but not standardized. It's use in chrome is being discontinued. Intent to deprecate thread: https://groups.google.com/a/chromium.org/forum/#!searchin/blink-dev/SDCH%7Csort:relevance/blink-dev/nQl0ORHy7sw/HNpR96sqAgAJ #

This feature was specified in this Spec.

Removed features in 59

This release of Chrome had 7 features removed.

Deprecate SVGTests.requiredFeatures attribute

In SVG2, hasFeature always return true. So requiredFeatures attribute not doing anything useful. It has been removed from the spec: https://github.com/w3c/svgwg/commit/9a30d01f6410dc516c5f874d71e957230a3448cd This was deprecated in Chrome 54/Opera 41. #

This feature was specified in this Spec.

Resources

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

No linked samples

Deprecate and remove -internal-media-controls-cast-button

-internal-media-controls-cast-button selector exposes Blink internal shadow DOM to the web content. Authors that want to have a custom cast button should use custom controls and implement a cast button with the Remote Playback API. #

This feature was specified in this Spec.

Deprecate and remove -internal-media-controls-text-track-list*

-internal-media-controls-text-track-list* selectors expose Blink internal shadow DOM to the web content. Authors that want to have a custom text track picking interface should use custom controls. #

This feature was specified in this Spec.

Drop support for embedded credentials in subresource requests.

We should block requests for subresources that contain embedded credentials (e.g. "http://ima_user:hunter2@example.com/yay.tiff"). Such resources would be handled as network errors. #

This feature was specified in this Spec.

Drop support for subresources with legacy protocols.

We should block requests from HTTP/HTTPS documents that target "legacy" schemes (e.g. "ftp://my-awesome-ftp-server.com/yay.tiff"). That is, the `ftp://` image referenced in https://jsbin.com/petonig/edit?html,output would not load, as the document itself is not served from `ftp://`. #

This feature was specified in this Spec.

Remove "on-demand" value for hover/any-hover media queries.

Remove the support for "hover: on-demand" and "any-hover: on-demand" media queries. The "on-demand" value used to satisfy for the pointing devices that, for example, "can't normally hover, but will activate hover on a long press". The "on-demand" value for hover/any-hover media queries has been removed from the spec in early 2016. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/w3c/csswg-drafts/commit/2078b46218f7462735bb0b5107c9a3e84fb4c4b1

No linked samples

Remove FileReaderSync from service workers

The Service Worker spec has always had the (non-normative) note that "any type of synchronous requests must not be initiated inside of a service worker", to avoid blocking the service worker (as blocking the service worker would block all network requests from controlled pages). However synchronous APIs such as FileReaderSync were still available in service workers. So we'd like to fix that by removing this API from service workers. This was deprecated in Chrome 57. #

This feature was specified in this Spec.

Resources

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

No linked samples