Agree that the risk feels low... one thing to perhaps check for (if you have UKM or use counters) is to see if there is any legit usage on sites of `navigator.permissions.query()` that isn't catching errors, since that will throw a TypeError and can break a page.

On 2/12/24 9:16 AM, Rick Byers wrote:
Presumably the risk of legitimate breakage here is bounded by the use of the Window Management API, right? Are there any UseCounters for the various Window Management operations? I couldn't find any at a quick glance. I imagine legitimate usage is dominated by a few sites with an obvious need (do we have UKM data?), and such sites should always degrade gracefully without window management capabilities, right?

My intuition is that the compat risk here should be extremely low, but I hope we have some data to validate that which isn't tainted by the fingerprinting usage.

Rick


On Wed, Feb 7, 2024 at 1:59 PM Brad Triebwasser <btri...@chromium.org> wrote:

    +blink-dev@chromium.org <mailto:blink-dev@chromium.org> / Reply All

        Thanks for your feedback, Mike! Recipes inline:

        On Tue, Feb 6, 2024 at 9:36 PM Mike Taylor
        <miketa...@chromium.org> wrote:

            Hi Brad,

            On 2/6/24 3:49 PM, Brad Triebwasser wrote:


                    Contact emails

            btri...@chromium.org


                    Explainer

            
https://github.com/w3c/window-management/blob/main/EXPLAINER_spec_and_permission_rename.md
            
<https://github.com/w3c/window-management/blob/main/EXPLAINER_spec_and_permission_rename.md>


                    Specification

            
https://w3c.github.io/window-management/#api-permission-api-integration
            
<https://w3c.github.io/window-management/#api-permission-api-integration>


                    Summary

            Removes the legacy "window-placement" alias for
            permission and permission policy "window-management".
            This is a follow-up
            tohttps://chromestatus.com/feature/5146352391028736
            <https://chromestatus.com/feature/5146352391028736>and
            corresponding blink-dev PSA
            
<https://groups.google.com/a/chromium.org/g/blink-dev/c/Hf2b1-S39Uw/m/YAEC_0DSBQAJ>.
            The "window-placement" alias has been showing console
            deprecation warnings since M113
            
<https://chromium.googlesource.com/chromium/src.git/+/13204be718225ae09c8ba7e36b055a369c36c878>.
            We will disable WindowPlacementPermissionAlias
            
