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 <tguilb...@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 <dome...@chromium.org> > wrote: > >> >> >> On Tue, Jan 23, 2024 at 7:55 AM Thomas Guilbert <tguilb...@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 <foo...@chromium.org> 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 <dome...@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 <tguilb...@chromium.org> >>>> wrote: >>>> >>>>> Contact emails >>>>> >>>>> tguilb...@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+unsubscr...@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/CABrVPoa2ayp_OmrFH%2B9Q6dS_9nLMwgyZNgUTiL_OkfHBdh6HNw%40mail.gmail.com.