Intent to Ship: Pause media playback on not-visible iframes

198 views
Skip to first unread message

Chromestatus

unread,
Sep 4, 2026, 12:49:26 PMSep 4
to blin...@chromium.org, gabrie...@microsoft.com, ste...@microsoft.com
Contact emails
gabrie...@microsoft.com, ste...@microsoft.com

Explainer
https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/IframeMediaPause/iframe_media_pausing.md

Specification
https://wicg.github.io/iframe-media-pausing

Summary
Adds a "media-playback-while-not-visible" permission policy to allow embedders to pause audible media playback of embedded iframes which are currently hidden - i.e. "display" property set to "none"; "visibility" property set to "hidden"; or zero-area (width or height equal to 0). While hidden, attempts made by the embedded iframe to render audible media will be blocked. When the frame is shown again the prohibitions should be lifted. This should allow developers to build more user-friendly experiences and to also improve the performance by letting the browser handle the playback of content that is not visible to users.

Blink component
Blink>Media

Web Feature ID
https://github.com/web-platform-dx/web-features/issues/4292

Motivation
Web applications that host embedded media content via iframes may wish to respond to application input by temporarily hiding the media content. These applications may not want to unload the entire iframe when it's not rendered since it could generate user-perceptible performance and experience issues when showing the media content again. At the same time, the user could have a negative experience if the media continues to play and emit audio when not rendered. This proposal aims to provide web applications with the ability to control embedded media content in such a way that guarantees their users have a good experience when the iframe's render status is changed.

Initial public proposal
No information provided

TAG review
https://github.com/w3ctag/design-reviews/issues/1084

TAG review status
Issues addressed

Origin Trial Name
media-playback-while-not-visible Permission Policy

Goals for experimentation
Gather feedback from web developers and validate that the current prototype implementation works as expected. We have added telemetry to measure how the feature is being exercised by users: - HTMLMediaElement's: - # of pauses while hidden - # of pauses because got hidden during playback - WebAudio AudioContext's - # of interruptions while hidden - # of interruptions because got hidden during playback

Chromium Trial Name
MediaPlaybackWhileNotVisiblePermissionPolicy

Origin Trial documentation link
https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/IframeMediaPause/iframe_media_pausing.md

WebFeature UseCounter name
kMediaPlaybackWhileNotVisiblePermissionPolicy

Risks


Interoperability and Compatibility
Firefox has already shown official support, although, we can't say for sure when other browsers are going to implement this feature. Safari also seems to be unofficially supportive: https://github.com/whatwg/html/issues/10208#issuecomment-3060151372

Gecko: Positive (https://github.com/mozilla/standards-positions/issues/1082)

WebKit: No signal (https://github.com/WebKit/standards-positions/issues/409)

Web developers: Positive (https://github.com/whatwg/html/issues/10208) The community is supportive of resolving this problem using a permission policy. A commenter mentioned that the proposal fits well within the Permissions Policy API specification. They also agree that there is no workaround for this problem using current web API's. Feedback has been addressed to also include other invisibility scenarios like zero-area (height or width equal to 0) and to change the API name from "not-rendered" to "not-visible".

Other signals:

Ergonomics
This feature will be used with other audio rendering API's, like HTMLMediaElement and Web Audio. This new behavior should only take effect if web pages explicitly opt-in by overriding the permission policy's default state. Moreover, once the permission policy is used, it should help Chromium to be more optimized by pausing audio rendering for content that is not visible for the user.

Activation
Developers need to opt-in by setting "allow" property of an iframe. For example: <iframe src="https://foo.media.com" allow="media-playback-while-not-visible 'none'"></iframe>

WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?

None. This feature adds a new behavior that applications need to opt-in.


Debuggability
No information provided

Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
Yes

Is this feature fully tested by web-platform-tests?
Yes
- https://wpt.fyi/results/html/semantics/embedded-content/media-elements/media-playback-while-not-visible-permission-policy?label=master&label=experimental&aligned&q=media-playback-while-not-visible-permission-policy - https://wpt.fyi/results/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy?label=master&label=experimental&aligned&q=media-playback-while-not-visible-permission-policy

DevTrial instructions
https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/IframeMediaPause/HOWTO.md

Flag name on about://flags
media-playback-while-not-visible-permission-policy

Finch feature name
MediaPlaybackWhileNotVisiblePermissionPolicy

Rollout plan
Will ship enabled for all users

Requires code in //chrome?
False

Tracking bug
https://issues.chromium.org/issues/351354996

Availability expectation
The feature will be available in Chromium browsers at first. Despite this, Mozilla supports the feature too and will implement it at some point.

Adoption expectation
Feature is used by specific partners to provide functionality within 3 months of launch in Chrome.

Non-OSS dependencies

Does the feature depend on any code or APIs outside the Chromium open source repository and its open-source dependencies to function?

None.

Estimated milestones
Shipping on desktop155
Origin trial desktop first137
Origin trial desktop last142
Origin trial extension 1 end milestone145
DevTrial on desktop137
Shipping on Android155
Origin trial Android first137
Origin trial Android last142
Shipping on WebView155
Origin trial WebView first137
Origin trial WebView last142


Anticipated spec changes

Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (e.g. links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (e.g., changing to naming or structure of the API in a non-backward-compatible way).

Currently the feature is spec'ed to work with HTMLMediaElements and Web Audio AudioContexts. We'll work on incrementally integrating it with other media-playback apis like PiP, Audio Session API, and Media Session API: - https://github.com/WICG/iframe-media-pausing/issues/2 - https://github.com/WICG/iframe-media-pausing/issues/3 - https://github.com/WICG/iframe-media-pausing/issues/4

Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5082950457884672?gate=5168819537707008

Links to previous Intent discussions
Intent to Prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/PH7PR00MB1638C5FA59458CE0BBDC1FA6D5D72%40PH7PR00MB1638.namprd00.prod.outlook.com
Intent to Experiment: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6806b191.170a0220.2f866a.0286.GAE%40google.com


This intent message was generated by Chrome Platform Status.

Yoav Weiss (@Shopify)

unread,
Sep 9, 2026, 6:56:29 AMSep 9
to blink-dev, Chromestatus, gabrie...@microsoft.com, ste...@microsoft.com
LGTM1

Should this move to HTML? Somewhere else?
 
Shipping on desktop155 Origin trial desktop first137 Origin trial desktop last142 Origin trial extension 1 end milestone145 DevTrial on desktop137 Shipping on Android155 Origin trial Android first137 Origin trial Android last142 Shipping on WebView155 Origin trial WebView first137 Origin trial WebView last142

Mike Taylor

unread,
Sep 9, 2026, 10:45:20 AMSep 9
to Yoav Weiss (@Shopify), blink-dev, Chromestatus, gabrie...@microsoft.com, ste...@microsoft.com

LGTM2

--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/38ec928e-3bcf-422c-9a69-25db9e078cd9n%40chromium.org.

Chris Harrelson

unread,
Sep 9, 2026, 11:20:57 AMSep 9
to Mike Taylor, Yoav Weiss (@Shopify), blink-dev, Chromestatus, gabrie...@microsoft.com, ste...@microsoft.com
Reply all
Reply to author
Forward
0 new messages