LGTM1

On Fri, Jun 30, 2023 at 9:27 AM 'Fergal Daly' via blink-dev <
blink-dev@chromium.org> wrote:

> Contact emailsfer...@chromium.org, kenjibah...@chromium.org
>
> Explainer
> https://github.com/fergald/docs/blob/master/explainers/permissions-policy-unload.md
>
> Specificationhttps://github.com/whatwg/html/pull/7915
>

IMO, it's fine to approve this based on this PR, even if it hasn't landed
yet, given the browser positions below.


>
>
> Design docs
>
> https://github.com/fergald/docs/blob/master/explainers/permissions-policy-unload.md
>
> Summary
>
> This feature allows pages to disable the running of unload event handlers.
> The goals are: - allow sites that have removed all unload handlers to not
> regress (i.e. accidentally adding new ones) - allow sites to “remove”
> (skip) unload handlers (e.g. if updating the code is infeasible, or if they
> have nondeterministic chains of third parties and would rather not risk the
> BFCache benefits over unload handlers in third party code). Unload event
> handlers are problematic for various reasons and prevent use of BFCache on
> Desktop (see https://web.dev/bfcache/#never-use-the-unload-event). This
> is the first step to deprecating and removing unload handlers.
>
>
> Blink componentBlink>PermissionsAPI
> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EPermissionsAPI>
>
> TAG reviewhttps://github.com/w3ctag/design-reviews/issues/738
>
> TAG review statusPending
>
> Risks
>
>
> Interoperability and Compatibility
>
> 3rd-party frames that rely on unload may not work as expected when
> navigating away. This is solvable by the frame authors by use of
> alternatives to unload and is unlikely to impact users. See detailed
> discussion.
> https://github.com/fergald/docs/blob/master/explainers/permissions-policy-unload.md#concerns-about-giving-embedders-control-over-the-nonexecution-of-iframe-code
>
>
> *Gecko*: Negative (
> https://github.com/w3c/webappsec-permissions-policy/issues/444#issuecomment-1047829132)
> FF objects to this similar to sync-xhr and document-domain providing a way
> to cause cross-origin interference with script. Explainer addresses this (
> https://github.com/fergald/docs/blob/master/explainers/permissions-policy-unload.md#concerns-about-giving-embedders-control-over-the-nonexecution-of-iframe-code)
> At a recent TPAC meeting with Mozilla people present, no negative feedback
> was received. Request for formal position is here
> https://github.com/mozilla/standards-positions/issues/691
>
> *WebKit*: Negative (
> https://github.com/WebKit/standards-positions/issues/127) Concerned that
> embedders gain a way to turn off a code-path in the embedded frame.
>

I think it's important to continue those discussions with other vendors and
try to eventually bring them on board, but at the same time, I agree with
your position that we need to put users first.
Unload events are causing real performance harm today, and we should at
least give top-level site owners the ability to stop that harm, even if
created by their third-parties.

I haven't seen in the above discussions any concrete threats or attacks
enabled by this cross-origin interference. And as you say, we already have
similar policies around sync-XHR and document.write.


>
> *Web developers*: Positive Private discussions with devs are positive.
> Sites that have made efforts to remove all unload handlers want to use this
> to prevent accidental returns. Also some providers of 3rd-party iframes
> which have content outside of their control (e.g. ad network) want to
> guarantee themselves to be unload-free.
> https://github.com/w3c/webappsec-permissions-policy/issues/444#issuecomment-1130401722
>  Also
> positive feedback about using this to deny unload as a source of security
> problems.
> https://github.com/w3c/webappsec-permissions-policy/issues/444#issuecomment-1222973324
>
> *Other signals*: TAG review is here but has no feedback on the API
> itself. https://github.com/w3ctag/design-reviews/issues/738
>
> 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 known
>
>
> Debuggability
>
> When this header is present, attempts to add an unload event handler will
> result in an error on the console (just as would happen for any other
> Permissions Policy violation).
>
>
> Will this feature be supported on all six Blink platforms (Windows, Mac,
> Linux, Chrome OS, Android, and Android WebView)?Yes
>
> Is this feature fully tested by web-platform-tests
> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
> ?Yes
>
> DevTrial instructions
> https://chromium.googlesource.com/chromium/src/+/main/docs/experiments/permissions-policy-unload.md
>
> Flag name on chrome://flagsenable-experimental-web-platform-features
>
> Finch feature name
>
> Non-finch justificationNone
>
> Requires code in //chrome?False
>
> Tracking bughttps://crbug.com/1324111
>
> Launch bughttps://crbug.com/1357927
>
> Estimated milestones
> Shipping on desktop 115
> OriginTrial desktop last 112
> OriginTrial desktop first 107
> DevTrial on desktop 107
> Shipping on Android 115
> OriginTrial Android last 112
> OriginTrial Android first 107
> DevTrial on Android 107
> Shipping on WebView 115
> OriginTrial webView last 112
> OriginTrial webView first 107
>
> 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).
> https://github.com/whatwg/html/pull/7915 although it's unclear that we
> can ever spec this.
>
> Link to entry on the Chrome Platform Status
> https://chromestatus.com/feature/5760325231050752
>
> Links to previous Intent discussionsIntent to prototype:
> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAAozHLkvhEtVOkvW4iXCbMf5a84ypGjD4arZtpS%3D0Okx6BPDdQ%40mail.gmail.com
>  Ready
> for Trial:
> https://groups.google.com/a/chromium.org/g/blink-dev/c/38Dpu-uhwFc
> Intent to Experiment:
> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAAozHLkOeqfqZ0PtzUDdowXbBuMp4oYS%3DQ%2BSQCogY%2BkBpGAYXQ%40mail.gmail.com
> Intent to Extend Experiment:
> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAA5e69_hiyb60B9h6d88ccuoDavYnqDg89LUkgcG6iozfD8e0w%40mail.gmail.com
> Intent to Ship:
> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAA5e69_hiyb60B9h6d88ccuoDavYnqDg89LUkgcG6iozfD8e0w%40mail.gmail.com
>
>
> This intent message was generated by Chrome Platform Status
> <https://chromestatus.com/>.
>
> --
> 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+unsubscr...@chromium.org.
> To view this discussion on the web visit
> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAAozHLkuNkx7%3DBfiG2wXsu%2BqqoOb-WD6YN4gxJN%2BuTogT%3DmE3A%40mail.gmail.com
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAAozHLkuNkx7%3DBfiG2wXsu%2BqqoOb-WD6YN4gxJN%2BuTogT%3DmE3A%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfWCDUGeGYy42L7EbG7qyfrc%2BQJ7_mRywphyyAkg-Nv6tA%40mail.gmail.com.

Reply via email to