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 46

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

Enabled by default in 46

This release of Chrome had 25 new features.

'allow-popups-to-escape-sandbox' sandboxing flag.

This is a new flag for `<iframe sandbox="...">` which will allow a sandboxed document to spawn new windows without forcing the sandboxing flags upon them. This will allow, for example, a third-party advertisement to be safely sandboxed without forcing the same restrictions upon a landing page. #

This feature was specified in this Spec.

Resources

Docs: https://lists.w3.org/Archives/Public/public-whatwg-archive/2015May/0035.htmlhttps://www.w3.org/Bugs/Public/show_bug.cgi?id=28817https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe

Samples: https://googlechrome.github.io/samples/allow-popups-to-escape-sandbox/index.html

API to disable scroll restoration on history navigation

The API allows web applications to explicitly disable user agents default scroll restoration behavior on history navigation through `history.scrollRestoration = 'manual'`. #

This feature was specified in this Spec.

Resources

Docs: http://wpt.fyi/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/https://developer.mozilla.org/en-US/docs/Web/API/Historyhttps://developers.google.com/web/updates/2015/09/history-api-scroll-restoration

No linked samples

Block modal dialogs inside a sandboxed iframe.

Folks in Google's anti-malvertising team would like to be able to prevent sandboxed frames from popping up confusing, modal messages to users. This includes things like `alert()`, `confirm()`, and `prompt()` (and `print()` (and maybe authentication dialogs)). #

This feature was specified in this Spec.

Resources

Docs: https://lists.w3.org/Archives/Public/public-whatwg-archive/2015May/0035.htmlhttps://www.w3.org/Bugs/Public/show_bug.cgi?id=28818https://developer.mozilla.org/en-US/docs/Web/API/Window/alerthttps://developer.mozilla.org/en-US/docs/Web/API/Window/confirmhttps://developer.mozilla.org/en-US/docs/Web/API/Window/prompthttps://developer.mozilla.org/en-US/docs/Web/API/Window/print

Samples: https://googlechrome.github.io/samples/block-modal-dialogs-sandboxed-iframe/index.html

CSS Intrinsic Sizing

Extends the CSS sizing properties with keywords that represent content-based "intrinsic" sizes and context-based "extrinsic" sizes, allowing CSS to more easily describe boxes that fit their content or fit into a particular layout context. (Note that the "fill" keyword is only shipping prefixed so far, pending CSSWG agreement to unprefix) #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/CSS/widthhttps://developer.mozilla.org/en-US/docs/Web/CSS/height

Samples: https://googlechrome.github.io/samples/css-intrinsic-sizing/index.html

CSS.escape()

`CSS.escape()` serializes a string as a CSS identifier. This enables developers to easily and securely do things like escaping a string for use as part of a selector. #

This feature was specified in this Spec.

Resources

Docs: https://mathiasbynens.be/notes/css-escapeshttps://github.com/mathiasbynens/CSS.escape

Samples: https://googlechrome.github.io/samples/css-escape/index.htmlhttps://developer.mozilla.org/en-US/docs/Web/API/CSS/escape

Cache API is restricted to secure origins

Cache API exposed to window and worker contexts (not just service worker) shipped in Chrome 43. As of Chrome 46, the API is restricted to secure origins (HTTPS only), per https://github.com/slightlyoff/ServiceWorker/issues/709 #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/Cachehttps://developer.mozilla.org/en-US/docs/Web/API/Cache/addhttps://developer.mozilla.org/en-US/docs/Web/API/Cache/addAllhttps://developer.mozilla.org/en-US/docs/Web/API/Cache/put

No linked samples

Cache.addAll()

addAll() takes an array of RequestInfo objects, fetches them and adds the response objects into this Cache object. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/Cache/addAllhttps://developers.google.com/web/updates/2015/09/updates-to-cache-api

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

DOMException constructor

Allow DOMExceptions to be created from script #

This feature was specified in this Spec.

Resources

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

No linked samples

Event.isTrusted attribute

Event.isTrusted is an attribute that is true when the event was generated by a user action, and false when the event was created or modified by script, or dispatched via dispatchEvent. #

This feature was specified in this Spec.

Resources

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

Samples: https://googlechrome.github.io/samples/event-istrusted/index.html

Fetch API: Request.redirect

Request.redirect could be "follow", "error" or "manual". If it is "follow", fetch() API follows the redirect response (HTTP status code = 301,302,303,307,308). If it is "error", fetch() API treats the redirect response as an error. If it is "manual", fetch() API doesn't follow the redirect and returns an opaque-redirect filtered response which wraps the redirect response. #

This feature was specified in this Spec.

Resources

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

No linked samples

HTTP Client Hints: DPR, Width, Viewport-Width

DPR, Width, and Viewport-Width hints enable proactive content negotiation between client and server, enabling automated delivery of optimized assets - e.g. auto-negotiating image DPR resolution, image size, and other optimized assets based on signals such as client's viewport width. For more detail, see: https://docs.google.com/document/d/1SnRhnR_oWQ4Rivb7InJ9a_0T2k9CnuhNcMkd9xtLrKY/edit and https://github.com/igrigorik/http-client-hints#use-cases #

This feature was specified in this Spec.

Resources

Docs: https://github.com/igrigorik/http-client-hintshttps://developers.google.com/web/updates/2015/09/automating-resource-selection-with-client-hintshttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headershttps://developer.mozilla.org/en-US/docs/Web/HTTP/Content_negotiation

Samples: https://github.com/igrigorik/http-client-hints#use-cases