<https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/runtime_enabled_features.json5?q=-f:gen%2F%20AND%20-f:out%2F%20WindowPlacementPermissionAlias>by
            default, and remove the flag and legacy code shortly
            thereafter.

            I'm a little bit confused here - it seems like the PSA of
            the alias is being treated as the beginning of a
            deprecation, is that correct? My interpretation of "will
            lead to a deprecation and removal" from the original
            message was that it would be followed with an Intent to
            Deprecate and Remove (per
            https://www.chromium.org/blink/launching-features/#deprecate),
            but it seems like that step of the process was skipped.

         Yes, I never sent out a separate "Intent to Deprecate" in
        this case. The original PSA
        
<https://groups.google.com/a/chromium.org/g/blink-dev/c/Hf2b1-S39Uw/m/YAEC_0DSBQAJ>
 was
        intended to be a hybrid of the introduction of the new names
        and deprecation of the old ones so we also landed deprecation
        code (DevTools deprecation warnings etc.) during that time.
        Since these have already been "deprecated" since M113, I
        wasn't sure if a separate "intent to deprecate" was
        appropriate in this case since we already deprecated them and
        monitored usage to be sufficiently low, but I can back-up and
        send an I2D if recommended here.


                    Blink component

            Blink>Screen>MultiScreen
            
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EScreen%3EMultiScreen>


                    TAG review

            No feedback was specifically requested for the permission
            rename, however related TAG reviews have been requested
            with both the old (1
            <https://github.com/w3ctag/design-reviews/issues/413>, 2
            <https://github.com/w3ctag/design-reviews/issues/602>)
            and new terminology (3
            <https://github.com/w3ctag/design-reviews/issues/840>).


                    TAG review status

            Not applicable


                    Risks


                    Interoperability and Compatibility

            There are low compatibility risks. Usage for the legacy
            permission and permission policy are ~0.006
            
<https://chromestatus.com/metrics/feature/timeline/popularity/4448>and
            ~0.015
            
<https://chromestatus.com/metrics/feature/timeline/popularity/4450>(%
            page loads) while the new variants are ~1.166
            
<https://chromestatus.com/metrics/feature/timeline/popularity/4447>and
            ~3.066
            
<https://chromestatus.com/metrics/feature/timeline/popularity/4449>(%
            page loads) respectively, indicating most usage has
            already migrated.

            These percentages are still relatively high, especially
            for the permissions policy variant. Besides the obvious
            fingerprint.js usage (which shouldn't break pages... I
            would hope), can you describe what the failure mode is
            after the proposed removal is? Have you dug into the
            remaining usage to verify?
            Yes, I dug into the remaining usage quite extensively via
            Web Archive queries and UKM and couldn't find any usages
            other than what looked like fingerprinting. After removal,
            the permission API will produce an error due to an unknown
            permission, and the permission policy will silently fail
            (e.g. iframes with allow='window-placement' will not have
            access to the features). I beleive that the numbers
            shifting several orders of magnitude in favor of the new
            strings seems to indicate legitamite usage has migrated,
            and the remainig usage likely fingerprinting.

            Gecko: No signal

            Firefox has not implemented the API and corresponding
            permission yet. The original API signal request is here
            <https://github.com/mozilla/standards-positions/issues/542>.


            WebKit: No signal

            Safari has not implemented the API and corresponding
            permission yet. The original API signal request is here
            <https://github.com/WebKit/standards-positions/issues/117>.

            Mind linking to the original API position requests here in
            this thread?
            Added links above to the original API signal request.
            FWIW, we have since filed additional requests for
            functionality related to window management, not
            necessarily window *placement* related (hence motivation
            for renaming the API): eg 1
            <https://github.com/WebKit/standards-positions/issues/96>
            2 <https://github.com/mozilla/standards-positions/issues/712>

            Web developers: We have communicated internally with
            partners using the API who have expressed commitment to
            updating the permission strings in their code.


            Other signals: Positivecomment
            
<https://github.com/w3c/window-placement/pull/115#pullrequestreview-1159676614>from
            W3C WG Chair


                    WebView application risks

            This is considered low risk. It removes an alias without
            any change in behavior of the underlying API.

            Does this permission do anything on WebView? I would have
            guessed no.
            Your correct, this window management API doesn't apply to
            WebView so there is no impact there.


                    Debuggability

            Disabling WindowPlacementPermissionAlias
            
<https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/runtime_enabled_features.json5?q=-f:gen%2F%20AND%20-f:out%2F%20WindowPlacementPermissionAlias>will
            stop DevTools deprecation warnings for usage of the
            legacy strings and instead will act as if they did not
            exist at all (e.g. Permission API will produce an error
            when using "window-placement").



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

            No. This feature is not supported on Android.


                    Is this feature fully tested by
                    web-platform-tests
                    
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?

            Yes. Web Platform tests have already been migrated to the
            new alias:

            
https://github.com/web-platform-tests/wpt/tree/master/window-management
            
<https://github.com/web-platform-tests/wpt/tree/master/window-management>


                    Flag name on chrome://flags

            None


                    Finch feature name

            WindowPlacementPermissionAlias


                    Requires code in //chrome?

            False


                    Tracking bug

            https://bugs.chromium.org/p/chromium/issues/detail?id=1328581
            <https://bugs.chromium.org/p/chromium/issues/detail?id=1328581>


                    Estimated milestones

            M123 (flag disable) M125 (flag/code removal)


                    Anticipated spec changes

            None


                    Link to entry on the Chrome Platform Status

            https://chromestatus.com/feature/5137018030391296
            <https://chromestatus.com/feature/5137018030391296>


            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/CALEeEUCdqsmmEhBROkinxbzTULFPXnC8goANs6-_O8n3%2B%3D47hQ%40mail.gmail.com
            
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALEeEUCdqsmmEhBROkinxbzTULFPXnC8goANs6-_O8n3%2B%3D47hQ%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/CALEeEUBYrF50-%3Dp8umAxQLaEttR-jW4WRfWyF5AATV2p29w17w%40mail.gmail.com
    
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALEeEUBYrF50-%3Dp8umAxQLaEttR-jW4WRfWyF5AATV2p29w17w%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/dc138a71-dc8f-4dca-93ac-77a2e7b8bd1d%40chromium.org.

Reply via email to