Chrome Platform Status - Sampleshttp://www.chromestatus.com/samples2018-11-05T10:18:57ZIntervention: Passive Touch Event Listeners During Fling2017-06-14T18:28:56ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5707400183021568/Passive Event Listeners is a way to improve the scroll performance by unblocking scrolling on touch and wheel event listeners, so that scrolling happens immediately while the events are processed by javascript. alexclarke@ proposed that we should treat all the touchstart and first touchmove event listeners as passive while there’s an active fling animation.Intervention: Throttle expensive background timers2017-06-14T18:29:11ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/6172836527865856/As an intervention we want to limit how much CPU a background page is allowed to use and to throttle timer queues when this limit is violated. Current target is that background page CPU load level should be under 1%. Intervention: Throttle timers in out-of-view frames2017-06-14T18:28:55ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5701844080787456/As an intervention we want to limit the rate at which timers in out-of-view, cross-origin frames are able to fire. Until very recently it wasn't possible for script authors to easily determine whether their content was visible to the user or not. A common pattern therefore is to use a continuous setTimeout() loop for driving animations without considering visibility, which can be very costly for performance.Animation Worklet2018-10-22T13:00:12ZChrome Platform Statustag:www.chromestatus.com,2018-10-22:/feature/5762982487261184/Animation Worklet allows you to write imperative animations that run at the device's native frame rate for jank-free smoothness, make your animations more resilient to main thread jank, and are linked to scroll instead of time. Background Fetch API2018-10-17T09:25:21ZChrome Platform Statustag:www.chromestatus.com,2018-10-17:/feature/5712608971718656/Background Fetch API provides a service worker based download and upload mechanism which is persistent across service worker and browser restarts. The system will provide a developer-controllable interface to schedule, query, pause, and cancel background downloads and uploads. After a scheduled fetch completes, the system will notify the developer of the outcome of the operation. In-progress fetches will be visible to users in a notification. lowLatency Canvas Contexts2018-10-24T15:09:59ZChrome Platform Statustag:www.chromestatus.com,2018-10-24:/feature/6360971442388992/A low-latency option is being added for canvas.getContext(). This is done to provide an alternative to the now deprecated NaCl/PPAPI solution which used native OpenGL rendering. The new solution uses either 2d or webgl rendering. For example: `let context_type = '2d’; // Or 'webgl' canvas.getContext(context_type, {lowLatency: true});`Shape Detection API2018-09-07T17:32:56ZChrome Platform Statustag:www.chromestatus.com,2018-09-07:/feature/4757990523535360/Photos and images constitute the largest chunk of the Web, and many include recognisable features, such as human faces, text, or QR codes. Detecting these features is computationally expensive, but, particularly on mobile devices, hardware manufacturers have long been supporting these features. This API allows accessing hardware-accelerated detectors where available. This is expected to be in origin trials in Chrome 70.Cookie Store API2018-09-01T09:17:10ZChrome Platform Statustag:www.chromestatus.com,2018-09-01:/feature/5658847691669504/The Cookie Store API exposes HTTP cookies to service workers and offers an asynchronous alternative to document.cookie.EME Extension: HDCP Policy Check2018-08-03T11:59:49ZChrome Platform Statustag:www.chromestatus.com,2018-08-03:/feature/5652917147140096/This feature provides applications the ability to query whether a certain HDCP policy can be enforced so that playback can be started at the optimum resolution for the best user experience.Foreign Fetch2018-03-28T21:22:22ZChrome Platform Statustag:www.chromestatus.com,2018-03-28:/feature/5684130679357440/Foreign Fetch is a proposal to enable third party Service Workers.WebVR v1.12018-04-24T20:17:57ZChrome Platform Statustag:www.chromestatus.com,2018-04-24:/feature/4532810371039232/Adds input and output support for Virtual Reality head mounted displays, such as the Oculus Rift and Google Cardboard. This API will eventually be replaced by the WebXR Device API (https://www.chromestatus.com/feature/5680169905815552). The WebVR Origin Trial will end on July 24, 2018.COLR/CPAL font support2018-09-26T17:22:47ZChrome Platform Statustag:www.chromestatus.com,2018-09-26:/feature/5897235770376192/COLR/CPAL fonts are one type of OpenType color fonts. These fonts compose layers of vector outline glyphs and color palette information into the final colored glyph. With this change, Chrome will support 3 color font formats cross-platform, the other two being CBDT/CBLC and SBIX. Because they are vector based, COLR/CPAL fonts provide for faster downloads and require less storage. An example of a COLR/CPAL font is the Twemoji color font (https://github.com/mozilla/twemoji-colr).CSS gradient color stop double-position syntax2018-10-15T12:48:36ZChrome Platform Statustag:www.chromestatus.com,2018-10-15:/feature/5712111258828800/Add support for CSS Image Values 4 color stop position syntax. Currently, repeating colors require explicit positions, for example: linear-gradient(45deg, black 25%, black 50%, white 50%, white 75%) To simplify the definition of solid color bands, css-images-4 allows specifying up to two positions for a color: linear-gradient(45deg, black 25% 50%, white 50% 75%)Options dictionary for postMessage methods2018-09-05T16:12:25ZChrome Platform Statustag:www.chromestatus.com,2018-09-05:/feature/6219707585658880/An 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.Picture-in-Picture (PiP)2018-11-05T10:18:57ZChrome Platform Statustag:www.chromestatus.com,2018-11-05:/feature/5729206566649856/The Picture-in-Picture API allows websites to create a floating video window that is always on top of other windows so that users may continue consuming media while they interact with other sites or applications on their device. This change only applies to <video> elements.Support Opus in mp4 (ISO-BMFF) with Media Source Extensions (MSE)2018-09-17T06:13:27ZChrome Platform Statustag:www.chromestatus.com,2018-09-17:/feature/5100845653819392/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.Support codec and container switching with MSE using SourceBuffer.changeType()2018-09-17T07:02:30ZChrome Platform Statustag:www.chromestatus.com,2018-09-17:/feature/5719220952236032/This change adds the SourceBuffer.changeType() method to improve cross-codec or cross-bytestream transitions during playback with Media Source Extensions. Update behavior of CSS Grid Layout percentage row tracks and gutters2018-09-05T18:15:20ZChrome Platform Statustag:www.chromestatus.com,2018-09-05:/feature/6708326821789696/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.WebUSB on Dedicated Workers2018-09-04T18:01:22ZChrome Platform Statustag:www.chromestatus.com,2018-09-04:/feature/5928209916887040/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.CSS Scroll Snap Points2018-07-19T16:22:19ZChrome Platform Statustag:www.chromestatus.com,2018-07-19:/feature/5721832506261504/The CSS scroll snap specification introduces snap points as a way to "enforce the scroll offsets that a scroll container's visual viewport may end at after a scrolling operation has completed". Scroll snapping applies to both user scroll operations such as touch, wheel scrolling, or scrollbar dragging, and programmatic scroll operations such as Element.scrollTo(). This improves the user experience by allowing scrollable zones to easily stop at predefined points. CSS conic-gradient2018-07-19T16:21:37ZChrome Platform Statustag:www.chromestatus.com,2018-07-19:/feature/5706155347148800/Support was added for CSS conic (angular/sweep) gradients. Conic gradients allow color transitions around a center rather than radiating from it. This allows, for example, a web developer to create a hue wheel using only two CSS properties.OffscreenCanvas2018-07-19T16:10:33ZChrome Platform Statustag:www.chromestatus.com,2018-07-19:/feature/5681560598609920/OffscreenCanvas is a new interface that allows canvas rendering contexts (2D and WebGL) to be used in Workers. Making canvas rendering contexts available to workers increases parallelism in web applications, leading to improved performance on multi-core systems. As part of the required tooling for this to work, this also launches DedicatedWorker.requestAnimationFrame(), allowing animation-like events to be triggered the same on dedicated workers as they are in Window.Stylesheets activated after the body is started do not block paint2018-11-05T09:26:57ZChrome Platform Statustag:www.chromestatus.com,2018-11-05:/feature/5696805480169472/External stylesheets in the body of the document or that get activated after the body has started to be parsed will no longer block paint but they will pause the parser. The end result is that any DOM content before the body stylesheet will continue to paint but content after the stylesheet will not appear until after the stylesheet has loaded.Three new network quality client hints2018-07-19T15:55:24ZChrome Platform Statustag:www.chromestatus.com,2018-07-19:/feature/5407907378102272/Support for the “rtt”, “downlink”, and “ect” client hint values and HTTP request headers have been added to Chrome to convey Chrome’s network connection speed to servers. These network quality hints provide the same values as existing Network Information APIs navigator.connection.rtt, navigator.connection.downlink, and navigator.connection.effectiveType.Fetch API: Credentials mode default to "same-origin"2018-07-31T19:33:55ZChrome Platform Statustag:www.chromestatus.com,2018-07-31:/feature/4539473312350208/A Request object’s credentials mode defaults to “omit” in Chrome right now. A spec change recently changed the default to “same-origin”, thus providing credentials to same-origin requests instead of omitting them.Keyboard Lock2018-05-24T17:36:47ZChrome Platform Statustag:www.chromestatus.com,2018-05-24:/feature/5642959835889664/While in fullscreen, this API allows apps to receive keys that are normally handled by the system or the browser like Cmd/Alt-Tab, or Esc. Users can escape keyboard lock (and fullscreen) by holding the Esc key for two seconds.Make PointerEvent.fromElement and PointerEvent.toElement null2018-04-25T17:29:50ZChrome Platform Statustag:www.chromestatus.com,2018-04-25:/feature/5836424855158784/PointerEvents won't report non-standard and inconsistent values for fromElement and toElement fields. Instead, they will always report null (like Edge and Firefox). In MouseEvents (from which PointerEvents inherit these fields), .fromElement and .toElement are non-standard, and have been inconsistent among major browsers for many years. Moreover, we have standard and consistent alternatives already: .target and .relatedTarget. Recently the PointerEvents spec has been updated accordingly. Payment Handler API2018-05-31T06:33:17ZChrome Platform Statustag:www.chromestatus.com,2018-05-31:/feature/5160285237149696/The API helps to develop new payment apps in web standard ways (e.g. service worker). If using them, payment app providers can provide simplified payment methods and user experiences.Unified touch adjustment2018-05-22T15:05:35ZChrome Platform Statustag:www.chromestatus.com,2018-05-22:/feature/4895751150764032/Touch adjustment will adjust the TouchEvent and the corresponding PointerEvent target to a best target within the touch area. TouchEvent coordinates will not be changed.Unprefix CSS "grab" and "grabbing" Values for Cursor Property2018-05-08T12:11:09ZChrome Platform Statustag:www.chromestatus.com,2018-05-08:/feature/5575087101050880/These values change the mouse cursor to an open hand or closed hand to indicate that something can be grabbed or is currently grabbed. Prefixed versions of these properties have been supported since Chrome 1, with Windows support added in Chrome 22. With this change Chrome will support the standard, unprefixed versions of these values.User activation through long-press gesture2018-05-02T18:02:43ZChrome Platform Statustag:www.chromestatus.com,2018-05-02:/feature/5726389672083456/The long-press gesture should be considered a user activation because it indicates user's interaction with the page. This would allow a web app to call restricted APIs like navigator.vibrate() on long-press to match native behavior.<foreignObject> will be a stacking context2018-04-05T19:00:03ZChrome Platform Statustag:www.chromestatus.com,2018-04-05:/feature/5663772639232000/SVG2 specifies that <foreignObject> to be a stacking context (*). Previously, Chrome did not follow the SVG2 spec. Making <foreignObject> a stacking context allows developers to place HTML content underneath a <foreignObject> without confusion. For example, it wouldn't make much sense to place content at z-index:1 above the containing SVG. Gecko and Edge already implement this behavior. (*) https://svgwg.org/svg2-draft/single-page.html#render-EstablishingStackingContex Accept-CH-Lifetime support for requesting client hints2018-04-16T20:53:41ZChrome Platform Statustag:www.chromestatus.com,2018-04-16:/feature/5713139295322112/Client Hints enables user agents to provide device-specific preferences in the HTTP request headers. Accept-CH-Lifetime adds a client hint that allow origins to persist their opt-in policy for a specified period so they can receive client hints on main frame requests. Additionally, on the first page load, this feature provides hints for all subresources of the page. This is expected to be enabled by default in Chrome 67.Cross-Origin Read Blocking (CORB)2018-06-01T06:57:15ZChrome Platform Statustag:www.chromestatus.com,2018-06-01:/feature/5629709824032768/Cross-Origin Read Blocking (CORB) is an algorithm that can identify and block dubious cross-origin resource loads in web browsers before they reach the web page. CORB reduces the risk of leaking sensitive data by keeping it further from cross-origin web pages. In most browsers, it keeps such data out of untrusted script execution contexts. In browsers with Site Isolation, it can keep such data out of untrusted renderer processes entirely, helping even against side channel attacks like Spectre.Motion sensors APIs based on Generic Sensor API2018-04-13T19:36:51ZChrome Platform Statustag:www.chromestatus.com,2018-04-13:/feature/5698781827825664/Motion sensors extends the Generic Sensor API to expose a set of low-level and fusion sensors. This feature includes JS interfaces representing accelerometers, linear acceleration sensors, gyroscopes, absolute orientation sensors and relative orientation sensors.Streams API: TransformStream2018-04-02T15:10:37ZChrome Platform Statustag:www.chromestatus.com,2018-04-02:/feature/5466425791610880/TransformStream is part of the Streams API for creating, composing, and consuming streams of data. It enables transforming data in stream form. It is typically used in a pipe between a ReadableStream and a WritableStream.Array.prototype.values2018-02-09T23:09:16ZChrome Platform Statustag:www.chromestatus.com,2018-02-09:/feature/4755812090118144/The values() method returns a new Array Iterator object that contains the values for each index in the array. varAsynchronous Clipboard API2018-03-15T18:30:00ZChrome Platform Statustag:www.chromestatus.com,2018-03-15:/feature/5861289330999296/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. Fetch API: AbortSignal and AbortController2018-03-01T08:38:22ZChrome Platform Statustag:www.chromestatus.com,2018-03-01:/feature/5631483679080448/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.Link rel=modulepreload2018-02-16T06:48:38ZChrome Platform Statustag:www.chromestatus.com,2018-02-16:/feature/5762805915451392/The new "modulepreload" rel value in <link> element and Link: header provides a way to initiate early (and high-priority) loading of module scripts.Make <tr> with transform be a containing block.2018-02-05T21:32:37ZChrome Platform Statustag:www.chromestatus.com,2018-02-05:/feature/5514792538210304/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. Media Capabilities: decoding2018-03-01T16:37:30ZChrome Platform Statustag:www.chromestatus.com,2018-03-01:/feature/5869632707624960/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.Optional catch binding2018-01-25T18:40:12ZChrome Platform Statustag:www.chromestatus.com,2018-01-25:/feature/5810795665424384/This proposal allows the `catch` clause to exist without a parameter.[WebAudio] AudioWorklet2018-03-06T22:26:22ZChrome Platform Statustag:www.chromestatus.com,2018-03-06:/feature/4588498229133312/The AudioWorklet object allows developers to supply JavaScript to process audio on the rendering thread, supporting custom AudioNodes. This processing mechanism ensures the synchronous execution of the script code with other built-in AudioNodes in the audio graph. This new feature is designed to replace ScriptProcessorNode. ScriptProcessorNode will be deprecated once AudioWorklet is shipped.inputmode2018-06-14T17:21:31ZChrome Platform Statustag:www.chromestatus.com,2018-06-14:/feature/6225984592281600/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. CSS Paint API (Houdini)2018-03-28T19:30:24ZChrome Platform Statustag:www.chromestatus.com,2018-03-28:/feature/5685444318593024/CSS Paint API defines a new callback which is designed to allow developers to write code which produces a CSS <image> during the paint phase of the rendering engine. Feature Policy: control Synchronous XMLHttpRequest2018-08-15T20:57:46ZChrome Platform Statustag:www.chromestatus.com,2018-08-15:/feature/5154875084111872/Allows developers to selectively enable and disable use of Synchronous XMLHttpRequest requests through the feature policy HTTP header or the <iframe> "allow" attribute. The identifier for the feature in policies is "sync-xhr". By default, synchronous XHR is allowed in all frames. If developers wish to disable this on any page, they can include a header like: Feature-Policy: sync-xhr 'none' Or embed content in an frame with sync XHR disabled like: <iframe src="..." allow="sync-xhr 'none'">display: contents2018-01-12T20:15:24ZChrome Platform Statustag:www.chromestatus.com,2018-01-12:/feature/5663606012116992/"display: contents" allows you to control the box generation of an element. The element with "display: contents" won't generate any box, but its children and pseudo-elements will still do it as normal. It's like the element has been replaced by its children and pseudo-elements.Animation for offset-path CSS property2017-11-27T03:11:24ZChrome Platform Statustag:www.chromestatus.com,2017-11-27:/feature/5198375053950976/Authors using CSS Motion Path can now animate the path that an element moves along by animating the offset-path property CSS4 text-decoration-skip-ink2017-12-07T18:23:32ZChrome Platform Statustag:www.chromestatus.com,2017-12-07:/feature/5631679087509504/CSS Text Decoration 4: property controls how overlines and underlines are drawn when they cross over a glyph. With the initial, default value "auto" decoration lines skip over where glyphs are drawn: interrupt the decoration line to let the shape of the text show through where the text decoration would otherwise cross over a glyph. The UA must also skip a small distance to either side of the glyph outline. To disable this behavior, use `text-decoration-skip-ink: none`Fractional coordinates in PointerEvents of type mouse2017-11-09T01:41:33ZChrome Platform Statustag:www.chromestatus.com,2017-11-09:/feature/5117956774166528/Make the coordinates in PointerEvents of pointerType=mouse fractional, in order to include the full precision provided by the underlying platform.Image Decode API: img.decode()2018-07-13T16:53:54ZChrome Platform Statustag:www.chromestatus.com,2018-07-13:/feature/5637156160667648/This change allows web developers to request to decode an img element. The call to a new HTML <img> element’s decode() function returns a promise, which, when fulfilled, ensures that the image can be appended to the DOM without causing a decoding delay on the next frame.Media preload defaults to metadata2017-10-30T16:42:26ZChrome Platform Statustag:www.chromestatus.com,2017-10-30:/feature/5682169347309568/Set the default preload value for video and audio elements to “metadata”. Note that the preload attribute's hint is still ignored when a MediaSource is attached to the media element.Notifications to be displayed in the platform's Notification Center2017-11-21T16:15:57ZChrome Platform Statustag:www.chromestatus.com,2017-11-21:/feature/5689068222414848/Most platforms ship with a notification center of their own - on mobile devices this may be more prominent than on desktops, but they do exist. We're in progress of moving notifications shown by Chrome to be included in those centers as well. - Android (shipped in Chrome 42) - Mac OS X (shipped in 59) - Linux (planned to ship in 64) - Windows (being prototyped) Other browsers already use native notification centers where available.Resize Observer2017-12-14T01:44:59ZChrome Platform Statustag:www.chromestatus.com,2017-12-14:/feature/5705346022637568/The Resize Observer API can be used to observe changes to size of Element's content rect.Throw NotSupportedError when media playbackRate is unsupported2017-11-22T08:07:22ZChrome Platform Statustag:www.chromestatus.com,2017-11-22:/feature/5750156230131712/Throw a NotSupportedError DOM exception when a media element’s playbackRate is set to an unsupported value.install event for Web App Manifest2018-10-04T04:38:59ZChrome Platform Statustag:www.chromestatus.com,2018-10-04:/feature/5674968658477056/An event handler to tell a site that it has been installed or added to home screen.CSS 'q' length unit2017-10-17T17:37:50ZChrome Platform Statustag:www.chromestatus.com,2017-10-17:/feature/5983903483428864/support 'q' absolute length unit. 1q is equivalent to 1/40th of 1cm.CSS overscroll-behavior2017-11-07T20:42:34ZChrome Platform Statustag:www.chromestatus.com,2017-11-07:/feature/5734614437986304/CSS `overscroll-behavior` allows developers to decide the browser's behavior once a scroller has reached its full extent. The unused delta can be propagated to the parent causing scroll chaining, create a glow/bounce effect without chaining, or just get consumed silently. This would be a standardization of "-ms-scroll-chaining" with some modification.API for customizing HTMLMediaElement.seekable for Media Source live streams2017-09-12T13:07:19ZChrome Platform Statustag:www.chromestatus.com,2017-09-12:/feature/5671401352593408/This API lets MediaSource apps more effectively customize the HTMLMediaElement.seekable range logic by providing (or removing) a single seekable range that is union'ed with the current buffered ranges to result in a single seekable range which fits both, when media duration is infinite.Accept 8 (#RRGGBBAA) and 4 (#RGBA) value hex colors2017-07-17T23:50:51ZChrome Platform Statustag:www.chromestatus.com,2017-07-17:/feature/5685348285808640/Update the CSS color parser to support 8/4-digit hex color. Legacy HTML attribute color parsing, per the "rules for parsing a legacy colour value" of the HTML micro syntax (http://bit.ly/1WF2Yre), will not be changed (see http://bit.ly/1UEDbiO), nor will the CSS hashless color quirk (https://quirks.spec.whatwg.org/#the-hashless-hex-color-quirk).Dispatch mouse transition events after layout2017-08-29T18:47:58ZChrome Platform Statustag:www.chromestatus.com,2017-08-29:/feature/5687758374830080/Mouse events are not sent when the nodes under the mouse change during layout. This then represents an incorrect state in that the hover state of where the mouse actually doesn't match the current hover state of the document. To fix a variety of issues we will start dispatching mouse transitional events and update the hover state shortly after layout has been executed. This will match Firefox behavior.Feature Policy: Fullscreen2018-07-10T17:21:30ZChrome Platform Statustag:www.chromestatus.com,2018-07-10:/feature/5094837900541952/Allow developers to selectively enable and disable use of Fullscreen through the Feature-Policy HTTP header or the <iframe> "allow" attribute. The identifier for the feature in policies is "fullscreen". By default, fullscreen is allowed in all top-level documents, and in same-origin frames. This is similar to the existing <iframe> "allowfullscreen" attribute, but allows control over which origins will be allowed to use the feature when hosted inside of the frame. Implement visibility:collapse for table rows and row-groups2017-08-15T00:31:25ZChrome Platform Statustag:www.chromestatus.com,2017-08-15:/feature/5684392546533376/visibility:collapse is supposed to hide table rows while preserving their contribution to column widths. Right now blink treats visibility:collapse as visibility:hidden, which merely skips painting the rows, leaving blank space in their place instead of allowing their space to be used for other content.Media Capture from HTML Media Element (<video>/<audio>)2017-11-17T15:43:22ZChrome Platform Statustag:www.chromestatus.com,2017-11-17:/feature/5522768674160640/“Media Capture from DOM Elements” document by W3C defines captureStream() method that allows the capture of a <video>/<audio> element in the form of a MediaStream. We want to implement the necessary Blink and Chromium sections that would create this stream by accessing the <video>/<audio> output according to the given play back constraints.Network Information: Network Quality signals2017-08-29T23:49:55ZChrome Platform Statustag:www.chromestatus.com,2017-08-29:/feature/5108786398232576/This API provides network performance information to developers, as perceived by the UA, in a format that’s easy to consume and act upon: UA monitors latency and throughput of recent requests and provides estimates for effective RTT, throughput, and connection type that developers should optimize for - e.g. if the recently observed latency and/or throughput is low, the effective connection type will be mapped to a “low” value like 2G or 3G, regardless of the underlying network technology.OpenType variable font support2017-10-08T02:46:59ZChrome Platform Statustag:www.chromestatus.com,2017-10-08:/feature/4708676673732608/OpenType variable fonts integration in the layout engine affects at least the following aspects: 1) Axis value assignments from font-variation-settings 2) Integration of variable fonts axis parameters into layout operations 3) Font matching for: * Matching based on canonical scalable axes such as width or weight or optical sizing. * Matching named instances 4) Feature resolution of CSS props, feature-settings and variation settings Support FLAC in ISO-BMFF with MSE2017-09-13T16:52:22ZChrome Platform Statustag:www.chromestatus.com,2017-09-13:/feature/5713014258925568/FLAC is a lossless audio coding format, already supported in regular Chrome HTML5 playback. This feature adds support for FLAC in ISO-BMFF to Chrome HTML5 Media Source Extensions (MSE).Clear-Site-Data header2017-09-17T08:20:14ZChrome Platform Statustag:www.chromestatus.com,2017-09-17:/feature/4713262029471744/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.Geometry interfaces2017-09-20T18:23:13ZChrome Platform Statustag:www.chromestatus.com,2017-09-20:/feature/6015941766807552/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. HTMLIFrameElement.allowpaymentrequest2018-01-03T23:25:43ZChrome Platform Statustag:www.chromestatus.com,2018-01-03:/feature/5511036157296640/Returns a Boolean indicating whether the Payment Request API may be invoked on a cross-origin iframe.JavaScript modules: <script type=module>2018-02-25T03:06:31ZChrome Platform Statustag:www.chromestatus.com,2018-02-25:/feature/5365692190687232/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.MediaStream Image Capture - getPhotoSettings() method2018-01-04T01:46:03ZChrome Platform Statustag:www.chromestatus.com,2018-01-04:/feature/5104908176982016/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 Network Information2018-01-12T12:05:43ZChrome Platform Statustag:www.chromestatus.com,2018-01-12:/feature/6338383617982464/The Network Information API enables web applications to access the underlying connection information of the device. PaymentRequest2018-07-17T15:29:02ZChrome Platform Statustag:www.chromestatus.com,2018-07-17:/feature/5639348045217792/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. WebUSB API2017-12-12T23:56:05ZChrome Platform Statustag:www.chromestatus.com,2017-12-12:/feature/5651917954875392/The web platform API to support programming USB devices.CSS font-display2017-12-04T10:03:03ZChrome Platform Statustag:www.chromestatus.com,2017-12-04:/feature/4799947908055040/A new @font-face descriptor and a corresponding property for controlling how a downloadable font renders before it is fully loaded.CSS4 :focus-within pseudo-class2017-12-05T17:44:31ZChrome Platform Statustag:www.chromestatus.com,2017-12-05:/feature/5363834508279808/The :focus-within pseudo-class applies to elements for which the :focus pseudo class applies. An element also matches :focus-within if one of its descendants in the flat tree (including non-element nodes, such as text nodes) matches the conditions for matching :focus.Constructor for DataTransfer2018-02-06T16:09:58ZChrome Platform Statustag:www.chromestatus.com,2018-02-06:/feature/5146128253190144/The new asynchronous clipboard API makes use of DataTransfer objects and has a need to be able to construct new ones. For example (with new clipboard api): var data = new DataTransfer(); data.items.add("\(°o°)/", "text/plain"); navigator.clipboard.write(data).then(function() { console.log(“Copied to clipboard successfully! ᕕ( ᐛ )ᕗ”); }, function() { console.error(“Unable to write to clipboard. (╯ಠ_ಠ)╯︵ ┻━┻”); }); Feature Policy2018-07-20T17:29:29ZChrome Platform Statustag:www.chromestatus.com,2018-07-20:/feature/5694225681219584/Allow site authors to selectively enable and disable use of various browser features and APIs.New VP9 codec string and Profile 2 support2017-11-24T10:01:16ZChrome Platform Statustag:www.chromestatus.com,2017-11-24:/feature/6230726177456128/VP9 is an open and royalty-free video codec that has been supported in Chromium since 2013. This update adds a new string format for describing the encoding properties, such as the profile, level, etc. Such properties are common in video codecs but are not exposed in the current VP9 string format. In addition, this update includes using the new format to advertise support for VP9 Profile 2. The string format is accepted by media-related APIsObject rest/spread properties2018-10-13T04:32:39ZChrome Platform Statustag:www.chromestatus.com,2018-10-13:/feature/5657004848709632/This introduces rest properties for object destructuring assignment and spread properties for object literals.Shared Array Buffers, Atomics and Futex APIs2018-05-09T14:23:58ZChrome Platform Statustag:www.chromestatus.com,2018-05-09:/feature/4570991992766464/Adds a new JavaScript type SharedArrayBuffer. SharedArrayBuffers can be sent to Workers and without neutering the sent buffer. The underlying buffer will be shared between the workers. The Atomic API provides atomic loads and stores and Read/Modify/Write accesses to SharedArrayBuffers. The Atomic.wait provides the ability for a worker to wait for another worker to signal it, without having to spinlock.Support VP9 in ISO-BMFF2017-06-30T00:16:22ZChrome Platform Statustag:www.chromestatus.com,2017-06-30:/feature/5762080762232832/VP9 is an open and royalty free video coding format. ISO-BMFF (MP4) is an industry standard container and is broadly accepted and used in the industry. Chrome already supports the VP9 codec (currently only in WebM container) and the ISO-BMFF container. This enables them to be used together.Animated PNG2017-07-03T05:00:32ZChrome Platform Statustag:www.chromestatus.com,2017-07-03:/feature/6691520493125632/Support for animated PNG imagesDeviceOrientationEvent and DeviceMotionEvent constructors2017-09-17T10:33:26ZChrome Platform Statustag:www.chromestatus.com,2017-09-17:/feature/4659236399218688/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.Headless mode2018-01-19T00:50:45ZChrome Platform Statustag:www.chromestatus.com,2018-01-19:/feature/5678767817097216/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.orgMediaError.message2017-09-01T20:09:04ZChrome Platform Statustag:www.chromestatus.com,2017-09-01:/feature/4996058069336064/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.MediaStream Image Capture2017-08-17T11:36:06ZChrome Platform Statustag:www.chromestatus.com,2017-08-17:/feature/4843864737185792/Enable taking pictures from an Image/Video Capture Device. Presentation API: Receiver API2018-05-03T21:44:41ZChrome Platform Statustag:www.chromestatus.com,2018-05-03:/feature/5414209298890752/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.Streams API: Piping2017-08-07T22:07:27ZChrome Platform Statustag:www.chromestatus.com,2017-08-07:/feature/6067348976959488/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.Streams API: WritableStream2018-03-01T13:22:33ZChrome Platform Statustag:www.chromestatus.com,2018-03-01:/feature/5928498656968704/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.rAF Aligned Touch Input2017-06-21T16:58:19ZChrome Platform Statustag:www.chromestatus.com,2017-06-21:/feature/4892570664566784/Align touchmove events so that they occur close to requestAnimationFrame() as possible.'allow-top-navigation-by-user-activation' <iframe sandbox> keyword2018-03-16T04:29:59ZChrome Platform Statustag:www.chromestatus.com,2018-03-16:/feature/5629582019395584/Adds a new keyword named "allow-top-navigation-by-user-activation" for iframe sandbox, which requires a user activation (or gesture) being processed to trigger a top-level navigation. This change would enable more use cases of sandboxing untrusted third-party contents (eg., ads) by allowing top navigation while blocking malicious auto-redirecting, and thus help building a safer internet (eg., a safer ads ecosystem in which all ads could be sandboxed to prevent unexpected malicious behaviors likeIndexedDB 2.02018-01-30T20:06:47ZChrome Platform Statustag:www.chromestatus.com,2018-01-30:/feature/5812621622116352/IndexedDB 2.0 introduces a few APIs that optimize some database access patterns and improve programming ergonomics. Chrome will support the full standard by shipping the following features: support for binary keys, object store and index renaming, getKey() on IDBObjectStore, getPrimaryKey() on IDBIndex.Ship PointerEvent.tangentialPressure and PointerEvent.twist2018-05-02T18:12:38ZChrome Platform Statustag:www.chromestatus.com,2018-05-02:/feature/5765742146355200/Adding support of tangentialPressure and twist attributes in the pointer events API on Mac. They are supported by some stylus devices and are already used in numerous painting apps. Unprefix CSS 'line-break' property2017-06-28T06:53:17ZChrome Platform Statustag:www.chromestatus.com,2017-06-28:/feature/5137645088800768/The CSS 'line-break' property specifies the strictness of line-breaking rules. The exact definition of the strictness depends on languages. Our implementation relies on ICU (see doc link) which supports East Asian writing systems and Finnish.color-gamut media query2017-09-20T18:24:54ZChrome Platform Statustag:www.chromestatus.com,2017-09-20:/feature/5354410980933632/Expose the approximate range of colors supported by the user agent and the output device in a CSS Media Query.CSS Grid Layout2017-10-17T19:29:04ZChrome Platform Statustag:www.chromestatus.com,2017-10-17:/feature/4589636412243968/A two-dimensional grid-based layout system, optimized for user interface design.CSS logical height and width2018-10-11T16:22:20ZChrome Platform Statustag:www.chromestatus.com,2018-10-11:/feature/6325742262550528/Implement {inline-,block-}size and {min-,max-}{inline-,block-}size, which are introduced by CSS Logical Properties. The related properties are: inline-size, block-size , min-inline-size,min-block-size, max-inline-size, max-block-size Provide the author with the ability to control layout through logical, rather than physical, direction and dimension mappings.Child-indexed pseudo-classes matching elements without a parent2017-06-14T18:28:56ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5705677431373824/Change how the child-indexed pseudo-class selectors are matched so they also match elements without a parent. This is a change in the spec from selectors-3 to selectors-4. The reasoning for this is explained in the spec. WebAssembly2018-03-26T00:56:19ZChrome Platform Statustag:www.chromestatus.com,2018-03-26:/feature/5453022515691520/WebAssembly, or wasm, is an efficient low-level programming language for in-browser client-side execution. It is designed to support C/C++ and similar low-level languages. Future versions may be enhanced to better support other languages. WebAssembly is intended to be small, fast to decode, fast to compile, and fast to execute. CSS border-image-repeat: space support2017-06-14T18:28:41ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5520773385027584/Previously, "space" was implemented the same as "repeat".CSS position: sticky2017-11-22T18:03:34ZChrome Platform Statustag:www.chromestatus.com,2017-11-22:/feature/6190250464378880/position: sticky is a new way to position elements and is conceptually similar to position: fixed. The difference is that a stickily positioned element behaves like position: relative within its parent, until a given offset threshold is met.CSS: New names for motion path properties2017-06-14T18:29:13ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/6390764217040896/Motion paths allow authors to animate any graphical object along an author-specified path. The CSS properties are being named: offset-path offset-distance offset-rotate. From Chrome 55, offset-path and offset-distance are supported. offset-rotate will become available in Chrome 56. FLAC codec support for <audio> and WebAudio.2017-06-14T18:29:02ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5744731434778624/Enables support for the FLAC audio codec within the FLAC and Ogg containers for the HTML5 <audio> tag and WebAudio's decodeAudioData() API.Fractional coordinates in MouseEvents2017-06-14T18:29:11ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/6169687914184704/Update the types of all coordinates in MouseEvents from long to double to make the coordinates more precise for PointerEvents on high-DPI devices. Note, however, that the only browser-fired events that will change are PointerEvents. MouseEvents will continue to have integral coordinates for backward compatibility.KeyboardEvent.isComposing2017-06-14T18:29:16ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/6598894867709952/Allows an app to determine if there is an active composition outstanding for keyboard events being generated without monitoring composition events directly. Notification image2017-06-14T18:28:37ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5190797599178752/Allows developers to show a large image as part of the content of a notification (whereas the existing `icon` and `badge` properties tend to be icons and are rendered smaller). Screenshot: http://i.imgur.com/fNf97ro.pngThrottle the rendering pipeline during page load when there's pending sheets. 2017-06-14T18:28:45ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5640551701413888/Delay running the rendering pipeline (style, layout, paint) and executing requestAnimationFrame callbacks inside iframes until pending stylesheets have finished loading.Web Bluetooth API2018-08-23T20:56:52ZChrome Platform Statustag:www.chromestatus.com,2018-08-23:/feature/5264933985976320/Allows web sites to communicate over GATT with nearby user-selected Bluetooth devices in a secure and privacy-preserving way. Status in Chrome is more complicated than can be captured by this form. In Chrome 56, this shipped on Android, ChromeOS, and macOS. In Chrome 70 it is shipping on Windows 10. For earlier versions of Windows and Linux, it is still behind a flag (chrome://flags/#enable-experimental-web-platform-features).WebGL 22017-06-14T18:29:17ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/6694359164518400/OpenGL ES 3.0 level rendering capabilities via the <canvas> element.Async/await functions2017-07-19T22:00:35ZChrome Platform Statustag:www.chromestatus.com,2017-07-19:/feature/5643236399906816/Async functions make it easy to write code which needs to "block" on certain asynchronous events JavaScript. Async/await does this by providing a simpler and more ergonomic way to use Promises. To block on a value, use the 'await' keyword. Async/await can be implemented based on a desugaring to generators, as described in the following design doc: https://docs.google.com/document/d/1K38ct2dsxG_9OfmgErvFld4MPDC4Wkr8tPuqmSWu_3Y/edit?usp=sharingCSS hyphens property2017-06-14T18:28:45ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5642121184804864/This CSS property controls automatic hyphenations. The automatic hyphenation is strongly demanded as seen in crbug.com/47083, and is already supported by all other major browsers. Blink enables the following values on all platforms: "manual" - the initial value. "none" - disables soft hyphens. and the following value on Android and Mac: "auto" - enables the automatic hyphenation for languages where the underlying operating system has dictionaries.Support dataset property on SVGElement2017-06-14T18:28:59ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5727911176830976/Dataset is supported on HTMLElement. Recently spec was modified to support for SVGElement as well. https://svgwg.org/svg2-draft/types.html#InterfaceSVGElementTouch-action: pan-up pan-down pan-left pan-right CSS properties2017-06-14T18:28:57ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5712439765106688/The touch-action CSS property determines whether touch input may trigger default behavior supplied by user agent. This includes, but is not limited to, behaviors such as panning or zooming. Additional keywords indicating: pan-up, pan-down, pan-left, pan-right have been added to the specification. Unprefixed CSS Clipping Paths2017-06-14T18:29:01ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5742325112242176/The CSS Clipping Path (CSS Masking specification) property without the "webkit" prefix.Object.getOwnPropertyDescriptors()2018-08-29T14:04:25ZChrome Platform Statustag:www.chromestatus.com,2018-08-29:/feature/5666580386021376/Retrieve all own PropertyDescriptors from an object, which could be used by Object.create() or Object.defineProperties().Request fullscreen on orientation change2017-06-14T18:28:50ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5671161102860288/Allow web pages to request fullscreen while an orientation change event handler is running. This will allow pages to go fullscreen when the user turn their device.imageSmoothingQuality attribute for CanvasRenderingContext2D2017-06-14T18:28:30ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4717415682277376/It allows a web developer to choose the quality/performance tradeoff when scaling images. There are 3 options in total: low, medium and high. Force flattening for elements with opacity < 12017-06-14T18:28:50ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5671480339726336/3D-positioned descendants will be flattened by an ancestor that has opacity. Previously it did not, if that ancestor also specified transform-style: preserve-3dNotification badges2018-04-09T18:30:34ZChrome Platform Statustag:www.chromestatus.com,2018-04-09:/feature/5630897160192000/A badge image may be used to represent a notification when there is not enough space to display the notification itself. It may also be displayed inside the notification, but then it should have less visual priority than the notification icon.Raster on composited layer scale change, except if will-change: transform or an accelerated animation is present2017-06-14T18:28:44ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5637351992721408/All content will be re-rastered when its transform scale changes, iff it does not have the will-change: transform CSS property. In other words, `will-change: transform` means "please animate it fast". This only applies to transforms scales that happen via script manipulation, and does not apply to CSS animations. This means your site will likely get better-looking content, but it may also be slower without some simple changes outlined below. Unprefixed CSS Filters2017-06-14T18:28:30ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4711498777624576/CSS Filters without the -webkit- prefix.WebAudio: New lowpass and highpass BiquadFilter implementation2017-06-14T18:28:53ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5687523284090880/The existing lowpass and highpass BiquadFilter implementation has a defect where valid filters cannot be represented. To fix this, the filter formulas were updated. However, the new formulas will cause a change in the output of the filters.-webkit-appearance:none for METER element2017-06-14T18:28:50ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5668635896971264/Web authors had no way to completely disable UA rendering of METER element, and were unable to render them with pure CSS. This feature is to implement the standard appearance:none behavior for METER element as -webkit-appearance:none. -webkit-appearance:none removes UA rendring at all, and renders the content of <meter> element. CSP3: The 'strict-dynamic' source expression.2017-08-09T16:22:16ZChrome Platform Statustag:www.chromestatus.com,2017-08-09:/feature/5633814718054400/The 'strict-dynamic' source expression allows script loaded via nonce- or hash-based whitelists to load other script, simplifying the requirements for deployment, and (hopefully!) making it more likely that CSP can reach more sites.CSS Flexbox: New behavior for absolute-positioned children2017-06-14T18:29:16ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/6600926009753600/A previous version of the Flexbox spec set the static position of abspos children as if they were a 0x0 flex item. However, the latest version of the spec takes them fully out of flow and sets the static position based on align and justify properties. (The static position is used when there are no top: or left: or related properties used to position the absolute-positioned element. See the sample below.)Exponentiation Operator (** / **=)2017-06-14T18:28:41ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5461064690958336/Provides an arithmetic operator equivalent of Math.pow(), in which the lefthand-side expression serves as the base value, and the righthand-side expression serves as the exponent.Fetch API: Response construction with ReadableStream2017-07-25T04:45:49ZChrome Platform Statustag:www.chromestatus.com,2017-07-25:/feature/4531143755956224/Developers can now construct their own ReadableStream instances, and use one as a body for constructing a Response object. It enables streaming composed body data from a ServiceWorker to a page controlled by it.Fetch API: referrer policy2017-06-14T18:28:54ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5692236742262784/This feature enables users to get / set a Request's referrer policy which affect's the "Referer" HTTP header. Pause event loop during modal dialogs2017-06-14T18:28:52ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5683408571203584/When using alert(), confirm() or onbeforeunload, Chromium's old behavior was to block JS waiting for the result, but allows all declarative animations to continue. This change is to make all main-thread tasks (such as <marquee> and CSS 2d animations) also pause during this interval.Streams API2018-09-27T15:59:41ZChrome Platform Statustag:www.chromestatus.com,2018-09-27:/feature/6605041225957376/APIs for creating, composing, and consuming streams of data, that map efficiently to low-level I/O primitives, and allow easy composition with built-in backpressure and queuing. Stricter user gestures for touch2017-06-14T18:28:46ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5649871251963904/Don't allow opening popups (and other sensitive operations) on touch events which don't correspond to a tap from inside of cross-origin iframes (Chrome 52).WebAudio: DynamicsCompressor.reduction is a float not AudioParam2017-06-14T18:28:35ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5086921298542592/Chrome implements the reduction attribute for a DynamicsCompressorNode as an AudioParam. The WebAudio spec says it should be a readonly float. Change Chrome to implement the specification.CSS border-image: respect border style2017-06-14T18:28:42ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5542503914668032/Blink will begin to require a border style in order to paint border images. This has always been required by the spec, but has not been enforced. In order to not be affected by this change, add e.g. 'border-style:solid' where border-image is used.Correct handling of percentages in children of flex items2017-06-14T18:28:50ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5670760496496640/Certain flex items should be considered to have definite sizes (see spec URL), and therefore if a child element of a flex item uses percentage sizes, they should work.ExtendableMessageEvent on ServiceWorkerGlobalScope2018-03-28T21:23:48ZChrome Platform Statustag:www.chromestatus.com,2018-03-28:/feature/5724079160033280/ServiceWorker.postMessage() now results in an ExtendableMessageEvent fired on ServiceWorkerGlobalScope as a 'message' event. ExtendableMessageEvent.waitUntil() extends its lifetime until a passed Promise is settled. Before this change, postMessage() resulted in a MessageEvent fired on the global scope.Media Capture from Canvas2017-06-14T18:28:31ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4817998447640576/“Media Capture from DOM Elements” document by W3C defines captureStream() method that allows the capture of the <canvas> element in the form of a MediaStream. We want to implement the necessary Blink and Chromium sections that would create this stream by accessing the canvas output according to the given frame rate constraints.Passive event listeners2017-06-14T18:29:02ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5745543795965952/Expose "passive" boolean in the EventListenerOptions dictionary. Implement the behaviour with respect to dispatching passive EventListeners so that calling preventDefault inside executing the passive registered callback only generates a warning to the console. Can be used to dramatically improve scrolling performance.Presentation API2018-05-03T21:44:06ZChrome Platform Statustag:www.chromestatus.com,2018-05-03:/feature/6676265876586496/Gives ability to access external presentation-type displays and use them for presenting web content.RTCPeerConnection promise-based methods2017-06-14T18:29:02ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5743313768415232/Add promise-based versions of RTCPeerConnection methods: setLocalDescription, setRemoteDescription, addIceCandidate, createOffer and createAnswer. To be done in 2 steps. First, setLocalDescription, setRemoteDescription and addIceCandidate (anticipated in M50). The new versions of these don't have any overloading issues that can cause problems to existing code. For createOffer and createAnswer the overloading issues will be solved before adding the promised-based versions (anticipated in M51).Remove propagation of mouse wheel events to parent iframe.2017-06-14T18:28:52ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5678869528969216/When an iframe does not handle a mouse wheel event it is currently dispatched to the parent iframe. Mouse wheel events are unique in this dispatching aspect and other vendors FireFox and Microsoft both don't dispatch the event to the parent iframe. This request is to make Chrome match FF and Edge. Some public discussion has happened on Fireכox's bug where a web developer asked Mozilla to implement similar behavior to chrome.UIEvents KeyboardEvent |key| attribute2017-06-14T18:28:30ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4748790720364544/The KeyboardEvent |key| attribute contains information about the character being generated by the key event.URL.searchParams readonly attribute2017-06-26T16:34:05ZChrome Platform Statustag:www.chromestatus.com,2017-06-26:/feature/5644164582604800/Access the query portion of a URL by way of a URLSearchParams object.Accept-encoding: br on HTTPS connection2017-06-14T18:28:40ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5420797577396224/Brotli (shortname "br") is used in WOFF 2.0 web fonts with great success. This is about making it available as an HTTP content-encoding method (e.g. Accept-Encoding: br). Advantages of Brotli over gzip: - significantly better compression density - comparable decompression speedAccess relative and absolute orientation sensors from Chrome for Android for Virtual and Augmented Reality2017-06-14T18:28:48ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5661106970296320/Summarized this feature includes the following changes/additions: - make 'deviceorientation' relative by default -- now compatible with Safari on iOS, -- better usability (no drift) for VR applications, -- not reliant on magnetometer hence no interference in the presence of magnetic fields. - add dedicated 'deviceorientationabsolute' event for AR applications. FormData methods for inspection and modification2017-06-14T18:28:55ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5701572055007232/The FormData object allows pages to programmatically construct a list of key/value entries that can be submitted via XHR just like an HTML form. Previously, the object was write-only via a single append() method. The spec was fleshed out to add has(), get(), getAll(), delete(), set(), entries(), keys(), values(), forEach() and Symbol.iterator() methods to allow inspection, iteration and modification. HTMLMediaElement.play() returns a promise2017-08-29T14:56:52ZChrome Platform Statustag:www.chromestatus.com,2017-08-29:/feature/5920584248590336/This is allowing a simpler flow to know whether playback started or whether it failed. It also allows the UA to reject the promise if playback is not allowed in the current context, solving issues websites have to detect whether autoplay restrictions blocked the playback.ImageBitmap2017-11-22T18:04:06ZChrome Platform Statustag:www.chromestatus.com,2017-11-22:/feature/5684964708319232/An ImageBitmap object represents a bitmap image that can be painted to a canvas without undue latency. An ImageBitmap object can be obtained from a variety of different objects, using the createImageBitmap() method. ImageBitmap provides an asynchronous and resource efficient pathway to prepare textures for rendering in WebGL.Notification action icons2017-06-14T18:28:53ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5687043120168960/On some platforms the button rendered for a NotificationAction can display an icon. This change adds an optional icon url for notification actions.Notification custom timestamps2017-06-14T18:29:07ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5899831990026240/By default, Web Notifications on Android display the time at which they were created in their top-right corner. However, this is not always appropriate. For example, when the device was offline the event could have happened in the past, or the notification could be shown for an upcoming meeting. The `timestamp` property enables developers to provide the time. Note that we don't visually surface the timestamp on desktop right now, but do use it to affect notification ordering.Notification renotify preference flag2017-06-14T18:29:16ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/6618702728396800/Allows a developer to specify whether a notification should play sound, light, and vibrate alerts again when the notification replaces another notification which is currently displayed.Push API: Payloads2017-06-14T18:29:02ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5746279325892608/The ability to include payloads with messages send using the Push API. Message payloads must be encrypted.Audio Output Devices API2017-06-14T18:28:28ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4621603249848320/This feature will incorporate a set of JavaScript APIs that let a Web application direct the audio output of a media element to authorized devices other than the system or user agent default.Background Sync API2018-03-28T21:26:17ZChrome Platform Statustag:www.chromestatus.com,2018-03-28:/feature/6170807885627392/An API that extends Service Workers with an onsync event.CSS Custom Properties (CSS Variables)2018-04-26T08:32:23ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/6401356696911872/Introduces cascading variables as a new primitive value type that is accepted by all CSS properties, and custom properties for defining them.Case-insensitive Attribute Selector Matching2017-06-14T18:28:43ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5610936115134464/An additional modifier ('i') for attribute selectors, that allows an author to match an attribute (ASCII) case-insensitively.Cookie Prefixes2017-06-14T18:28:33ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4952188392570880/This feature adds a set of restrictions upon the names which may be used for cookies with specific properties. These restrictions enable user agents to smuggle cookie state to the server within the confines of the existing "Cookie" request header syntax, and limits the ways in which cookies may be abused. In a nutshell: `__Secure-*` cookies have to have the `Secure` flag, and `__Host-*` cookies have to have `Path=/`, can't have `Domain`, and might require `Secure` (depending on the setter).Default parameters (ES6)2018-04-26T08:32:04ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/5275456790069248/Allows formal parameters to be initialized with default values if no value (or 'undefined') is passed.Destructuring (ES6)2018-04-26T08:31:33ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/4588790303686656/Destructuring assignment allows extracting data from arrays or objects using a syntax that mirrors array and object literals. Fetch API: New value "navigate" for Request.mode2017-06-14T18:29:05ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5768993059110912/Introduce a new value "navigate" for Request.mode of the Fetch API. "navigate" mode is intended to be used only for navigation.High Resolution Time Stamp for Events2017-07-17T15:06:48ZChrome Platform Statustag:www.chromestatus.com,2017-07-17:/feature/5523910145605632/Change Event.timeStamp to be a DOMHighResTimeStamp which is a high resolution monotonic time with microseconds resolution instead DOMTimeStamp which is an epoch time with millisecond resolution. For input events, the timestamp value will represent the underlying OS timestamp for the event. High resolution monotonic timestamp for input events enables new functionality such as accurate measurement of pointer velocity, simple input latency measurements, and etc. MediaRecorder2017-06-14T18:29:08ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5929649028726784/Encode audio and video streams in the browser.Promise rejection tracking events2017-06-14T18:28:31ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4805872211460096/Introduces a pair of events on the global objects, unhandledrejection and rejectionhandled, for tracking promise rejections.Proxies (ES6)2017-06-14T18:28:31ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4811188005240832/Proxies are objects for which the programmer has to define the semantics in JavaScript. Service Worker: WindowClient.navigate()2018-03-28T21:26:42ZChrome Platform Statustag:www.chromestatus.com,2018-03-28:/feature/5314750808326144/The method can instruct a controlled window client to navigate to a different url.URLSearchParams2018-04-26T08:12:22ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/5632984866619392/The URLSearchParams interface allows developers to (shock!) manipulate the search params of a URL. It also provides a mechanism to POST data via `fetch()` with a urlencoded body vs. the multipart body that `FormData` produces.addEventListener/removeEventListener non-optional arguments2017-06-14T18:28:45ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5640816202612736/For a very long time, the first two arguments (type and listener) of addEventListener and removeEventListener have been optional, where they are non-optional in the spec and other browsers. This will change, so that calling these methods with zero or one argument will start to throw exceptions.CSS Font Loading API - FontFaceSet interface2017-06-14T18:28:28ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4594172182921216/Update FontFaceSet to confirm the latest spec. Now, FontFaceSet behaves as setlike<FontFace> with entries(), keys(), values(), and iterator. (crbug.com/392075) Also add() and remove() are changed not to throw InvalidModificationError on handling CSS-connected FontFaces. (crbug.com/510346)IndexedDB getAll() methods2018-01-30T20:06:55ZChrome Platform Statustag:www.chromestatus.com,2018-01-30:/feature/6537756637396992/Indexed DB "batched get" APIs and two other methods that have been implemented in FF for some time * IDBObjectStore.getAll() * IDBObjectStore.getAllKeys() * IDBIndex.getAll() * IDBIndex.getAllKeys() * IDBObjectStore.openKeyCursor() * IDBTransaction.objectStoreNames Notification action buttons2017-06-14T18:29:07ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5906566364528640/Support for the NotificationOptions.actions, Notification.actions and Notification.maxActions attributes, which allow authors to show action buttons alongside a notification. These allow users to quickly handle the most common tasks for a particular notification, without having to open the originating website. As of Chrome 53, the `Notification.actions` property is exposed as well.Touch and TouchEvent constructors2017-06-14T18:28:33ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4923255479599104/The constructor creates a Touch/TouchEvent object from an init dictionary like other event types, also able to initialize UIEvent fields. More favorable than the old "document.create... + e.init..." way.UI Events KeyboardEvent |code| attribute2017-06-14T18:28:38ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5228092293382144/The KeyboardEvent |code| attribute contains information about the key event that can use used identify the physical key being pressed by the user.VP9 software encoder/decoder in Chrome for WebRTC2017-06-14T18:28:47ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5652783105572864/Include a VP9 video codec encoder and decoder in Chrome for use with WebRTC. WebAudio: Support chaining on AudioNode.connect() and AudioParam automation methods2017-06-14T18:28:56ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5706033670389760/This is to support ‘method chaining’ on AudioNode.connect() and the automation methods of AudioParam object. The current implementation does not return anything when these methods get executed. It improves the control flow and the readability of Web Audio JS code.Array.prototype.includes2018-04-26T07:44:10ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/5964420647747584/Method to determine whether an array includes a given element.MouseEvent.getModifierState2017-06-14T18:28:49ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5662574238498816/MouseEvent.getModifierState is unimplemented. KeyboardEvent.getModifierState is implemented; but the action on the MouseEvent isn't. We need to be consistent in our APIs this is a simple change to bring matching spec behavior. http://www.w3.org/TR/DOM-Level-3-Events/#widl-MouseEvent-getModifierStateNavigator.mediaDevices2017-11-02T15:20:25ZChrome Platform Statustag:www.chromestatus.com,2017-11-02:/feature/4906859072847872/Navigator.mediaDevices has * an enumerateDevices function, which provides the same functionality as MediaStreamTrack.getSources and adds audio output devices to the list, and * a devicechange event to notify when the set of devices available have changed. enumerateDevices is enabled by default, and the devicechange event is behind a flag.NotificationOptions.requireInteraction, and auto-minimize timeout2017-06-14T18:28:45ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5641440986136576/Support for the NotificationOptions.requireInteraction property, letting authors hint that a notification should remain readily available until the user clicks or dismisses it. When omitted, Chrome desktop will start to close* notifications after ~20 seconds (rather than the toast remaining permanently on-screen); Chrome for Android will be unaffected, since the platform requires that notifications are always minimized there. *Chrome OS only - auto-minimize to the notification center.Rest parameters (ES6)2017-06-14T18:29:08ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5937087912083456/Allows representation of an indefinite number of arguments as an array.UIEvent.sourceCapabilities & InputDeviceCapabilities.firesTouchEvents2017-06-14T18:28:52ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5681847971348480/The InputDeviceCapabilities API provides details about the physical device responsible for generating an event. InputDeviceCapabilities.firesTouchEvents returns whether this device dispatches touch events. All types of UIEvent now have their own sourceCapabilities attribute which returns the InputDeviceCapabilities associated with the physical device responsible for them.requestIdleCallback2017-06-14T18:28:42ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5572795866021888/An API which allows posting of tasks which are scheduled during periods when the browser is idle, and are passed a deadline when called which is calculated based on how long the browser expects to remain idle. This enables developers to perform background work on the main event loop, without impacting latency-critical events such as animation and input response.'allow-popups-to-escape-sandbox' sandboxing flag.2018-04-26T07:37:43ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/5708368589094912/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.Block modal dialogs inside a sandboxed iframe.2017-06-14T18:28:30ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4747009953103872/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)).CSS Intrinsic Sizing2017-06-27T02:07:21ZChrome Platform Statustag:www.chromestatus.com,2017-06-27:/feature/5901353784180736/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)CSS.escape()2017-06-14T18:29:15ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/6526863593701376/`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. Cache.addAll()2018-04-26T07:32:40ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/4922023562182656/addAll() takes an array of RequestInfo objects, fetches them and adds the response objects into this Cache object.Event.isTrusted attribute2017-06-14T18:29:14ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/6461137440735232/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.HTTP Client Hints: DPR, Width, Viewport-Width2017-06-14T18:28:41ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5504430086553600/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-casesSpread (call and array) (ES6)2017-06-14T18:29:09ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/6031334694715392/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.WebRTC Data Channel buffer monitoring with the "bufferedamountlow" event2018-02-14T21:59:15ZChrome Platform Statustag:www.chromestatus.com,2018-02-14:/feature/5515010235170816/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.new.target (ES6)2018-04-26T07:20:01ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/5210159227863040/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.Arrow functions (ES6)2017-06-14T18:28:35ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5047308127305728/The arrow (=>) takes the place of the function keywordCSS Motion Path2017-06-14T18:29:11ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/6190642178818048/Motion paths allow authors to animate any graphical object along an author-specified path. The following CSS properties are defined: motion-offset motion-path motion-rotation motion (shorthand) CSS Multi-column (new implementation)2017-06-14T18:29:15ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/6526151266664448/Ship the flow thread based multicol implementation, so that we eventually can bring Blink's multicol support to a level that matches other engines' (Presto and Trident).ES6 Array methods2018-02-15T22:31:50ZChrome Platform Statustag:www.chromestatus.com,2018-02-15:/feature/6732923508097024/Additional static methods on Array and instance methods on Array.prototype: Array.from, Array.of, Array.prototype.copyWithin, Array.prototype.fill, Array.prototype.find, Array.prototype.findIndexES6 TypedArray methods2017-06-14T18:28:33ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4919908559224832/Additional static methods on concrete TypedArray subclasses (Int8Array, Float32Array, etc) and instance methods on their prototypes. Includes most of the existing Array methods, as well as those added in ES6.Notification.vibrate2017-06-14T18:28:59ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5727996321202176/The vibrate member of the NotificationOptions dictionary allows web developers to specify a vibration pattern for a notification. As of Chrome 53, the `Notification.vibrate` property is exposed as well.Object.assign()2017-06-14T18:29:01ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5742083411279872/The Object.assign() method is used to copy the values of all enumerable own properties from one or more source objects to a target object. It will return the target object.Service Worker: Client.postMessage() and ServiceWorkerMessageEvent2018-04-26T06:42:21ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/5163630974730240/Before Chrome 45, a Service Worker sending a message via Client.postMessage() results in a MessageEvent fired on the Client's global scope (e.g., window). Since Chrome 45, the event is a ServiceWorkerMessageEvent fired on navigator.serviceWorker rather than window. Until Chrome 45, Client.postMessage displayed an "experimental, may change" deprecation warning.Subresource Integrity2018-04-26T06:38:42ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/6183089948590080/Subresource Integrity defines a mechanism by which user agents may verify that a fetched resource has been delivered without unexpected manipulation. In a nutshell, metadata inlined into HTML elements allows the browser to determine whether the resource that was downloaded matches the resource the page's author expected to download. This implementation covers only the two elements outlined in the spec: <script> and <link rel="stylesheet"> elements.Touch.rotationAngle2017-06-14T18:28:28ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4639728380936192/The rotation angle, in degrees, of the contact area ellipse defined by Touch.radiusX and Touch.radiusY.beforeinstallprompt event for web/native app install banners2017-07-10T14:17:19ZChrome Platform Statustag:www.chromestatus.com,2017-07-10:/feature/6560913322672128/An event for notifying the site that the browser is about to show an install banner, that also gives the site the ability to both suppress the banner, as well as show it later at a time of their choosing. Related: https://www.chromestatus.com/features/4540065577435136Computed Property Names (ES6)2017-06-14T18:28:47ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5654306493562880/Allows expression for property names in object literals and class literalsNotification.data and ServiceWorkerRegistration.getNotifications()2018-04-26T06:29:55ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/5736434757533696/Support for the Notification.data attribute, which allows authors to attach some (immutable) data to a persistent Web Notification they are displaying. Support for the static ServiceWorkerRegistration.getNotifications() method for getting all existing persistent notifications created by the current origin.Allow JS-triggered copy/cut with a user gesture2018-04-26T06:19:23ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/5223997243392000/execCommand("copy") and execCommand("cut") should be allowed to modify the system clipboard in the context of a user gesture (the spec uses the language "allowed to show a popup").Cache API (global scope)2018-04-26T06:17:48ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/5072127703121920/The Cache API allows authors to fully and conveniently manage their content caches for offline use. An origin can have multiple, named Cache objects. This API is already available in a Service Worker context. This entry is to make it available globally (=> accessible from a document context).Fetch API: Streaming response body2017-07-25T04:45:40ZChrome Platform Statustag:www.chromestatus.com,2017-07-25:/feature/5804334163951616/Addition of the response.body property to the Fetch API. response.body is a ReadableStream from the Streams Standard.Permissions API2017-12-02T09:11:34ZChrome Platform Statustag:www.chromestatus.com,2017-12-02:/feature/6376494003650560/The Permissions API allows a web application to be aware of the status of a given permission, to know whether it is granted, denied or if the user will be asked whether the permission should be granted. The purpose of the API is to improve general UX with regards to permissions on the Web, allowing developers to be aware of what is going to happen will enable better flow.Unprefixed CSS Animations2017-06-14T18:29:10ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/6121990213599232/CSS Animations without the -webkit- prefix.Upgrade insecure requests2018-04-26T06:16:22ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/6534575509471232/We encourage authors to transition their sites and applications away from insecure transport, and onto encrypted and authenticated connections, but mixed content checking causes headaches. This feature allows authors to ask the user agent to transparently upgrade HTTP resources to HTTPS to ease the migration burden.WebAudio: Allow developers to close an AudioContext explicitly2017-06-14T18:28:40ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5411681005993984/An AudioContext can now be explicitly closed, thereby releasing any hardware resources associated with the AudioContext. Without this, developers had to depend on garbage collection of the AudioContext to release hardware resources.WebAudio: Selective Disconnection on AudioNode.disconnect()2018-04-26T06:11:27ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/4793068276416512/Currently AudioNode.disconnect() disconnects all existing connections from output(s) of the AudioNode. This is to support disconnecting only one connection. There have been numerous requests to support selective disconnection with disconnect() method and Audio WG agreed to change the spec to accommodate the feature request. With this change, it is possible to disconnect a signal path out of multiple connections to AudioNode input or AudioParam.autocapitalize2017-06-14T18:28:26ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4529989986811904/Enables web pages to give hint with regards to the autocapitalization behaviour to use on text fields.Classes (ES6)2017-06-14T18:28:28ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4633745457938432/Language support for classes. In 42, shipped in strict mode. In 49, shipped outside of strict mode as well.Encrypted Media Extensions (EME)2017-06-16T17:18:41ZChrome Platform Statustag:www.chromestatus.com,2017-06-16:/feature/6578378068983808/Defines a common API that may be used to discover, select and interact with Digital Rights Management systems for use with HTMLMediaElement.Fetch API2017-06-14T18:29:18ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/6730533392351232/Fetch API is a new API for loading resources in web applications. It's intended to supersede XMLHttpRequest. Fetch API is already available in ServiceWorker scope. This entry is for announcing its availability in window scope.Notifications using Service Workers2018-04-26T06:06:23ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/5480344312610816/Web Notifications have an in-page event delivery model by default, which means that notifications cannot reliably outlive the page's lifetime. Allowing event delivery to be routed to a page's Service Worker provides a solid solution.Push API2018-04-26T06:05:20ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/5416033485586432/Push notifications for the webWeb/native app install banners2017-06-14T18:28:27ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4540065577435136/Chrome 42 for Android will encourage users to add high quality sites they visit frequently to their home screen. In the future it will support the same for native apps. This entry is for the visual aspect, not the API surface. The Manifest API surface is covered by https://www.chromestatus.com/features/4754986680451072. The event API surface is covered in https://www.chromestatus.com/features/6560913322672128WebAudio: OfflineAudioContext.startRendering() returns a promise2018-04-26T06:00:00ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/5692188675538944/The startRendering() method for an OfflineAudioContext now returns a promise that is resolved with the rendered audio when rendering is done.'any-pointer' and 'any-hover' Media Queries2017-06-14T18:29:14ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/6460705494532096/Media queries for determining capabilities of a UA's pointer devicesBlending of HTML and SVG elements2017-08-07T21:28:20ZChrome Platform Statustag:www.chromestatus.com,2017-08-07:/feature/6362616360337408/Provides a way to blend an HTML or SVG element with its backdrop. The CSS properties: mix-blend-mode and isolation.Lexical Declarations (ES6)2017-06-14T18:28:28ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4645595339816960/'let' and 'const' declarations define variables/constants with block scoping in strict mode.Template Strings (ES6)2017-06-14T18:28:30ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4743002513735680/Template strings are string literals allowing embedded expressions.WebAudio: suspend/resume2018-04-26T05:25:31ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/5664622837235712/Supports suspending and resuming an AudioContext to allow applications to pause the audio device when needed. This reduces CPU usage and power consumption when audio is suspended.image-rendering: pixelated2017-06-14T18:28:36ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5118058116939776/"image-rendering: pixelated" indicates that image should be scaled "so that the image appears to be simply composed of very large pixels", e.g. using nearest-neighbour.Cache API2018-04-26T05:22:52ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/6461631328419840/The Cache API allow authors to fully and conveniently manage their content caches for offline use. An origin can have multiple, named Cache objects which are accessible via workers and document scripts.Service Worker2018-04-26T05:22:30ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/6561526227927040/ServiceWorkers (formerly Navigation Controllers) are a new system that provides event-driven scripts that run independent of web pages. They are similar to SharedWorkers except that their lifetime is different and they have access to domain-wide events such as network fetches. Use cases: offline, reducing perceived page load latency and will eventually power notification/push/sync/... use cases. minlength attribute2018-04-26T05:22:08ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/6023370181181440/minlength attribute declares a lower bound on the number of characters a user can input.reportValidity() for form controls2018-04-26T05:17:38ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/5433505009893376/reportValidity() invokes built-in form validation UI programatically. Beacon2017-12-14T17:18:25ZChrome Platform Statustag:www.chromestatus.com,2017-12-14:/feature/5517433905348608/This specification defines an interoperable means for site developers to asynchronously transfer small HTTP data from the User Agent to a web server. Initiated by the navigator.sendBeacon() method, the 'beacon' data will be transmitted by the User Agent as soon as possible, but independent of document navigation. The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.Generators (ES6)2018-04-26T05:15:39ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/4959347197083648/A generator is a special type of function that works as a factory for iterators.Web Animations Javascript API [playback control]2017-06-14T18:28:44ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5633748733263872/A unified model for supporting animation and synchronization on the Web platform. This feature covers playback control of AnimationPlayer: play(), pause(), reverse(), finish(), currentTime, startTime, playbackRate and playState.Web Application Manifest2018-10-23T13:55:23ZChrome Platform Statustag:www.chromestatus.com,2018-10-23:/feature/6488656873259008/This specification defines a JSON-based manifest, which provides developers with a centralized place to put metadata associated with a web application. This includes, but is not limited to, the web application's name, links to icons, as well as the preferred URL to open when the user launches the web application. The manifest also allows developers to declare a default orientation for their web application, as well as how the application is to be displayed by the user agent (e.g. in fullscreen).meta-theme-color2017-06-14T18:28:40ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5398016231997440/The meta-theme-color is the color of the brand, browser may use it when a distinct color representation is needed. <picture> Element2018-04-26T05:08:17ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/5910974510923776/Enable a responsive images solution by declaring multiple resources for an image using CSS media queries.Battery Status API2017-09-19T07:17:25ZChrome Platform Statustag:www.chromestatus.com,2017-09-19:/feature/4537134732017664/Allows access to see the battery level of the device's batteryEncoding API2017-06-14T18:28:57ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5714368087982080/Script API to allow encoding/decoding of strings from binary data. Common scenario: decoding a binary data file fetched via XHR into an ArrayBuffer that contains strings encoded as UTF-8.File constructor2017-06-14T18:29:00ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5731244088229888/A programmatic method of constructing File objects, very similar to how Blob objects are built.JS iterators (i.e. the for-of feature) (ES6)2017-06-14T18:28:29ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4696563918045184/Iterates over iterable objects (including arrays, array-like objects, iterators and generators), invoking a custom iteration hook with statements to be executed for the value of each distinct property.Map (ES6)2017-06-14T18:28:31ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4818609708728320/Map objects are simple key/value maps.Set (ES6)2017-06-14T18:28:33ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4916191365693440/Set objects let you store unique values of any type, whether primitive values or object references. <dialog> Element2018-04-26T04:58:01ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/5770237022568448/An HTML element for a dialog boxCSS Shapes Module Level 12018-02-07T02:41:26ZChrome Platform Statustag:www.chromestatus.com,2018-02-07:/feature/5163890719588352/CSS Shapes allows one to specify a geometric "shape-outside" for a float. Content will wrap around the float's shape-outside, instead of its rectangular boundary. The shape-outside property can be specified with a geometric primitive, like an ellipse or a polygon, or by the pixels of an image's alpha channel whose values are greater than shape-image-threshold. A shape-outside's boundary can be uniformly expanded with the shape-margin property. Fractional TouchEvent co-ordinates2017-06-14T18:28:40ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5442014145413120/Updates co-ordinates returned by TouchEvent objects to include the full precision provided by the underlying platform.Navigator.hardwareConcurrency 2018-04-26T04:55:29ZChrome Platform Statustag:www.chromestatus.com,2018-04-26:/feature/6248386202173440/This is a new attribute on the Navigator object. It returns the number of tasks that can be run efficiently in parallel on the current system under ideal circumstances.CSS touch-action2017-11-06T19:39:53ZChrome Platform Statustag:www.chromestatus.com,2017-11-06:/feature/5912074022551552/New CSS property to enable websites to declaratively state how touches should be handled for purposes of scrolling and zooming.Web Animations JavaScript API [element.animate()] 2017-06-14T18:28:32ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4854343836631040/A unified model for supporting animation and synchronization on the Web platform. CSS Blending of background images (mix-blend-mode)2017-10-26T20:03:50ZChrome Platform Statustag:www.chromestatus.com,2017-10-26:/feature/5768037999312896/Offers more ways to blend a background image of an element with other background images that are below it and with the element's background color. Unprefixed Web Audio API2018-04-25T21:27:29ZChrome Platform Statustag:www.chromestatus.com,2018-04-25:/feature/6261718720184320/A high-level JavaScript API for processing and synthesizing audio in web applicationsPage Visibility API2017-08-07T16:43:00ZChrome Platform Statustag:www.chromestatus.com,2017-08-07:/feature/5689697795833856/Provides an API to ask whether the current tab is visible or not. If you, you might want to throttle back action or set an idle state.Vibration API2017-06-14T18:28:55ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5698768766763008/This specification defines an API that provides access to the vibration mechanism of the hosting device. Vibration is a form of tactile feedback. Note this feature is only available on Android.Media Source Extensions2017-06-14T18:28:27ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4563797888991232/Allows appending data to an <audio>/<video> element.WebRTC2018-01-04T14:00:23ZChrome Platform Statustag:www.chromestatus.com,2018-01-04:/feature/6612462929444864/Real-time communication in the browser.<datalist> Element2017-06-14T18:29:10ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/6090950820495360/Shows a list of pre-defined options to suggest to the user when entering an input element.CSS Filters2017-06-14T18:29:06ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5822463824887808/Apply (SVG-like) filter effects to arbitrary DOM elements.Mutation Observers2017-06-14T18:28:34ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5021194726146048/Provides notifications when DOM nodes are rearranged or modified.Prefixed Fullscreen API2018-05-01T20:06:36ZChrome Platform Statustag:www.chromestatus.com,2018-05-01:/feature/5259513871466496/Programmatically instruct content on the page to be presented in the browser's fullscreen mode. This entry is for the prefixed variants of the API, webkitRequestFullscreen. The status for other browsers is also for their prefixed variants.File System API (Chromium)2017-06-22T20:11:07ZChrome Platform Statustag:www.chromestatus.com,2017-06-22:/feature/5452478162141184/With the FileSystem API, a web app can create, read, navigate, and write to a sandboxed section of the user's local file system.Navigation Timing API2017-06-14T18:28:42ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5584144679567360/Allows web applications to access timing information related to navigation and elements.<details>/<summary>2018-04-25T05:41:35ZChrome Platform Statustag:www.chromestatus.com,2018-04-25:/feature/5348024557502464/Interactive widget to show/hide content.Remove support for -webkit-line-box-contain2017-06-14T18:28:26ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4521139636273152/Feature is not part of formal spec and will be subsumed by upcoming css-line-grid spec in discussion. Only supported by Safari among major browsers. Utilization is low.WebGL (Canvas 3D)2017-06-14T18:29:09ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/6049512976023552/3D rendering via the <canvas> element. Device Orientation2018-04-25T05:29:59ZChrome Platform Statustag:www.chromestatus.com,2018-04-25:/feature/5874690627207168/Provides access to device's physical orientationEventSource2017-06-14T18:28:39ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5311740673785856/Also called Server-sent Events, these are push notifications from the server received as DOM events.Geolocation2017-11-08T03:19:33ZChrome Platform Statustag:www.chromestatus.com,2017-11-08:/feature/6348855016685568/Provides access to device's physical location. https://bugs.chromium.org/p/chromium/issues/detail?id=769231Notifications2018-04-25T05:25:10ZChrome Platform Statustag:www.chromestatus.com,2018-04-25:/feature/5064350557536256/An API for displaying simple notifications to the user. Chrome does not yet support displaying them from a Web Worker.XSL Transformations (XSLT)2017-06-14T18:28:30ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4730954895589376/XSLT is a declarative language for transforming XML.postMessage2017-06-14T18:28:31ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4786174115708928/Safely enables cross-origin communication.Add referrerpolicy support to <script> elements2018-09-04T23:18:30ZChrome Platform Statustag:www.chromestatus.com,2018-09-04:/feature/5227651627220992/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.Android Payment Apps2017-06-16T02:39:33ZChrome Platform Statustag:www.chromestatus.com,2017-06-16:/feature/5730366077796352/Web payments is a W3C standard API for e-commerce websites to collect payment information from users with user consent. This feature lets users pay using native Android payment apps.Autoplay muted videos (Android)2017-06-14T18:28:32ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4864052794753024/Relax autoplay restrictions to allow muted videos to autoplay. They will only be able to play while muted and unmuting will pause if not coming from a user gesture.Disable recursive use of NodeFilter functions2017-11-15T01:40:41ZChrome Platform Statustag:www.chromestatus.com,2017-11-15:/feature/5091201086652416/The spec for node filtering steps was recently updated, adding active flags to avoid recursive invocations of the node traversal function from user-provided NodeFilter functions (in createNodeIterator and createTreeWalker) This is an internal change that adds the active flag property and the active flag checks in the node filtering steps. After this change, user-provided node filter functions can't call another traversal function from within the filter function anymore.Inert URL Bar2017-06-14T18:29:12ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/6241601772847104/Hiding and Showing the URL bar will no longer resize the initial containing block or elements sized with vh units. This matches iOS Safari.Media Session2017-06-14T18:28:45ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5639924124483584/Enable websites to customize media metadata so they can control the notification and lock screen UI. Also, allow them to control media in the page from outside the page, such as platform UIs and media keys.Pause autoplaying muted video by attribute when invisible (Android)2017-06-14T18:28:47ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5651339115757568/As a muted video with autoplay attribute only starts playing when it's becoming visible, it's reasonable to pause them when invisible to reduce power usage.PaymentDetails.error2017-06-14T18:28:28ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4655740933373952/When the payment request is updated using updateWith, the PaymentDetails can contain a message in the error field that will be displayed to the user. For example, this might commonly be used to explain why goods cannot be shipped to the chosen shipping address. The error field cannot be passed to the PaymentRequest constructor. Doing so will cause a TypeError to be thrown.PaymentRequest.canMakePayment()2017-06-14T18:28:55ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5702608073261056/A method in PaymentRequest, canMakePayment(), that returns back a boolean indicating whether or not the user has the ability to make a payment at the time PaymentRequest.show() is called.Remote Playback API2017-11-08T22:49:19ZChrome Platform Statustag:www.chromestatus.com,2017-11-08:/feature/5778318691401728/This specification defines an API extending the HTMLMediaElement that enables controlling remote playback of media from a web page. In M56, this will work on Android only (desktop will report no devices available) with the desktop backend being added later.Touch event timeout on mobile sites2017-06-14T18:28:55ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5700830451728384/Chrome on Android currently has a touch ACK timeout of 200ms for desktop sites. If the renderer does not respond to a touch event before the timeout delay, the touch sequence is cancelled and any associated gestures are dispatched. This change restores a touch timeout for sites with a mobile-friendly viewport, but with a timeout delay of 1 second.Web Share API2018-10-02T02:00:41ZChrome Platform Statustag:www.chromestatus.com,2018-10-02:/feature/5668769141620736/Web Share is a proposed API for sharing data (text, URLs, images) from the web to an app of the user's choosing.basic-card support in PaymentRequest2017-06-14T18:28:40ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5408502604365824/Support the "basic-card" method for web payments.display:minimal-ui 2017-10-10T14:28:58ZChrome Platform Statustag:www.chromestatus.com,2017-10-10:/feature/5680906727587840/Support the minimal-ui display mode as defined in the Web App Manifest. This property will result in Chrome displaying a "Chrome Custom Tab"-like UI. navigator.connection.downlinkMax, wimax, and onchange2017-06-14T18:29:07ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5857463882481664/Add support for the downlinkMax attribute which provides the maximum theoretical bandwidth that the current connection can support. Also add "wimax" as a connection type. Also adds support for the connection.onchange event. The ontypechange event will be deprecated later.Autoplay Policy for Web Audio2018-10-29T16:08:46ZChrome Platform Statustag:www.chromestatus.com,2018-10-29:/feature/4510315433689088/Web Audio will follow the rules of the autoplay policy already followed by other parts of Chrome able to produce sound. When an AudioContext is created, it will start as suspended if it wasn’t allowed to play. Calling resume() will only start the AudioContext if it is allowed to play. Furthermore, a previously blocked AudioContext will automatically be resumed if start() is called on a connected node after the document is user activated.Intrinsic size attribute2018-09-14T21:19:01ZChrome Platform Statustag:www.chromestatus.com,2018-09-14:/feature/4704436815396864/This attribute allows developers to specify the intrinsic size of a media element (<img>, <video>, <svg:image>). With this attribute media elements will maintain their aspect ratios. Developers need only specify one dimension, either a percentage or pixel value, and the other dimension will be computed immediately without causing a visual re-flow. Feature Policy: Image Compression2018-08-15T20:55:08ZChrome Platform Statustag:www.chromestatus.com,2018-08-15:/feature/6390897969201152/Allows developers to selectively enable and disable the use of images with large byte-per-pixel ratio (compression ratio) through the Feature-Policy HTTP header or the <iframe> 'allow' attribute. This provides more control over minimizing image file size, on a per-origin basis. Use this policy to optimize image loading experience. The identifier for the feature in policies is 'image-compression'. By default, 'image-compression' is allowed in all frames.Feature Policy: Legacy Image Format 2018-08-17T15:39:59ZChrome Platform Statustag:www.chromestatus.com,2018-08-17:/feature/5498395175157760/Allows developers to selectively enable and disable the use of images with legacy image formats through the Feature-Policy HTTP header or the <iframe> 'allow' attribute. This provides more control over images using legacy formats, on a per-origin basis. Use this policy to improve image loading performance. The identifier for the feature in policies is 'legacy-image-formats'. By default, 'legacy-image-formats' is allowed in all frames. Feature Policy: Maximum Image Downscaling2018-08-15T20:57:00ZChrome Platform Statustag:www.chromestatus.com,2018-08-15:/feature/5953669526716416/Allows developers to selectively enable and disable the use of images whose sizes that are much bigger than the containers' through the Feature-Policy HTTP header or the <iframe> 'allow' attribute. This provides more control over images with unnecessarily large intrinsic size, on a per-origin basis. Use this policy to improve image loading performance. The identifier for the feature in policies is 'maximum-downscaling-image'. By default, 'maximum-downscaling-image' is allowed in all frames.Feature Policy: animations2018-08-20T16:53:10ZChrome Platform Statustag:www.chromestatus.com,2018-08-20:/feature/5209780754841600/Allows developers to selectively disable the use of certain CSS animations through the Feature-Policy HTTP header or the <iframe> "allow" attribute. Slow and inefficient CSS animations add delays to paint/draw intervals. With the use of this policy-controlled feature, a developer may restrict the use of certain animations on their own web page or certain third party origins in embedded contents.User Activation v22018-07-12T19:35:18ZChrome Platform Statustag:www.chromestatus.com,2018-07-12:/feature/5722065667620864/Browsers control access to "abusable" of APIs (e.g. opening popups or vibrating) through user activation (or "user gesture"). However, the web exposed behavior vary widely among major browsers. To unify the web, this feature defines a new user activation model that is simple enough for cross-browser implementation. The main changes introduced by this model are: (a) there is no concept of token passing, and (b) activation visibility changes from stack-scoped to frame-scoped.Feature Policy: Unsized Media2018-08-14T21:34:21ZChrome Platform Statustag:www.chromestatus.com,2018-08-14:/feature/5144306931204096/Allows developers to selectively enable and disable the use of media elements (<img> and <video>) without specified dimensions through the Feature-Policy HTTP header or the <iframe> 'allow' attribute. This provides more control over media elements with unspecified dimension, on a per-origin basis. Use this policy to improve layout stability. The identifier for the feature in policies is 'unsized-media'. By default, 'unsized-media' is allowed in all frames. Network Information: saveData 2017-12-14T18:02:06ZChrome Platform Statustag:www.chromestatus.com,2017-12-14:/feature/5076813940260864/The saveData attribute is a boolean that indicates a client’s explicit opt-in for reduced data usage, due to high transfer costs, slow connection speeds, or other reasons. It's use allows JavaScript to make decisions that result in reduced data use, such as to load smaller images and video resources, or reduce buffering or predictive actions. This is expected to be enabled by default in Chrome 65.document.rootScroller2018-02-20T20:50:54ZChrome Platform Statustag:www.chromestatus.com,2018-02-20:/feature/4533350404456448/Allow a non-document (or <body>) element to hide URL bar, generate overscroll glow, etc. on scrolling, effects normally reserved for "viewport scrolling" only.CSS line-height-step property2017-11-08T17:42:02ZChrome Platform Statustag:www.chromestatus.com,2017-11-08:/feature/5734273533345792/The CSS line-height-step property provides an ability to round the heights of line boxes to the multiple of the specified length. This property allows authors to control vertical rhythm.inert attribute2018-07-03T05:36:09ZChrome Platform Statustag:www.chromestatus.com,2018-07-03:/feature/5703266176335872/The inert attribute would allow web authors to mark parts of the DOM tree as inert: When a node is inert, then the user agent must act as if the node was absent for the purposes of targeting user interaction events, may ignore the node for the purposes of text search user interfaces (commonly known as "find in page"), and may prevent the user from selecting text in that node.rAF Aligned Mouse Events2018-02-05T22:45:24ZChrome Platform Statustag:www.chromestatus.com,2018-02-05:/feature/6192761317359616/Align continuous mouse events (mousemove, mousewheel) so that they occur close to requestAnimationFrame() as possible. Historical events can be accessed via getCoalescedEvents (see https://w3c.github.io/pointerevents/extension.html#extensions-to-the-pointerevent-interface)Web Share Target2018-10-02T14:11:21ZChrome Platform Statustag:www.chromestatus.com,2018-10-02:/feature/5662315307335680/Web Share Target allows websites to receive shared data (text, URLs, images) and register to be choosable by the user as targets from sharing contexts, including (but not limited to) Web Share.Indexed DB: Replace DOMError with DOMException2017-06-14T18:28:46ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5645171886653440/DOMError has been removed from the DOM standard in favor of DOMException, and the Indexed DB draft spec has been updated to use DOMException for error attributes. The error attribute on IDBRequest and IDBTransaction will now return DOMException instances instead of DOMError instances. Both types have 'name' and 'message' properties, so code that tests properties (e.g. request.error.name) or does logging (e.g. transaction.error.message) will be unaffected.iframe[seamless] attribute2017-06-14T18:29:16ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/6630329993396224/The seamless attribute is used to embed and <iframe> in the calling page without scrollbars or borders (e.g. seamlessly)Android on-screen keyboard doesn't resize layout2017-06-14T18:28:48ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5656077370654720/The Android keyboard will resize only the visual viewport - not the layout viewport. This means it'll have no effect on the page layout of location of position: fixed elements.Allow PaymentRequest.show() to take optional detailsPromise2018-03-06T18:44:13ZChrome Platform Statustag:www.chromestatus.com,2018-03-06:/feature/6092351889997824/Some users may not know the total or line items at the time of attempting to open the payment sheet with show() -- there may be asynchronous server-based logic yet to be resolved. This feature is a way to signal that the browser should show a spinner or equivalent and wait to allow end user interaction until an update.CSP 'navigate-to' directive2018-04-25T04:56:47ZChrome Platform Statustag:www.chromestatus.com,2018-04-25:/feature/6457580339593216/The navigate-to directive restricts the URLs to which a document can initiate navigations by any means (a, form, window.location, window.open, etc.). This is an enforcement on what navigations this document initiates not on what this document is allowed to navigate to. If the form-action directive is present, the navigate-to directive will not act on navigations that are form submissions.Delayed Dispatch of PerformanceEntries2017-11-24T19:59:45ZChrome Platform Statustag:www.chromestatus.com,2017-11-24:/feature/4993617147985920/Previously, we always dispatched PerformanceEntries to PerformanceObservers, via a simple PostTask. We propose to switch to dispatching these entries during idle times, or 100ms after they’ve been queued, whichever comes first. The spec encourages this new behavior: “The performance timeline task queue is a low priority queue that, if possible, should be processed by the user agent during idle periods to minimize impact of performance monitoring code.”Do not apply hover when mouse does not move2018-09-05T20:26:35ZChrome Platform Statustag:www.chromestatus.com,2018-09-05:/feature/6058736774807552/To update the hover state when a page scrolls or changes layout, Blink currently dispatches fake mouse moves based on a timer because the mouse does not move. Unfortunately, every mouse move does a hit test which affects both performance and testing. This change applies the hover effect only when a mouse physically moves, improving performance and eliminating issues created by fake mouse events.ImageCapture support for exposureTime constraint2018-07-16T14:36:38ZChrome Platform Statustag:www.chromestatus.com,2018-07-16:/feature/5682072505024512/Image Capture API has a means to set exposureMode to manual which is not useful if you cannot set the exposure time (aka shutter speed, aka exposure duration). This change provides an interface for getting the exposure time range values as well as setting the exposure time in time units.ImageCapture support for focusDistance constraint2018-07-16T14:30:47ZChrome Platform Statustag:www.chromestatus.com,2018-07-16:/feature/5181454237564928/Image Capture API provides a means to set focusMode to manual which is not useful if you cannot the set focus distance. This change provides an interface for getting focus range values as well as setting focus distance value. IndexedDB Observers2017-06-14T18:28:50ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5669292892749824/IndexedDB observers allow a developer to listen to changes to their database, including changes from other browsing contexts.Layered API: <virtual-scroller>2018-06-05T15:51:08ZChrome Platform Statustag:www.chromestatus.com,2018-06-05:/feature/5673195159945216/The <virtual-scroller> element maps a provided set of JavaScript objects onto DOM nodes, and renders only the DOM nodes that are currently visible, leaving the rest "virtualized". It will be implemented as a layered API.Media Capture Depth Stream Extensions2018-10-22T15:04:34ZChrome Platform Statustag:www.chromestatus.com,2018-10-22:/feature/5713419084759040/Support Media Capture Depth Stream Extensions, which enable use of depth stream camera.Media Queries: shape feature2018-10-16T16:46:18ZChrome Platform Statustag:www.chromestatus.com,2018-10-16:/feature/5167313951129600/The shape feature describes the general shape of the targeted display area of the output device. Numeric Separators2018-03-15T16:57:20ZChrome Platform Statustag:www.chromestatus.com,2018-03-15:/feature/5829906369871872/This feature enables developers to make their numeric literals more readable by creating a visual separation between groups of digits. Using underscores (_, U+005F) as separators helps improve readability for numeric literals, for ex: 1_000_000_000.PointerEvent.getPredictedEvents2018-09-21T14:55:13ZChrome Platform Statustag:www.chromestatus.com,2018-09-21:/feature/5765569655603200/An API to return a few predicted events of the received pointermove events in javascript. This API enables apps like a drawing app for example to draw a predicted line in advance, so that less latency is apparent to users.Treat '#' as ending data URI body content2018-03-28T14:14:27ZChrome Platform Statustag:www.chromestatus.com,2018-03-28:/feature/5656049583390720/By spec, '#' characters in data URIs should not be treated as part of the URI body, and should instead only mark the start of the URI fragment component. Historically Chrome has not adhered to the spec, instead treating '#' characters as both fragment-starters and part of the body. Web notification inline replies2018-07-10T15:47:10ZChrome Platform Statustag:www.chromestatus.com,2018-07-10:/feature/5743740178137088/This feature adds support for text actions on web notifications. It allows web developers to let users quickly input text in response to a notification, within the notification itself. This is expected to be particularly useful for chat apps.messageerror event and event handlers2017-12-14T17:38:27ZChrome Platform Statustag:www.chromestatus.com,2017-12-14:/feature/5729005244252160/The messageerror event is a new event, with an associated onmessageerror handler attached to the window, message ports, broadcast channels, and workers. The purpose of the event is to notify the receiver when a posted message could not be decoded. Currently the only use of this is when a SharedArrayBuffer is sent but cannot be shared, but there are also plans to use for other objects that want the same property (WebAssembly modules, for example).service worker: FetchEvent.resultingClientId2018-10-02T03:45:19ZChrome Platform Statustag:www.chromestatus.com,2018-10-02:/feature/4846038800138240/FetchEvent.resultingClientId is set on navigation requests or requests for workers. It is the id of the client, either a document or a worker that is potentially created by the request. This is useful for associating the main resource request for a document with subsequent subresource requests from the document for logging and metrics purposes.CSS Selector Pseudo class :dir()2017-09-17T08:10:32ZChrome Platform Statustag:www.chromestatus.com,2017-09-17:/feature/5751531651465216/The :dir CSS pseudo-class matches elements based on the directionality of the text contained in it. Pseudo-class :dir() is not equivalent of using the [dir=…] attribute selector. The latter matches a value of the dir and doesn't match when no attribute is set, even if in that case the element inherits the value of its parent. On the other hand, :dir() will match the value calculated by the UA, being inherited or the auto value.CSS backdrop-filter property2017-08-22T13:10:27ZChrome Platform Statustag:www.chromestatus.com,2017-08-22:/feature/5679432723333120/Add backdrop-filter css property, which allows filters to be applied to the content behind an element.CSSTextEmphasisPosition: support for left and right values2017-06-14T18:28:34ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/4988534620422144/Support for 'left' and 'right' values for CSSTextEmphasisPosition property. left : Draw marks to the left of the text in vertical writing mode. right: Draw marks to the right of the text in vertical writing mode.PaymentResponse.prototype.retry()2018-07-09T16:26:14ZChrome Platform Statustag:www.chromestatus.com,2018-07-09:/feature/6559988684161024/In cases where there is something wrong with the payment response's data (e.g., you find out that the shipping address is a PO box), the retry() method of a PaymentResponse instance allows you to ask a user to retry a payment.Send Mouse Events to Disabled Form Controls2017-06-14T18:28:52ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5685077795143680/Events that have no activation behavior should be sent to form controls. That is the HTML Spec specifically identifies that "click" should be prevented to disabled form controls but it appears that all mouse events aren't sent to form controls. This proposal changes that all mouse events (other than click) are sent to disabled form controls.Standby API2017-06-14T18:29:05ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5768542523752448/The API would prevent the device from entering a power-saving state (e.g. turning off the screen).Support for old constraints with the new syntax2017-06-14T18:29:06ZChrome Platform Statustag:www.chromestatus.com,2017-06-14:/feature/5838698172121088/Chromium currently supports two different syntaxes for specifying video and audio constraints for the getUserMedia function. The old syntax has support for one set of constraints, including several nonstandard ones, and the new syntax has support for a different set of constraints, all of which are standardized. This proposal consists in adding support for all constraints with the new syntax so that the old nonstandard syntax can be deprecated.Media Capabilities: encoding2018-04-09T12:08:35ZChrome Platform Statustag:www.chromestatus.com,2018-04-09:/feature/5123719190020096/This is an API for querying the user agent about a device's encoding capabilities for the purpose of recording or transmitting.PauseFrame2017-08-23T18:46:18ZChrome Platform Statustag:www.chromestatus.com,2017-08-23:/feature/5141555102875648/Allows for pausing of frames (via JavaScript API as well as browser intervention). When a frame is paused, it doesn't run script and it doesn't load resources. It waits patiently to be resumed.Remove full text search (FTS) support from WebSQL2017-09-17T08:25:45ZChrome Platform Statustag:www.chromestatus.com,2017-09-17:/feature/5704730961510400/WebSQL is a discontinued standard that was only implemented by WebKit and Blink as a thin layer on top of SQLite. The implementation has exposed SQLITE-specific constructs, such as a full text search extension (FTS3). Maintaining WebSQL's FTS support has been troublesome, and Safari removed it.