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
This release of Chrome had 21 new features.
This feature allows specifying the worker’s name in an optional constructor argument. This lets you distinguish dedicated workers by name when you have multiple workers with the same URL. Developers can print ‘name’ in the DevTools console which will make it easier to debug workers. When the ‘name’ param is omitted, an empty string is used as the default value. For more information, see the discussion at https://github.com/whatwg/html/issues/2477. #
This feature was specified in this Spec.
AV1 is a next generation codec developed by the Alliance for Open Media. AV1 improves compression efficiency by 30% over the current state-of-the-art video codec, VP9. The AV1 decoder will be added to Chrome Desktop x86 devices (Windows, macOS, Linux, Chrome OS) based on the official bitstream specification. At this time, support is limited to “Main” profile 0 and does not include encoding capabilities. The supported container is ISO-BMFF (MP4). #
This feature was specified in this Spec.
Many resource-fetching elements have support for the `referrerpolicy` attribute, which lets developers provide a keyword to influence the value of the `Referer` HTTP header that accompanies a request. The <link> element has support for this, so it is technically possible to preload a script with a developer-set referrer policy even though the <script> element does not have support for this attribute. This feature adds `referrerpolicy` support to the <script> element. #
This feature was specified in this Spec.
Docs: https://github.com/w3c/webappsec-referrer-policy/issues/96
Samples: https://script-referrerpolicy.glitch.me/
This change deprecates and removes the legacy "item()" accessor method for the array of Gamepads returned by navigator.getGamepads(). This change improves compatibility with Firefox which is so far the only browser to implement GamepadList. #
This feature was specified in this Spec.
Dialogs (e.g. authentication prompts, payments, filepickers) require proper context for users to make decisions. Fullscreen, by definition is immersive, and removes the context that a user needs to make a decision. Therefore, whenever a page causes a dialog to be shown, that page will lose any HTML5 fullscreen that it has entered. #
Docs: https://docs.google.com/document/d/1UhlQmjVk_AJuDLabB__mERqGQ3pKDtoZ-Qi9zudl424
No linked samplesAn intervention is when a user agent does not honor an application request for security, performance, or annoyance reasons. With this change, Chrome will both send the report to your servers using the Report-To HTTP Response header field and surface the report in the ReportingObserver interface.
This feature was specified in this Spec.
Docs: https://groups.google.com/a/chromium.org/forum/#!searchin/blink-dev/sort:relevance/blink-dev/V38Q47CxTIY/vIEsirLTDwAJhttps://groups.google.com/a/chromium.org/forum/#!searchin/blink-dev/sort:relevance/blink-dev/B1oztuLlzxg/tuFtADi0AgAJ
No linked samplesIf a Data Saver user is on a 2G-speed or slower network according to the NetInfo API, Chrome disables scripts and sends an intervention header on every resource request. Users are shown a Lite Mode UI in the omnibox. Users can enable scripts on the page by tapping “Show original” in the omnibox UI. An intervention report is sent when this optimization occurs. #
This feature was specified in this Spec.
Docs: https://wicg.github.io/netinfo/#dfn-effective-connection-typeshttps://developers.google.com/web/updates/2018/09/reportingapihttps://www.w3.org/TR/reporting/#intervention-report
No linked samplesAn optional PostMessageOptions object is being added to the postMessage() function for 6 of the 7 interfaces where it’s supported, specifically, DedicatedWorkerGlobalScope, Worker, ServiceWorker, ServiceWorker, and Window. This gives the function a similar interface on its definitions and allows it to be extended in the future. Since broadcastChannel.postMessage() doesn't take additional arguments (such as transfer) it is not being changed. #
This feature was specified in this Spec.
Docs: https://github.com/w3c/ServiceWorker/pull/1344
Samples: https://gist.github.com/dtapuska/bd92755849991c2fd9b87e1d46691321
This change implements getConfiguration() according to the WebRTC 1.0. Specifically it returns the last configuration applied via setConfiguration(), or if setConfiguration() hasn't been called, the configuration the RTCPeerConnection was constructed with. #
This feature was specified in this Spec.
Docs: https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/getConfiguration
No linked samplesRTCPeerConnection.id provides a string that identifies an RTCPeerConnection. This is useful when a peer connection needs to be referenced outside the JavaScript context, for example, on the server side, or by a logging mechanism. #
This feature was specified in this Spec.
The OS build number (for example, “NJH47F” or “OPM4.171019.021.D1” on Android) has been removed from the user-agent identification (User-Agent header and navigator.userAgent) on Android and on iOS. The iOS change follows Safari's implementation and freezes the build number as "15E148" instead of removing it. This will prevent abuses of that information such as exploit targeting and fingerprinting. It'll also bring Chrome closer in line with RFC 7231 section 5.5.3. #
This feature was specified in this Spec.
The Atomics.wake() method is being renamed Atomics.notify(). This is a low-level function to wake a Worker that has been suspended via Atomics.wait(). This conforms to a specification change made to alleviate confusion created by the similarity of the names wait and wake. #
This feature was specified in this Spec.
Opus is an audio codec already supported by the HTML5 src attribute on <url> elements. This applies to mp4, ogg, and webm containers as well as in webm containers using Media Source Extensions. This change adds support for the Opus codec in the mp4 container to MSE. #
This feature was specified in this Spec.
Docs: https://www.w3.org/TR/mse-byte-stream-format-isobmff/https://chromium-review.googlesource.com/c/chromium/src/+/1178929
Samples: https://googlechrome.github.io/samples/media/opus-in-mp4-for-mse.htmlhttp://storage.googleapis.com/dalecurtis/mse.html?type=mp4_opus&src=bbb-opus.mp4
This change adds the SourceBuffer.changeType() method to improve cross-codec or cross-bytestream transitions during playback with Media Source Extensions. #
This feature was specified in this Spec.
Docs: https://github.com/wicg/media-source/blob/codec-switching/README.mdhttps://services.w3.org/htmldiff?doc1=https%3A%2F%2Fwww.w3.org%2FTR%2Fmedia-source%2F&doc2=https%3A%2F%2Frawgit.com%2FWICG%2Fmedia-source%2Fcodec-switching%2Findex.htmlhttps://services.w3.org/htmldiff?doc1=https%3A%2F%2Frawgit.com%2FW3C%2Fmedia-source%2Fgh-pages%2Findex.html&doc2=https%3A%2F%2Frawgit.com%2FWICG%2Fmedia-source%2Fcodec-switching%2Findex.html
Samples: https://googlechrome.github.io/samples/media/sourcebuffer-changetype.htmlhttps://rawgit.com/wolenetz/shaka-player/mse-codec-switching-demo-using-shaka-player/demo/#asset=https://storage.googleapis.com/shaka-demo-assets/angel-one/dash.mpd;lang=en-US;logtoscreen;debug;build=uncompiled;build=uncompiled
A description property is being added to Symbol.prototype. This provides a more ergonomic way of accessing the description of a Symbol. Previously, the description could be only be accessed indirectly through the Symbol.protoype.toString(). #
This feature was specified in this Spec.
Docs: https://v8.dev/features/symbol-description
No linked samplesTLS 1.3 is an overhaul of the TLS protocol with a simpler, less error-prone design that improves both efficiency and security. The new design reduces the number of round-trips required to establish a connection and removes legacy insecure options, making it easier to securely configure a server. It additionally encrypts more of the handshake and makes the resumption mode more resilient to key compromise. #
This feature was specified in this Spec.
The default style of the <rp> element is changed to "display:none" instead of "display:inline" even if it is not inside the <ruby>element as defined in HTML specification. This behavior is implemented in the UA style sheet, but the web author can override it. Behavior in other browsers: - Edge: display:inline (outside <ruby>), display:none (inside <ruby>) - Firefox: display:none - Safari: display:inline, display:none (inside <ruby>) #
This feature was specified in this Spec.
To avoid confusion on touch feature detection, ontouch* members on window, document, and element are disabled by default on desktop devices (Mac, Windows, Linux, ChromeOS). Note that this is not disabling touches, and usage such as `addEventListener("touchstart", ...)` is not being affected. #
This feature was specified in this Spec.
This updates the behavior of percentage row tracks and gutters in grid containers with indefinite heights. Previously, these were behaving similarly to percentage heights in regular blocks, but the CSS WG has resolved to make them behave the same as for columns, making them symmetric. Percentages are now ignored when computing intrinsic height and resolved afterwards against that height. That way both column and row axes will have symmetric behavior to resolve percentages tracks and gutters. #
This feature was specified in this Spec.
Samples: https://codepen.io/mrego/pen/jpMeKMhttps://codepen.io/mrego/pen/KBgGWz
When receiving a 401 HTTP response during the WebSocket handshake, Chrome will attempt to continue authentication on the same socket. Windows HTTP authentication usually requires a single connection to be reused for authentication to succeed. Until now, Chrome has always closed the connection on a 401 status response, so Windows authentication has not worked. Windows authentication support is mostly useful in enterprise environments where single-sign-on is used. #
This feature was specified in this Spec.
WebUSB is enabled inside dedicated worker contexts. This allows developers to perform heavy I/O and processing of data from a USB device on a separate thread to reduce the performance impact on the main thread. #
This feature was specified in this Spec.
Docs: https://github.com/odejesush/webusb-on-workers/blob/master/EXPLAINER.mdhttps://docs.google.com/document/d/16T3rhUtYg3GBGotj_pPUXmGmYbf15qdYNEYf4LhKAhM/
Samples: https://github.com/odejesush/weblight/tree/dedicated-workerhttps://github.com/odejesush/webusb-wasm-libgphoto2/tree/worker-implementation
This release of Chrome had 3 new origin trials.
The Barcode Detection API is a subset of the Shape Detection API which provides the ability to detect and decode barcodes in an image provided by script. The image may come from any type of image buffer source such as an <image>, <video> or <canvas> tag. Some native platforms include built-in libraries for performing text detection and optical character recognition (OCR) in images. The availability of these libraries means that developers do not need to include a large third party library. #
This feature was specified in this Spec.
Docs: https://web.dev/shape-detection/https://docs.google.com/document/d/1QeCDBOoxkElAB0x7ZpM3VN3TQjS1ub1mejevd2Ik1gQ/edit
Samples: https://paul.kinlan.me/barcode-detection/https://web.dev/shape-detection/#barcodedetector
RTCPeerConnection.id provides a string that identifies an RTCPeerConnection. This is useful when a peer connection needs to be referenced outside the JavaScript context, for example, on the server side, or by a logging mechanism. #
This feature was specified in this Spec.
The WebAssembly Threads feature allows multiple WebAssembly instances in separate Web Workers to share a single WebAssembly.Memory object. As with SharedArrayBuffers in JavaScript, this allows very fast communication between the Workers. This can be used to offload computation to another thread to keep the main thread and its UI responsive. #
This feature was specified in this Spec.
Docs: https://github.com/WebAssembly/threads
No linked samplesThis release of Chrome had 1 are available behind a flag.
Add these new values to existing CSS properties: 'float: inline-start', 'float: inline-end', 'clear: inline-start', 'clear: inline-end', 'resize: block', 'resize: inline'. These flow-relative directional keywords resolve to a physical value depending on the writing mode or direction of the element or its containing block. #
This feature was specified in this Spec.
Docs: https://developer.mozilla.org/docs/Web/CSS/CSS_logical_properties_and_values
No linked samplesTo 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.
This release of Chrome had 0 features deprecated.
This release of Chrome had 3 features removed.
AppCache is now removed from insecure contexts. AppCache is a powerful feature that allows offline and persistent access to an origin, which is a powerful privilege escalation for an XSS. This will remove that attack vector by only allowing it over HTTPS. This feature was deprecated in Chrome 67. #
Docs: https://www.chromium.org/Home/chromium-security/deprecating-powerful-features-on-insecure-originshttps://w3c.github.io/webappsec-secure-contexts/
No linked samplesDeprecate and remove HTMLFrameSetElement's anonymous getter which is non-standard. #
This feature was specified in this Spec.
Samples: https://software.hixie.ch/utilities/js/live-dom-viewer/saved/4928
Token binding allows servers to cryptographically bind bearer tokens (such as cookies) to the TLS layer, to prevent attacks where an attacker exports a bearer token from the user's machine to present to a web service and impersonate the user. #
This feature was specified in this Spec.