Thank you Wesley for the useful information!

> What timeline do you have in mind?
I'm not sure what reasonable timelines are, not having dealt with
deprecations before. Is 3 months for a deprecation trial acceptable?
Devtools should already have deprecation warnings
<https://source.chromium.org/chromium/chromium/src/+/main:third_party/devtools-frontend/src/front_end/generated/Deprecation.ts;l=164;drc=44db243e9d23fa831e59175b1281360404cb31ac>,
but I don't see them in my console.

I had looked at the only site listed for the
https://chromestatus.com/metrics/feature/timeline/popularity/170
use-counter. They are directly calling the API for their overlay welcome
video, but the page seemed to work fine with the API disabled. I don't
think the fullscreen actually happens, without the user interaction...

This use counter shows a spike up from December to January
https://chromestatus.com/metrics/feature/timeline/popularity/168. 5 links
are using https://f.vimeocdn.com/p/4.27.1/js/vendor.module.js, one link is
also playing an overlay video intro.

On Thu, Jan 25, 2024 at 12:25 AM Philip Jägenstedt <foo...@chromium.org>
wrote:

> I'm also happy to support a plan to deprecate and remove. The use counter
> that best represents worst-case user impact at
> https://chromestatus.com/metrics/feature/timeline/popularity/170 at
> ~0.001%. But that's only when fullscreen actually happens (on user
> interaction) and it's very hard to say what proportion of sites could
> *potentially* hit this code path, especially given the ubiquitous pattern
> of trying multiple API names that's been necessary forever with fullscreen,
> so that some sites will just fall back to a working API.
>
> What timeline do you have in mind?
>
> On Thu, Jan 25, 2024 at 2:19 AM Domenic Denicola <dome...@chromium.org>
> wrote:
>
>> Thanks Thomas for all your work here! Your HTTP Archive survey seems
>> promising to me: it sounds like there are no regressions, and you found
>> some great places to perform outreach. (Hi Wesley!)
>>
>> I'm happy to LGTM this as soon as the privacy/security reviews are
>> approved and you've picked a target experiment timeline.
>>
>> On Thu, Jan 25, 2024 at 10:00 AM Wesley Luyten <luytenwes...@gmail.com>
>> wrote:
>>
>>> Wesley from Mux here. I saw the issue come by.
>>>
>>> We'd be happy those API's could get deprecated and unified into the new
>>> one.
>>>
>>> Our Media Chrome (library, not browser) implementation handles this
>>> gracefully, some code here
>>>
>>> https://github.com/muxinc/media-chrome/blob/83c1a0f000bc8898971f030bcafa0d6df37cdc34/src/js/controller.js#L636-L636
>>>
>>> The Vimeo player uses a variant of
>>> https://github.com/bdougherty/BigScreen, a similar popular library is
>>> https://github.com/sindresorhus/screenfull
>>>
>>> Just thought to mention it but iOS never supported the generic
>>> fullscreen API until very recent
>>> https://twitter.com/jensimmons/status/1717937227190460797
>>> It always required the webkit prefixed API on the video element (not any
>>> other element like a div etc )
>>> Y'all are aware of that?
>>> On Wednesday, January 24, 2024 at 6:23:16 PM UTC-6 Thomas Guilbert wrote:
>>>
>>>> I opened a support ticket with Mux, and opened an issue for Clappr
>>>> <https://github.com/clappr/clappr/issues/2136>.
>>>>
>>>> On Wed, Jan 24, 2024 at 3:40 PM Thomas Guilbert <tgui...@chromium.org>
>>>> wrote:
>>>>
>>>>> I've created a new ChromeStatus entry
>>>>> <https://chromestatus.com/feature/5111638103687168>, and requested
>>>>> the privacy/security/debuggability gates for the deprecation trial.
>>>>>
>>>>> I audited a little more than 20 sites from the HTTP Archive. I've
>>>>> found a few JS player libraries that primarily use the
>>>>> `webkitSupportsFullscreen` and `webkitDisplayingFullscreen` APIs: Mux and
>>>>> Clappr, and one instance of PlayerJS.
>>>>> I found websites with a fullscreen button for Mux and PlayerJS, and
>>>>> they behaved as expected on a build of Chrome without the APIs. The one
>>>>> site I found using Clappr that had a fullscreen button did not work, both
>>>>> on the custom build and the latest canary.
>>>>>
>>>>> It also seems like some version of the Vimeo CDN player uses
>>>>> `webkitEnterFullscreen`:
>>>>> https://f.vimeocdn.com/p/4.27.1/js/vendor.module.js*.*
>>>>>
>>>>> Thanks,
>>>>> Thomas
>>>>>
>>>>> On Mon, Jan 22, 2024 at 5:31 PM Domenic Denicola <dom...@chromium.org>
>>>>> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Tue, Jan 23, 2024 at 7:55 AM Thomas Guilbert <tgui...@chromium.org>
>>>>>> wrote:
>>>>>>
>>>>>>> Good point about the most used APIs being the boolean properties!
>>>>>>> The APIs are now only aliases for the standard non-prefixed fullscreen 
>>>>>>> APIs
>>>>>>> (see this code for the current implementation
>>>>>>> <https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/html/media/html_video_element.cc;l=418;drc=25705537e65f031d28c1a531046b11914055b7e6>),
>>>>>>> and therefore aren't much of a burden to maintain.
>>>>>>>
>>>>>>> I opened a WebKit standards position here:
>>>>>>> https://github.com/WebKit/standards-positions/issues/306
>>>>>>>
>>>>>>> I unfortunately do not have access to edit the listed ChromeStatus
>>>>>>> entry, and the current owner no longer works on Chromium. Should I 
>>>>>>> create a
>>>>>>> new feature (titled "Deprecation of HTMLVideoElement-specific Prefixed
>>>>>>> Fullscreen API")? I think the current ChromeStatus entry also covers 
>>>>>>> this
>>>>>>> API
>>>>>>> <https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/fullscreen/element_fullscreen.idl;l=19;drc=047c7dc4ee1ce908d7fea38ca063fa2f80f92c77>
>>>>>>> which I am not trying to deprecate in this Intent.
>>>>>>>
>>>>>>
>>>>>> Yeah, I think a new feature is a good idea. The old feature seems to
>>>>>> be for the *addition* of the prefixed fullscreen API properties back
>>>>>> in Chrome 15, whereas a *deprecation/removal* has a different set of
>>>>>> fields, if I understand correctly.
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> What's a reasonable sample size of HTTP Archive sites to audit?
>>>>>>> Should this be a complement/precursor to the proposed Deprecation 
>>>>>>> Trial, or
>>>>>>> would this sampling be enough?
>>>>>>>
>>>>>>
>>>>>> I recall +Philip Jägenstedt having done some computations in the
>>>>>> past based on what would actually be statistically significant. But, I
>>>>>> couldn't find them in this documentation
>>>>>> <https://www.chromium.org/blink/platform-predictability/compat-tools/> 
>>>>>> (or
>>>>>> the linked document
>>>>>> <https://docs.google.com/document/d/1cpjWFoXBiuFYI4zb9I7wHs7uYZ0ntbOgLwH-mgqXdEM/edit#heading=h.1m1gg72jnnrt>).
>>>>>> So, I'll just state that I would be happy with 20 sites.
>>>>>>
>>>>>> I think the deprecation trial is a great complement to have in any
>>>>>> case, so I would treat this as a precursor. It's always safest to have 
>>>>>> the
>>>>>> option for web developers to un-break their sites. The purpose of the 
>>>>>> HTTP
>>>>>> Archive investigation is mostly to see if we can find major shared
>>>>>> patterns, to say things like "all sites using this code will be broken" 
>>>>>> or
>>>>>> "all sites using this code will be slightly worse, but basically fine", 
>>>>>> or
>>>>>> even "all sites using this open-source library will be broken, but we can
>>>>>> send them a PR and that will create a clear upgrade path".
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> Thank you,
>>>>>>> Thomas
>>>>>>>
>>>>>>> On Sun, Jan 21, 2024 at 7:56 PM Domenic Denicola <
>>>>>>> dom...@chromium.org> wrote:
>>>>>>>
>>>>>>>> It would be very exciting to clean this up! I have some questions
>>>>>>>> that might help clarify the cost-benefit analysis.
>>>>>>>>
>>>>>>>> On Sat, Jan 20, 2024 at 6:43 AM Thomas Guilbert <
>>>>>>>> tgui...@chromium.org> wrote:
>>>>>>>>
>>>>>>>>> Contact emails
>>>>>>>>>
>>>>>>>>> tgui...@chromium.org
>>>>>>>>>
>>>>>>>>> Explainer
>>>>>>>>>
>>>>>>>>> None
>>>>>>>>>
>>>>>>>>> Specification
>>>>>>>>>
>>>>>>>>> https://fullscreen.spec.whatwg.org/#dom-document-fullscreenenabled
>>>>>>>>>
>>>>>>>>> Summary
>>>>>>>>> There was an attempt in 2014
>>>>>>>>> <https://groups.google.com/a/chromium.org/g/blink-dev/c/Bxe7DnDVRZ0/m/5K61HQPrNK4J>
>>>>>>>>> to deprecate and remove the HTMLVideoElement-specific Prefixed 
>>>>>>>>> Fullscreen
>>>>>>>>> APIs. This meant removing the following APIs from HTMLVideoElement:
>>>>>>>>>
>>>>>>>>> readonly attribute boolean webkitSupportsFullscreen;
>>>>>>>>> readonly attribute boolean webkitDisplayingFullscreen;
>>>>>>>>> void webkitEnterFullscreen();
>>>>>>>>> void webkitExitFullscreen();
>>>>>>>>> // Note the different capitalization of the "S" in FullScreen.
>>>>>>>>> void webkitEnterFullScreen();
>>>>>>>>> void webkitExitFullScreen();
>>>>>>>>>
>>>>>>>>>
>>>>>>>> How "expensive" is it to support these APIs? For example, if some
>>>>>>>> of them are just straight-up aliases of standard APIs, then the 
>>>>>>>> benefit of
>>>>>>>> removal might be low. Whereas if, for example, these prefixed "enter
>>>>>>>> fullscreen" APIs have different behavior than the standardized
>>>>>>>> requestFullscreen() API, then supporting the prefixed variants feels
>>>>>>>> expensive, and getting rid of them is more worthwhile.
>>>>>>>>
>>>>>>>>
>>>>>>>>> The overall usage of these APIs is low, and has trended downwards
>>>>>>>>> over time. Here are the latest usage numbers, as a % of total
>>>>>>>>> page loads:
>>>>>>>>>
>>>>>>>>> PrefixedVideoSupportsFullscreen: 0.025%
>>>>>>>>> PrefixedVideoDisplayingFullscreen: 0.082%
>>>>>>>>> PrefixedVideoEnterFullscreen: 0.001%
>>>>>>>>> PrefixedVideoExitFullscreen: 0.010%
>>>>>>>>> PrefixedVideoEnterFullScreen: 0.001%
>>>>>>>>> PrefixedVideoExitFullScreen: 0.000%
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>> It's notable that the highest counters are for the boolean
>>>>>>>> properties. That makes this slightly less risky, because removing them 
>>>>>>>> will
>>>>>>>> cause them to return `undefined`, so code like `if
>>>>>>>> (videoEl.webkitSupportsFullscreen) { ... }` will just return false, 
>>>>>>>> instead
>>>>>>>> of throwing an exception or similar.
>>>>>>>>
>>>>>>>>
>>>>>>>>> There has been an unfortunate uptick in the past 2 years for the
>>>>>>>>> two following APIs, which means that it's best to remove them now, 
>>>>>>>>> before
>>>>>>>>> they see a wider adoption. These numbers might be going up because the
>>>>>>>>> prefixed APIs are also present on iOS.
>>>>>>>>>
>>>>>>>>> https://chromestatus.com/metrics/feature/timeline/popularity/166
>>>>>>>>> https://chromestatus.com/metrics/feature/timeline/popularity/167
>>>>>>>>>
>>>>>>>>
>>>>>>>> I was going to ask about if there are popular sites or libraries
>>>>>>>> using these, but I found some discussion of that in the bug
>>>>>>>> <https://bugs.chromium.org/p/chromium/issues/detail?id=346236#c74>.
>>>>>>>> It seems like there's a hope that some sites already have fallbacks in
>>>>>>>> place to the standardized APIs, but it's not quite clear. Maybe you 
>>>>>>>> could
>>>>>>>> try running a build of Chromium with the prefixed APIs disabled on a 
>>>>>>>> random
>>>>>>>> sampling of the HTTP Archive sites, and reporting back on if the user
>>>>>>>> experience changes or new errors show up in the JS console? That could 
>>>>>>>> give
>>>>>>>> us more confidence in the removal.
>>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>> There is an alternative set of APIs supported by all browsers that
>>>>>>>>> web authors can use.
>>>>>>>>>
>>>>>>>>> The full history of the removal attempt is here: crbug.com/346236
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Goals for experimentation
>>>>>>>>>
>>>>>>>>> The primary goal of the deprecation trial is to reduce the amount
>>>>>>>>> of broken user-visible experiences as the prefixed fullscreen APIs are
>>>>>>>>> removed, and to give time to web authors to transition to the modern 
>>>>>>>>> API
>>>>>>>>> (which has been available for 5 years).
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> The un-prefixed fullscreen APIs have been available since Chrome
>>>>>>>>> M71.
>>>>>>>>>
>>>>>>>>> Experiment timeline
>>>>>>>>>
>>>>>>>>> TBD, with a proposed 3 months duration
>>>>>>>>>
>>>>>>>>> Blink component
>>>>>>>>>
>>>>>>>>> Blink>Fullscreen
>>>>>>>>> Blink>Media>Video
>>>>>>>>>
>>>>>>>>> TAG review
>>>>>>>>>
>>>>>>>>> None
>>>>>>>>>
>>>>>>>>> TAG review status
>>>>>>>>>
>>>>>>>>> Not applicable
>>>>>>>>>
>>>>>>>>> Risks
>>>>>>>>> Interoperability and Compatibility
>>>>>>>>>
>>>>>>>>> Web Compatibility:
>>>>>>>>>
>>>>>>>>> Removing non-standard APIs should overall help web compatibility,
>>>>>>>>> and encourage web authors to use the unprefixed APIs. Some experiences
>>>>>>>>> might be broken by this change, thus justifying this deprecation 
>>>>>>>>> trial. The
>>>>>>>>> API has been deprecated for a significant amount of time however, and 
>>>>>>>>> usage
>>>>>>>>> has gone down.
>>>>>>>>>
>>>>>>>>> This would only be an issue for websites that *only* support the
>>>>>>>>> prefixed APIs.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Interoperability:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> All browsers have shipped the new APIs, most of them using an
>>>>>>>>> unprefixed version (Safari on iOS being the only remaining 
>>>>>>>>> prefixed-only
>>>>>>>>> API). See also
>>>>>>>>> https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullscreen#browser_compatibility
>>>>>>>>>
>>>>>>>>
>>>>>>>> Based on the WPT results
>>>>>>>> <https://wpt.fyi/results/fullscreen/api/historical.html?label=master&label=experimental&aligned&q=%2Ffullscreen%2Fapi%2Fhistorical.html>,
>>>>>>>> Gecko supports none of the prefixed APIs, and WebKit supports all of 
>>>>>>>> them.
>>>>>>>> I think this is worth noting in the ChromeStatus entry. (Although it's 
>>>>>>>> not
>>>>>>>> an official signal, so leave the dropdown at "No signals".)
>>>>>>>>
>>>>>>>> Given this, filing a standards-positions issue on WebKit to get
>>>>>>>> their take on the deprecation might be a good idea. Sometimes those
>>>>>>>> discussions end up going in surprising directions; see e.g. this 
>>>>>>>> request
>>>>>>>> for a position on the deprecation of mutation events
>>>>>>>> <https://github.com/WebKit/standards-positions/issues/192>.
>>>>>>>>
>>>>>>>> (Gecko also has their own, smaller set of prefixed APIs. But it's
>>>>>>>> not as relevant to this intent about the webkit-prefixed ones.)
>>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Gecko:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> WebKit:
>>>>>>>>>
>>>>>>>>> Web developers:
>>>>>>>>>
>>>>>>>>> Other signals:
>>>>>>>>>
>>>>>>>>> Activation
>>>>>>>>>
>>>>>>>>> Impact on the Ads ecosystem:
>>>>>>>>>
>>>>>>>>> N/A
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 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?
>>>>>>>>>
>>>>>>>>> Potentially. The deprecation trial should give a heads up and
>>>>>>>>> appropriate time for apps to switch over to the unprefixed APIs.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Ongoing technical constraints
>>>>>>>>>
>>>>>>>>> None
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Debuggability
>>>>>>>>>
>>>>>>>>> N/A
>>>>>>>>>
>>>>>>>>> Will this feature be supported on all six Blink platforms
>>>>>>>>> (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?
>>>>>>>>>
>>>>>>>>> Yes - the prefixed API will be removed across all platforms.
>>>>>>>>>
>>>>>>>>> Is this feature fully tested by web-platform-tests
>>>>>>>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
>>>>>>>>> ?
>>>>>>>>>
>>>>>>>>> Yes
>>>>>>>>>
>>>>>>>>> WPTs testing the prefixes are removed:
>>>>>>>>> https://github.com/web-platform-tests/wpt/blob/master/fullscreen/api/historical.html
>>>>>>>>>
>>>>>>>>> WPTs testing the new API:
>>>>>>>>> https://github.com/web-platform-tests/wpt/tree/master/fullscreen/api
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Flag name on chrome://flags
>>>>>>>>>
>>>>>>>>> None
>>>>>>>>>
>>>>>>>>> Finch feature name
>>>>>>>>>
>>>>>>>>> PrefixedVideoFullscreen
>>>>>>>>>
>>>>>>>>> Non-finch justification
>>>>>>>>>
>>>>>>>>> None
>>>>>>>>>
>>>>>>>>> Requires code in //chrome?
>>>>>>>>>
>>>>>>>>> False
>>>>>>>>>
>>>>>>>>> Launch bug
>>>>>>>>>
>>>>>>>>> None
>>>>>>>>>
>>>>>>>>> Estimated milestones
>>>>>>>>>
>>>>>>>>> DevTrial on desktop
>>>>>>>>>
>>>>>>>>> 123
>>>>>>>>>
>>>>>>>>> DevTrial on Android
>>>>>>>>>
>>>>>>>>> 123
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Link to entry on the Chrome Platform Status
>>>>>>>>>
>>>>>>>>> https://chromestatus.com/feature/5259513871466496
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> 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+...@chromium.org.
>>>>>>>>> To view this discussion on the web visit
>>>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABrVPoa373%3Dnxuc%2BTe_h9e0WdS53_oAyUEa%2B4j0v2xWgJ2MFcw%40mail.gmail.com
>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABrVPoa373%3Dnxuc%2BTe_h9e0WdS53_oAyUEa%2B4j0v2xWgJ2MFcw%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/CABrVPoap3PEXTotsfb%3DsoeJ%3D0cTF%3DAeuMO5qTi%2BJLykASJwZUg%40mail.gmail.com.

Reply via email to