On Tuesday, February 20, 2024 at 8:32:33 PM UTC+1 Brad Triebwasser wrote:

[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.


Would it be possible to manually inspect a few samples to see how many of 
these sites properly handle the exception? 
https://chromestatus.com/metrics/feature/timeline/popularity/4448 seems to 
have a list of 100+ origins


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/CALEeEUCdqsmmEhBROkinxbzTULFPX
nC8goANs6-_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/CALEeEUDd9YoriLSXG3h7usjpyJThZ
4W3%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/2ff5248d-c40b-413d-88b9-e596e6a0f7bdn%40chromium.org.

Reply via email to