HTTP Public Key Pinning violating reporting

HTTP Public Key Pinning (HPKP) allows websites to send an HTTP header that pins one or more of the public keys present in the site’s certificate chain. This feature tracks the implementation of HPKP reporting, which allows website owners to receive reports when the browser detects HPKP violations. #

This feature was specified in this Spec.

Resources

Docs: https://developers.google.com/web/updates/2015/09/HPKP-reporting-with-chrome-46https://docs.google.com/document/d/1hPMeG44li9hccIj4Jm2S3v1O_DEYnPsoiD4ZCzkAN8c/edit?usp=sharinghttps://developer.mozilla.org/en-US/docs/Web/Security/Public_Key_Pinning

No linked samples

Link rel=preconnect (Resource Hints)

Adds support for <link rel="preconnect" href="..."> (and the equivalent HTTP link header) as a hint that the browser should predictively open a connection to the supplied server/protocol for resources that will be needed later in the loading process. #

This feature was specified in this Spec.

Resources

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

No linked samples

Parsing background_color from Web Application Manifest

The background_color attribute in the JSON Web Application Manifest allows web developers to provide a hint to Chrome indicating the background color of their web application. This color is used as the background of the application while its resources are fetched. #

This feature was specified in this Spec.

Resources

Docs: https://developers.google.com/web/updates/2015/09/using-web-app-manifest-to-set-solid-color-loading-screenhttps://developer.mozilla.org/en-US/docs/Web/Manifest

No linked samples

Parsing theme_color from Web Application Manifest

The theme_color attribute in the JSON Web Application Manifest allows web developers to provide a global theme color which can be used throughout their entire website. This color is used for the header in the recents menu of Android. #

This feature was specified in this Spec.

Resources

Docs: https://developers.google.com/web/updates/2015/09/using-manifest-to-set-sitewide-theme-colorhttps://developer.mozilla.org/en-US/docs/Web/Manifest

No linked samples

Performance Timeline APIs for Workers

Performance Timeline APIs (User Timing and Resource Timing) are now available to Web Workers. #

This feature was specified in this Spec.

Resources

Docs: http://www.w3.org/TR/user-timing/https://w3c.github.io/resource-timing/

No linked samples

PerformanceResourceTiming.workerStart

PerformanceResourceTiming.workerStart attribute allows developers to instrument and measure ServiceWorker startup time. #

This feature was specified in this Spec.

Service Worker: Allow CORS responses for client requests

When a FetchEvent is for page loading or worker script loading, FetchEvent.respondWith() will accept CORS responses. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/whatwg/fetch/commit/1612905aae06fdb912779b308d71bfc13422833f

No linked samples

Service Worker: ServiceWorkerRegistration.update() returns a promise

update() pings the server for an updated version of this Service Worker registration. This feature was shipped in milestone 45. In milestone 46, update() returns a promise that resolves with 'undefined' if the operation completed successfully or there was no update, and rejects if update failed. If the new worker ran but installation failed, the promise still resolves (same with register()). #

This feature was specified in this Spec.

Resources

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

No linked samples

Service worker: Clients.matchAll() returns clients in MRU order

Clients.matchAll sorts the clients in most-recently-focused order. #

This feature was specified in this Spec.

Resources

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

No linked samples

Spread (call and array) (ES6)

Spread calls allow an iterable expression to be spread into function arguments, similar to using Function.prototype.apply. Spread array allows an array literal to contain spread expressions which spreads the values of the iterator into the array. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator

Samples: https://googlechrome.github.io/samples/spread-operator/index.html

Unprefixed Resource Timing API

Resource Timing extensions to the Performance interface without the "webkit" prefix. #

This feature was specified in this Spec.

Resources

Docs: http://googledevelopers.blogspot.com/2013/12/measuring-network-performance-with.html

No linked samples

WebAudio: Allow disabling normalization in PeriodicWave

createPeriodicWave() takes an optional third parameter that allows enabling or disabling normalization of the waveform that would be produced by a PeriodicWave. The default is to enable normalization, which was the previous behavior. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WebAudio/web-audio-api/issues/91#issuecomment-60655020

No linked samples

WebRTC Data Channel buffer monitoring with the "bufferedamountlow" event

This event allows pages to use WebRTC DataChannels for high-throughput applications more efficiently and conveniently, by removing the need to use timer-based polling for output buffer management. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/w3c/webrtc-pc/pull/233https://lists.w3.org/Archives/Public/public-webrtc/2015May/thread.html#msg73https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel/onbufferedamountlow

Samples: https://github.com/webrtc/samples/blob/gh-pages/src/content/datachannel/datatransfer/js/main.js#L127https://webrtc.github.io/samples/src/content/datachannel/datatransfer/

new.target (ES6)

new.target is a "meta-property" available in all functions. It refers to the constructor invoked by 'new' (if a construct call is underway) or undefined otherwise. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new.target

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

Origin Trials in-progress in 46

This release of Chrome had 0 new origin trials.

Flagged features in 46

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 46

This release of Chrome had 0 features deprecated.

Removed features in 46

This release of Chrome had 1 features removed.

Fetch API: Deprecate and remove Request.context

Request.context was implemented in Chrome 44 (https://www.chromestatus.com/feature/4699713102151680), but is removed from the spec as a result of discussion (https://github.com/whatwg/fetch/issues/93). Chrome 45: Added deprecation warning. Chrome 46: Removed. #

This feature was specified in this Spec.

Resources

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

No linked samples