Chrome Platform Status - Samples Passive Touch Event Listeners During Fling2017-06-14T18:28:56ZChrome Platform,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,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,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.Auto Picture-in-Picture2019-02-07T13:39:16ZChrome Platform,2019-02-07:/feature/5317876315586560/Video in installed Progressive Web Apps (PWAs) will enter and exit picture-in-picture automatically when a document's visibility changes. Web apps for video meetings will benefit by allowing picture-in-picture when users switch back and forth between web apps and other applications or tabs. This is currently not possible because a user gesture is required to enter picture-in-picture.Skip Ad in Picture-in-Picture window2019-02-07T13:38:47ZChrome Platform,2019-02-07:/feature/4749278882824192/Show a “Skip Ad” button in Picture-in-Picture window that notifies websites when user a interacts with it.Animation Worklet2018-10-22T13:00:12ZChrome Platform,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,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. Cookie Store API2018-09-01T09:17:10ZChrome Platform,2018-09-01:/feature/5658847691669504/The Cookie Store API exposes HTTP cookies to service workers and offers an asynchronous alternative to document.cookie.Foreign Fetch2018-03-28T21:22:22ZChrome Platform,2018-03-28:/feature/5684130679357440/Foreign Fetch is a proposal to enable third party Service Workers.WebVR v1.12019-04-23T20:12:08ZChrome Platform,2019-04-23:/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 ( The WebVR Origin Trial will end on July 24, 2018.Allow to take optional detailsPromise2019-04-22T15:22:28ZChrome Platform,2019-04-22:/feature/6092351889997824/Some merchant sites may not know the total or line items at the time of attempting to open the payment sheet with show(). This feature is a way to signal that the browser should show a spinner or equivalent and wait on allowing end user interaction until an update.Low latency canvas contexts with desynchronized2019-04-22T20:17:34ZChrome Platform,2019-04-22:/feature/6360971442388992/The getContext() method now supports a desynchronized option, which provides a low-latency 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, {desynchronized: true});`Numeric Separators2019-04-03T18:15:30ZChrome Platform,2019-04-03:/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.CSS prefers-reduced-motion media query2019-02-26T15:43:24ZChrome Platform,2019-02-26:/feature/5597964353404928/Support will be added for the CSS prefers-reduced-motion media query. The prefers-reduced-motion media query detects whether the user has requested that the system minimize the amount of motion it uses; in particular motion-based animation. This is for users who either require or prefer minimized motion. For example people with vestibular disorders often desire animation motion to be kept to a minimum. Constructible Stylesheets2019-01-28T16:18:20ZChrome Platform,2019-01-28:/feature/5394843094220800/The API provides a way to create CSSStyleSheet objects from script without needing <style> or <link> elements. Script can optionally modify the stylesheet by adding, removing, or replacing rules in it. Each stylesheet object can then be adopted/used in multiple tree scopes (document/shadow roots). Not only does this reduce memory duplication, it also allows an element’s styles to be modified in a single location.EME Extension: HDCP Policy Check2019-01-30T16:46:39ZChrome Platform,2019-01-30:/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.Implicit Root Scroller2019-02-05T19:30:40ZChrome Platform,2019-02-05:/feature/5162094739587072/Allows viewport-filling scrollers (iframes, divs) to perform document-level scrolling actions. I.e. show/hide URL bar, overscroll glow, rotation anchoring, etc.Object.fromEntries()2019-03-29T12:30:00ZChrome Platform,2019-03-29:/feature/5747878282657792/Object.fromEntries() turns a list of key-value pairs into an object.Transform list interpolation2019-01-10T17:54:25ZChrome Platform,2019-01-10:/feature/6635209600532480/Chrome will improve how CSS transforms are handled to reduce cases where a matrix interpolation fallback is used. An interpolation is an intermediate transformation. Sometimes interpretation of the CSS rule requires falling back to a matrix to accomplish the interpolation, and this can produce visual results other than what the web developer intends. To mitigate this, the spec was changed to reduce the number of situations when this can occur. imagesrcset and imagesizes attributes on link rel=preload2019-01-16T09:36:32ZChrome Platform,2019-01-16:/feature/5164259990306816/Add imagesrcset and imagesizes attributes to <link rel=preload as=image>, that correspond to the srcset and sizes attributes of HTMLImageElement. We are using imagesizes here instead of sizes because it already has a different meaning for HTMLLinkElement in the rel=icon case. Service worker: FetchEvent.resultingClientId2018-11-26T16:32:29ZChrome Platform,2018-11-26:/feature/4846038800138240/FetchEvent.resultingClientId, set on navigation requests or requests for workers, is the ID of the client, either a document or a worker that is 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.User Activation v22019-02-05T18:42:52ZChrome Platform,2019-02-05:/feature/5722065667620864/User activation is the mechanism to maintain active-user-interaction state that limits use of "abusable" APIs (e.g. opening popups or vibrating). The web exposed behavior varies 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.COLR/CPAL font support2018-09-26T17:22:47ZChrome Platform,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 ( gradient color stop double-position syntax2018-10-15T12:48:36ZChrome Platform,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%)Picture-in-Picture (PiP)2019-03-20T21:16:15ZChrome Platform,2019-03-20:/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.Add referrerpolicy support to <script> elements2019-01-17T21:21:56ZChrome Platform,2019-01-17:/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.Options dictionary for postMessage methods2018-09-05T16:12:25ZChrome Platform,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.Support Opus in mp4 (ISO-BMFF) with Media Source Extensions (MSE)2018-09-17T06:13:27ZChrome Platform,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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. (*) Accept-CH-Lifetime support for requesting client hints2018-04-16T20:53:41ZChrome Platform,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)2019-03-05T21:57:17ZChrome Platform,2019-03-05:/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,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,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,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,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,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,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,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: decoding2019-01-29T00:28:05ZChrome Platform,2019-01-29:/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,2018-01-25:/feature/5810795665424384/This proposal allows the `catch` clause to exist without a parameter.[WebAudio] AudioWorklet2018-03-06T22:26:22ZChrome Platform,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,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,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,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,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,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,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,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,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,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,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,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 unsupported2018-12-07T17:51:14ZChrome Platform,2018-12-07:/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,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,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,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,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,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 (, will not be changed (see, nor will the CSS hashless color quirk ( mouse transition events after layout2017-08-29T18:47:58ZChrome Platform,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,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,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,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,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,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,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,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,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,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,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,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] [2] [3] Network Information2018-01-12T12:05:43ZChrome Platform,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,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,2017-12-12:/feature/5651917954875392/The web platform API to support programming USB devices.CSS font-display2017-12-04T10:03:03ZChrome Platform,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,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,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,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,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,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,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,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,2017-07-03:/feature/6691520493125632/Support for animated PNG imagesDeviceOrientationEvent and DeviceMotionEvent constructors2017-09-17T10:33:26ZChrome Platform,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,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,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,2017-08-17:/feature/4843864737185792/Enable taking pictures from an Image/Video Capture Device. Presentation API: Receiver API2018-05-03T21:44:41ZChrome Platform,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,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,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,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,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,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,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,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,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,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,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,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,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,2017-06-14:/feature/5520773385027584/Previously, "space" was implemented the same as "repeat".CSS position: sticky2017-11-22T18:03:34ZChrome Platform,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,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,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,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,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,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: the rendering pipeline during page load when there's pending sheets. 2017-06-14T18:28:45ZChrome Platform,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,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,2017-06-14:/feature/6694359164518400/OpenGL ES 3.0 level rendering capabilities via the <canvas> element.Async/await functions2017-07-19T22:00:35ZChrome Platform,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: hyphens property2017-06-14T18:28:45ZChrome Platform,2017-06-14:/feature/5642121184804864/This CSS property controls automatic hyphenations. The automatic hyphenation is strongly demanded as seen in, 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,2017-06-14:/feature/5727911176830976/Dataset is supported on HTMLElement. Recently spec was modified to support for SVGElement as well. pan-up pan-down pan-left pan-right CSS properties2017-06-14T18:28:57ZChrome Platform,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,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,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,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,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,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,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,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,2017-06-14:/feature/4711498777624576/CSS Filters without the -webkit- prefix.WebAudio: New lowpass and highpass BiquadFilter implementation2017-06-14T18:28:53ZChrome Platform,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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. returns a promise2017-08-29T14:56:52ZChrome Platform,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,2017-06-14:/feature/5929649028726784/Encode audio and video streams in the browser.Promise rejection tracking events2017-06-14T18:28:31ZChrome Platform,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,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,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,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,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,2017-06-14:/feature/4594172182921216/Update FontFaceSet to confirm the latest spec. Now, FontFaceSet behaves as setlike<FontFace> with entries(), keys(), values(), and iterator. ( Also add() and remove() are changed not to throw InvalidModificationError on handling CSS-connected FontFaces. ( getAll() methods2018-01-30T20:06:55ZChrome Platform,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,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,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,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,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,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,2018-04-26:/feature/5964420647747584/Method to determine whether an array includes a given element.MouseEvent.getModifierState2017-06-14T18:28:49ZChrome Platform,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. Platform,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,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,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,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,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,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,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,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,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,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,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,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: and (call and array) (ES6)2017-06-14T18:29:09ZChrome Platform,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,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 (ES6)2018-04-26T07:20:01ZChrome Platform,2018-04-26:/feature/5210159227863040/ 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,2017-06-14:/feature/5047308127305728/The arrow (=>) takes the place of the function keywordBattery Status API2019-01-07T22:05:23ZChrome Platform,2019-01-07:/feature/4537134732017664/Allows access to see the battery level of the device's batteryCSS Motion Path2017-06-14T18:29:11ZChrome Platform,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,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,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,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,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,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,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,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,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,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: Property Names (ES6)2017-06-14T18:28:47ZChrome Platform,2017-06-14:/feature/5654306493562880/Allows expression for property names in object literals and class and ServiceWorkerRegistration.getNotifications()2018-04-26T06:29:55ZChrome Platform,2018-04-26:/feature/5736434757533696/Support for the 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,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,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,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 API2018-12-05T17:48:15ZChrome Platform,2018-12-05:/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,2017-06-14:/feature/6121990213599232/CSS Animations without the -webkit- prefix.Upgrade insecure requests2018-04-26T06:16:22ZChrome Platform,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,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,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,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,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,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,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,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,2018-04-26:/feature/5416033485586432/Push notifications for the webWeb/native app install banners2017-06-14T18:28:27ZChrome Platform,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 The event API surface is covered in OfflineAudioContext.startRendering() returns a promise2018-04-26T06:00:00ZChrome Platform,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,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,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,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,2017-06-14:/feature/4743002513735680/Template strings are string literals allowing embedded expressions.WebAudio: suspend/resume2018-04-26T05:25:31ZChrome Platform,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,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,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,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,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,2018-04-26:/feature/5433505009893376/reportValidity() invokes built-in form validation UI programatically. Beacon2017-12-14T17:18:25ZChrome Platform,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,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,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,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,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,2018-04-26:/feature/5910974510923776/Enable a responsive images solution by declaring multiple resources for an image using CSS media queries.Encoding API2017-06-14T18:28:57ZChrome Platform,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,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,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,2017-06-14:/feature/4818609708728320/Map objects are simple key/value maps.Set (ES6)2017-06-14T18:28:33ZChrome Platform,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,2018-04-26:/feature/5770237022568448/An HTML element for a dialog boxCSS Shapes Module Level 12018-02-07T02:41:26ZChrome Platform,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,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,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,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,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,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,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,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,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,2017-06-14:/feature/4563797888991232/Allows appending data to an <audio>/<video> element.WebRTC2018-01-04T14:00:23ZChrome Platform,2018-01-04:/feature/6612462929444864/Real-time communication in the browser.<datalist> Element2017-06-14T18:29:10ZChrome Platform,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,2017-06-14:/feature/5822463824887808/Apply (SVG-like) filter effects to arbitrary DOM elements.Mutation Observers2017-06-14T18:28:34ZChrome Platform,2017-06-14:/feature/5021194726146048/Provides notifications when DOM nodes are rearranged or modified.Prefixed Fullscreen API2018-05-01T20:06:36ZChrome Platform,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,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,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,2018-04-25:/feature/5348024557502464/Interactive widget to show/hide content.Remove support for -webkit-line-box-contain2017-06-14T18:28:26ZChrome Platform,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,2017-06-14:/feature/6049512976023552/3D rendering via the <canvas> element. Device Orientation2018-04-25T05:29:59ZChrome Platform,2018-04-25:/feature/5874690627207168/Provides access to device's physical orientationEventSource2017-06-14T18:28:39ZChrome Platform,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,2017-11-08:/feature/6348855016685568/Provides access to device's physical location. Platform,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,2017-06-14:/feature/4730954895589376/XSLT is a declarative language for transforming XML.postMessage2017-06-14T18:28:31ZChrome Platform,2017-06-14:/feature/4786174115708928/Safely enables cross-origin communication.Android Payment Apps2017-06-16T02:39:33ZChrome Platform,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,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,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,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 Session2019-02-05T16:41:46ZChrome Platform,2019-02-05:/feature/5639924124483584/Enable websites to customize media metadata so they can control the notification and lock screen UI. Also allows control of media from outside a page, as well as using platform UIs and managing media keys.Pause autoplaying muted video by attribute when invisible (Android)2017-06-14T18:28:47ZChrome Platform,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,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,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 is called.Remote Playback API2017-11-08T22:49:19ZChrome Platform,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.Spec compliant serialization for ‘animation’ shorthand property2018-12-10T20:12:19ZChrome Platform,2018-12-10:/feature/6246168711397376/The ‘animation’ shorthand property now matches the spec by putting the ‘name’ property last when serializing. Currently Chrome allows item order to vary, leading to errors when copying animations. Firefox already implements this correctly while Edge and Safari do not.Touch event timeout on mobile sites2017-06-14T18:28:55ZChrome Platform,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,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.Web Share API Level 22019-04-24T03:28:57ZChrome Platform,2019-04-24:/feature/4777349178458112/Web Share API Level 2 allows sharing of files from the web to an app of the user's choosing. The API enables web developers to build share buttons that display the same system share dialog boxes used by native applications. Level 1 (already shipping) enabled system share dialogs; however only text and urls could previously be shared. Web Share Target2018-12-17T19:28:39ZChrome Platform,2018-12-17:/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.basic-card support in PaymentRequest2017-06-14T18:28:40ZChrome Platform,2017-06-14:/feature/5408502604365824/Support the "basic-card" method for web payments.display:minimal-ui 2017-10-10T14:28:58ZChrome Platform,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,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.Intl.DateTimeFormat.prototype.formatRange2019-04-19T16:13:06ZChrome Platform,2019-04-19:/feature/5077134515109888/Adds formatRange() and formatRangeToParts() methods to Intl.DateTimeFormat to format a range of times between two dates, such as 'Jan 10 – 20, 2007', or 'Jan 10 – Feb 20, 2007'.PointerEvent.getPredictedEvents()2019-02-26T15:58:29ZChrome Platform,2019-02-26:/feature/5765569655603200/This method will 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.Shape Detection API2019-02-20T08:11:01ZChrome Platform,2019-02-20:/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.CanvasRenderingContext2D.getContextAttributes()2019-01-07T22:38:30ZChrome Platform,2019-01-07:/feature/6545516187877376/This method allows web developers to read back the ContextAttributes consumed by the platform and compare them to what were requested. Shipping this method will allow lining up with WebGL's homonymous method. [1] Policy: Oversized images2019-01-18T22:10:35ZChrome Platform,2019-01-18:/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 'oversized-images'. By default, 'oversized-images' is allowed in all frames.Feature Policy: Unoptimized images2019-01-18T22:10:14ZChrome Platform,2019-01-18:/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 'unoptimized-images'. By default, 'unoptimized-images' is allowed in all frames.Autoplay Policy for Web Audio2018-10-29T16:08:46ZChrome Platform,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 attribute2019-02-08T12:00:35ZChrome Platform,2019-02-08:/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. Wake Lock API based on Promises2018-12-18T15:32:08ZChrome Platform,2018-12-18:/feature/4636879949398016/The Wake Lock API brings a standard, secure, and safe way to prevent some device features such as the screen or CPU cycles going into power saving state. In this latest iteration of API we aim to address some of the shortcomings of the older api which was limited to screen Wake Lock and didn’t address some of the security and privacy issues. This 2nd iteration of Wake lock API makes use of Promises and introduces Wake Lock Types.Feature Policy: Legacy Image Format 2018-08-17T15:39:59ZChrome Platform,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: layout-animations2018-11-29T16:05:06ZChrome Platform,2018-11-29:/feature/5209780754841600/This feature policy allows developers to selectively disable certain CSS animations through the Feature-Policy HTTP header or the <iframe> "allow" attribute. Slow and inefficient CSS animations add delays to layout and paint intervals. This policy lets developers restrict layout-related animations on their own web page or on certain third-party origins in embedded contents.Feature Policy: Unsized Media2018-08-14T21:34:21ZChrome Platform,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. Media Capabilities: encoding2019-04-03T14:51:57ZChrome Platform,2019-04-03:/feature/5123719190020096/This is an API for querying the user agent about a device's encoding capabilities for the purpose of recording or transmitting.Network Information: saveData 2017-12-14T18:02:06ZChrome Platform,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,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,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,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,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 DB: Replace DOMError with DOMException2017-06-14T18:28:46ZChrome Platform,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. or does logging (e.g. transaction.error.message) will be unaffected.iframe[seamless] attribute2017-06-14T18:29:16ZChrome Platform,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,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.IntersectionObserver V22019-01-22T21:14:32ZChrome Platform,2019-01-22:/feature/5878481493688320/Augment IntersectionObserver to report information about occlusion and visual effects. Currently, IntersectionObserver does not consider whether a target element has been painted over (“occluded”) by other content or whether any visual effects have been applied which may alter or obscure the element’s display. This change adds a boolean field to IntersectionObserverNotification, indicating whether the UA can guarantee that the target will be displayed unoccluded and without visual effects.<virtual-scroller>2019-03-05T18:56:42ZChrome Platform,2019-03-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". This will be implemented as a built-in module.CSP 'navigate-to' directive2018-04-25T04:56:47ZChrome Platform,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,, 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.Consolidate standard and non-standard constraints under standard syntax2019-01-28T15:47:07ZChrome Platform,2019-01-28:/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. The plan with current nonstandard constraints is to remove support for those that have little usage and propose others for standardization, then remove support for the old syntax. Delayed Dispatch of PerformanceEntries2019-02-06T17:27:26ZChrome Platform,2019-02-06:/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,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 Pan/Tilt2019-03-25T03:07:55ZChrome Platform,2019-03-25:/feature/5570717087170560/This feature allows developers to pan and tilt the camera using media constraints in getUserMedia(). ImageCapture support for exposureTime constraint2018-07-16T14:36:38ZChrome Platform,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,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,2017-06-14:/feature/5669292892749824/IndexedDB observers allow a developer to listen to changes to their database, including changes from other browsing contexts.Intl.NumberFormat Unified API Proposal2019-01-17T01:31:03ZChrome Platform,2019-01-17:/feature/5430420699086848/This feature improves Intl.NumberFormat by adding support for measurement units, currency and sign display policies, and scientific and compact notation.Is-Input-Pending2019-03-04T20:56:03ZChrome Platform,2019-03-04:/feature/5719830432841728/This API enables developers to complete their work as fast as possible if the user isn't interacting, but respond to user input as fast as possible if input occurs.Lazily load below-the-fold iframes and images2019-04-10T08:23:27ZChrome Platform,2019-04-10:/feature/5645767347798016/Support deferring the load of below-the-fold iframes and images on the page until the user scrolls near them. This is to reduce data usage, memory usage, and speed up above-the-fold content. Web pages can also use a per-element "loading" attribute to either force or opt-out of the browser's default LazyLoad behavior.Make MediaDevices and related functions and types secure context only2019-03-04T21:42:39ZChrome Platform,2019-03-04:/feature/4924861776396288/Make the MediaDevices interface and its related functions and types, including getUserMedia(), enumerateDevices() and getDisplayMedia() available only in secure contexts.Media Capture Depth Stream Extensions2018-10-22T15:04:34ZChrome Platform,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,2018-10-16:/feature/5167313951129600/The shape feature describes the general shape of the targeted display area of the output device. Network Error Logging: request_headers and response_headers2018-11-26T18:25:08ZChrome Platform,2018-11-26:/feature/5707065825689600/The new request_headers and response_headers fields in a NEL policy instruct the user agent to include the values of arbitrary request and response headers when constructing an NEL report about a request.PaymentRequestEvent.changePaymentMethod()2019-04-18T17:59:00ZChrome Platform,2019-04-18:/feature/5698314223747072/Enables payment handlers to get the updated total from the merchant in response to a change in payment instrument selected within the payment handler. This fires the PaymentMethodChangeEvent on the merchant website.Support for SVG in favicons2019-04-10T16:38:04ZChrome Platform,2019-04-10:/feature/5180316371124224/Allows using images in SVG format as favicons with <link rel="icon">.UI Automation Provider Mapping2019-04-24T04:07:42ZChrome Platform,2019-04-24:/feature/5657408351240192/This effort aims to implement Windows UI Automation Provider API mappings. Doing so will enable programatic access to most UI elements as well as web content to assistive technology applications such as screen readers.Web notification inline replies2018-07-10T15:47:10ZChrome Platform,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,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).Bidi caret affinity2018-11-30T16:34:46ZChrome Platform,2018-11-30:/feature/5497589902344192/Blink has confusing behaviors and bugs with bidirectional text selection and editing. The main cause is bidi adjustment, which maps between logical and visual positions at bidi boundaries. To fix these bugs, bidi affinity is replacing bidi adjustment. Users won't see many differences, but developers will. See the comments box for specifics.CSS Selector Pseudo class :dir()2017-09-17T08:10:32ZChrome Platform,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 property2019-01-18T17:15:45ZChrome Platform,2019-01-18:/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,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.Get Installed Related Apps API2019-03-12T14:46:13ZChrome Platform,2019-03-12:/feature/5695378309513216/The Get Installed Related Apps API (navigator.getInstalledRelatedApps) provides sites access to if their corresponding related applications are installed. Sites are only allowed to use this API if the native application has an established association with the web origin. The Origin Trial is expected to last until Chrome 76. You can find details here: Platform,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.Scroll Timeline for Web Animations2019-01-16T17:44:03ZChrome Platform,2019-01-16:/feature/6752840701706240/ScrollTimeline is an extension for the Web Animations spec, which allows developers to use the position of a scroller as an input 'time' rather than the default monotonic clock time. This enables fast scroll-based animations, such as a shrinking navigation bar, without requiring user script execution.Send Mouse Events to Disabled Form Controls2017-06-14T18:28:52ZChrome Platform,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,2017-06-14:/feature/5768542523752448/The API would prevent the device from entering a power-saving state (e.g. turning off the screen).Subresource prefetching+loading via Signed HTTP Exchange2019-03-14T01:59:58ZChrome Platform,2019-03-14:/feature/5126805474246656/Support signed exchange subresource prefetching and loading by extending the HTTP link header.type in PerformanceObserver's observe() dictionary2019-02-01T17:16:34ZChrome Platform,2019-02-01:/feature/5440340169326592/The addition of the 'type' member will allow passing in parameters specific to one entry type when calling observe() within PerformanceObserver. Right now, 'entryTypes' is used to specify potentially multiple entry types to be observed at the same time. An observer can only use 'entryTypes' or 'type'. An observer can only specify additional parameters when using 'type'. An observer can still observe multiple entry types by calling observe() with 'type' multiple times.Remove full text search (FTS) support from WebSQL2017-09-17T08:25:45ZChrome Platform,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.