[Premature Send. Full message below]

We are tracking UMA for when the permission name "window-placement" is
parsed (e.g  all calls to navigator.permissions.query({name:
'window-placement'}) increment the counter. That function will throw an
exception *"The provided value 'window-placement' is not a valid enum value
of type PermissionName." *once we remove the permission. So based on the
metrics, 0.006% of page loads that aren't handling the exception could
break. I strongly suspect most sites would have exception handling since no
other browser has implemented this permission string.

We are also tracking UMA for window-placement permission policy. So
everytime the browser parcels "window-placement" in a header (e.g.
Permissions-Policy:
window-placement=(self)) or in an iframe (e.g. <iframe src="
https://example.com"; allow="window-placement"></iframe>), the counter is
incremented. So ~0.015% of page loads are parsing the window-placement
policy. This scenario would not explicitly break a page, but the policy
would silently be ignored and the corresponding permission denied if the
site did not also have window-management specified. Again, no other browser
has implemented this string, so I suspect sites legitimately using this
would have some kind of fallback for non-chromium browsers anyway.

Regards,
Brad


On Tue, Feb 20, 2024 at 11:24 AM Brad Triebwasser <btri...@chromium.org>
wrote:

> Certainly.
>
> We are tracking UMA both for when the permission name "window-placement"
> is parsed (e.g  all calls to navigator.permissions.query({name:
> 'window-placement'}) increment the counter. That function will throw an
> exception *"The provided value 'window-placement' is not a valid enum
> value of type PermissionName."*
>
> On Mon, Feb 19, 2024 at 12:10 PM Yoav Weiss (@Shopify) <
> yoavwe...@chromium.org> wrote:
>
>>
>>
>> On Fri, Feb 16, 2024 at 8:19 PM Brad Triebwasser <btri...@chromium.org>
>> wrote:
>>
>>> 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>
>>>
>>
>> Can you detail what these two different counters represent?
>> Our typical threshold is about half of the lower one (~0.0003%), but that
>> varies based on the potential breakage.
>>
>> What would breakage here look like?
>>
>>
>>>  (% 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, so the main metric for potential breakage here is
>>> 0.006% of page loads. 0.006% seems low in my opinion, but I'm curious if
>>> there is any guidance on a lower target % we should be aiming for prior to
>>> removing this feature.
>>>
>>> I separately calculated that the 200 origins make up about 0.0058% of
>>> total origins tracked by UKM (if that's what you're asking), which aligns
>>> with the UMA figures. I also want to note that 50 of those origins are
>>> likely the same (spam?) website (e.g. https://aaaa123.com,
>>> https://aaaa124.com, https://aaaa125.com). You can see examples of this
>>> in the UMA sample data
>>> <https://chromestatus.com/metrics/feature/timeline/popularity/4448>.
>>>
>>> Regards,
>>> Brad
>>>
>>> On Thu, Feb 15, 2024 at 12:42 AM Yoav Weiss (@Shopify) <
>>> yoavwe...@chromium.org> wrote:
>>>
>>>> 200 origins sounds like a lot. Do you know what %age of page views
>>>> those origins would represent?
>>>>
>>>> On Wed, Feb 14, 2024 at 11:32 PM Brad Triebwasser <btri...@chromium.org>
>>>> wrote:
>>>>
>>>>> *tl;dr:* We expect at most 200 origins could break, and only ~30 of
>>>>> those may be legitimately using the API.
>>>>>
>>>>> We do track UMA/UKM for the primary API entrypoint function (
>>>>> GetScreenDetails
>>>>> <https://developer.mozilla.org/en-US/docs/Web/API/Window/getScreenDetails>)
>>>>> which we expect nearly all legitimate usage of the API to use. We see 60
>>>>> unique origins invoking GetScreenDetails, dominated by a handful of
>>>>> origins (which align with the partners we know are using the API).
>>>>>
>>>>> For reference, 2500 unique origins are checking the window-management
>>>>> permission, and 200 unique origins checking the old window-placement
>>>>> permission (82% of those origins are *not *logging any
>>>>> GetScreenDetails calls).
>>>>>
>>>>> As Mike mentioned, the only breakage here would be a site using 
>>>>> navigator.permissions.query({name:
>>>>> 'window-placement'}) without error handling which according to UKM
>>>>> data would be roughly 200 origins (at most 18% of those may be
>>>>> legitimately using the API).
>>>>>
>>>>> I believe 200 unique origins is a relatively low number of potential
>>>>> breakages, especially considering our data strongly suggests a majority of
>>>>> that is fingerprinting.
>>>>>
>>>>> Regards,
>>>>> Brad
>>>>>
>>>>>
>>>>> On Mon, Feb 12, 2024 at 6:27 AM Mike Taylor <miketa...@chromium.org>
>>>>> wrote:
>>>>>
>>>>>> 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 <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
>>>>>>>>>
>>>>>>>>> Specification
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 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 to
>>>>>>>>> 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: Positive comment
>>>>>>>>> <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
>>>>>>>>>
>>>>>>>>> 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
>>>>>>>>>
>>>>>>>>> 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
>>>>>>>>>
>>>>>>>>> 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/CALEeEUDd9YoriLSXG3h7usjpyJThZ4W3%2BixTCdVK2PhS0p9_Rw%40mail.gmail.com
>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALEeEUDd9YoriLSXG3h7usjpyJThZ4W3%2BixTCdVK2PhS0p9_Rw%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/CALEeEUCgDTY_w%3Dz5eiYzqvLC3g%2B9Nh3-vNGabc50%3D5r6AQPMPA%40mail.gmail.com.

Reply via email to