Contact emails
fer...@chromium.org,
kenji...@chromium.org
Explainer
None
Specification
https://github.com/whatwg/html/pull/7915
Design docs
https://github.com/fergald/docs/blob/master/explainers/permissions-policy-deprecate-unload.md
Summary
A Permission-Policy for creating unload event listeners will be added.
Initially the default policy will be to allow but Chrome will gradually migrate the default policy to deny creating unload event listeners until it is fully opt-in. The eventual goal is to remove support for unload event.
Blink component
Blink>PermissionsAPI
TAG review
None
TAG review status
Not applicable
Origin Trial Name
DeprecateUnloadOptOut
Chromium Trial Name
DeprecateUnloadOptOut
Origin Trial documentation link
https://github.com/fergald/docs/blob/master/explainers/permissions-policy-deprecate-unload.md
Risks
Interoperability and Compatibility
If no other browsers implement this, there is a risk that devs continue to use unload widely and pages malfunction on chrome. However given that alternatives to unload exist AND we are providing an opt-out it seems entirely possible for sites that are actively maintained to move off unload.
Gecko: Closed Without a Position
(
https://github.com/mozilla/standards-positions/issues/691#issuecomment-1484997320)
It's possible that pages are depending on `unload` handlers in subframes for functionality even without any main frame navigation. We should try to understand how common this is before breaking it. It should be possible to measure how often subframe unloads fire when the mainframe is not navigating. This will give us an upper bound on the size of the problem,
- Chrome: we have landed code to measure the occurrence of unload in different scenarios. We will report back the findings.
WebKit: Closed Without a Position
(
https://github.com/WebKit/standards-positions/issues/127)
Web developers: Positive
(
https://groups.google.com/a/chromium.org/g/bfcache-dev/c/zTIMx7u4uxo/m/-M4IS6LDBgAJ)
We have had some positive response and no negative responses from devs
Other signals:
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?
N/A this is not rolling out to WebView.
Goals for experimentation
Reason this experiment is being extended
The deprecation was paused since early 2024, it is now resuming.
Ongoing technical constraints
Debuggability
Will this feature be supported on all six Blink platforms
(Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
No
[NOT FINAL] On WebView, we will introduce the Permissions-Policy but not move the default to "deny". BFCache does not work on WebView, so the benefit is lower. Meanwhile the risk seems higher as we have far less visibility into the HTML being run in WebViews.
Yes
https://wpt.fyi/results/permissions-policy/experimental-features?label=master&label=experimental&aligned&view=subtest&q=unload
Flag name on about://flags
Finch feature name
DeprecateUnload
Requires code in //chrome?
False
Tracking bug
http://crbug.com/40063983
Estimated milestones
Origin trial desktop first |
122 |
Origin trial desktop last |
146 |
Origin trial extension 1 end milestone |
146 |
DevTrial on desktop |
117 |
Origin trial Android first |
122 |
Origin trial Android last |
146 |
DevTrial on Android |
117 |
Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5579556305502208?gate=5133680617717760
Links to previous Intent discussions
Intent to Experiment:
https://groups.google.com/a/chromium.org/g/blink-dev/c/dvusqw9-IhI/m/IbI2V-3VAQAJ