Thanks Mason, we're reaching out On Sat, May 13, 2023 at 3:27 AM Mason Freed <mas...@chromium.org> wrote:
> Chiming in briefly here - it appears (from my console messages) that > BrowserStack is currently hitting this deprecation. BrowserStack sessions > in M115 restart on ~5 second intervals with a console error pointing to > this deprecation. Might be worth reaching out to them to talk about > mitigations. > > > On Friday, February 24, 2023 at 2:28:21 PM UTC-8 Mike Taylor wrote: > >> LGTM3 >> On 2/24/23 12:31 PM, Philip Jägenstedt wrote: >> >> LGTM2, even better! >> >> On Fri, Feb 24, 2023 at 5:04 PM Yoav Weiss <yoavwe...@chromium.org> >> wrote: >> >>> SGTM! >>> >>> On Fri, Feb 24, 2023 at 4:40 PM Henrik Boström <h...@google.com> wrote: >>> >>>> Yes, I think throwing in M117, stable on Aug 30 would be even better. >>>> >>>> On Friday, February 24, 2023 at 4:32:21 PM UTC+1 Philip Jägenstedt >>>> wrote: >>>> >>>>> I think the overall timeline looks great, the final removal is almost >>>>> a year from now, after the 2023 holiday season. >>>>> >>>>> However, I'd like to bikeshed "Throw an exception if the trial is not >>>>> used in Stable in M119 (Release: October 31, 2023)". This is when the >>>>> breakage will be apparent to most users/developers, anyone who isn't >>>>> paying >>>>> attention to deprecation warnings. Oct 31 doesn't give a whole lot of time >>>>> to figure out how origin trials work and opt into that, so I would suggest >>>>> M117, stable on Aug 30. That's as early as seems reasonable given summer >>>>> vacations in the northern hemisphere. >>>>> >>>>> WDYT Henrik, would that work just as well for you? >>>>> >>>>> On Thu, Feb 23, 2023 at 1:17 PM Yoav Weiss <yoav...@chromium.org> >>>>> wrote: >>>>> >>>>>> LGTM1 for that plan >>>>>> >>>>>> On Thu, Feb 23, 2023 at 12:48 PM Henrik Boström <hb...@chromium.org> >>>>>> wrote: >>>>>> >>>>>>> In that case the proposal is: >>>>>>> - Add deprecation warning in M113 (Release: May 2, 2023) with the >>>>>>> possibility to opt-in to the Deprecation Trial. >>>>>>> - Throw an exception if the trial is not used in Canary/Dev/Beta in >>>>>>> M114. >>>>>>> - Throw an exception if the trial is not used in Stable in M119 >>>>>>> (Release: October 31, 2023). >>>>>>> - Let M121 be the last version where the Trial is available >>>>>>> (Release: January 9, 2024). In other words the first version where the >>>>>>> trial and legacy getStats API is entirely removed is M122 (Release: >>>>>>> February 6, 2024). >>>>>>> >>>>>>> On Thursday, February 23, 2023 at 11:38:48 AM UTC+1 Yoav Weiss wrote: >>>>>>> >>>>>>>> SGTM >>>>>>>> >>>>>>>> On Thu, Feb 23, 2023 at 11:34 AM Henrik Boström <hb...@chromium.org> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Thursday, February 23, 2023 at 11:03:44 AM UTC+1 Yoav Weiss >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>> On Mon, Feb 20, 2023 at 12:52 PM Henrik Boström < >>>>>>>>> hb...@chromium.org> wrote: >>>>>>>>> >>>>>>>>> OK, so deprecation warning in M113, throwing in Beta in M114 and >>>>>>>>> throwing in Stable on M119. We can do that. >>>>>>>>> >>>>>>>>> >>>>>>>>> Awesome! >>>>>>>>> >>>>>>>>> >>>>>>>>> Under this less aggressive timeline, for how many more milestones >>>>>>>>> would the Deprecation Trial span? >>>>>>>>> >>>>>>>>> >>>>>>>>> How much would be needed for people to schedule the work to make >>>>>>>>> the switch? >>>>>>>>> >>>>>>>>> >>>>>>>>> If they notice the deprecation warning they would have enough time >>>>>>>>> to migrate before the Deprecation Trial is even needed. If they >>>>>>>>> don't, how >>>>>>>>> about 3 months extra? >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> I do not have any more deprecations planned on my end and I think >>>>>>>>> this is "standalone" enough (stats being rather specific) that in my >>>>>>>>> opinion it should not be bundled together with anything else. >>>>>>>>> >>>>>>>>> >>>>>>>>> OK, cool! >>>>>>>>> >>>>>>>>> >>>>>>>>> On Friday, February 17, 2023 at 8:52:56 AM UTC+1 Yoav Weiss wrote: >>>>>>>>> >>>>>>>>> Hey Henrik! >>>>>>>>> >>>>>>>>> I think the general outline of the plan makes sense, but the >>>>>>>>> timelines seem too aggressive. As we've recently seen in the track >>>>>>>>> stats >>>>>>>>> removal, there can be a time difference between the point a developer >>>>>>>>> puts >>>>>>>>> in the work to opt-in for a deprecation trial and the point in which >>>>>>>>> this >>>>>>>>> work reaches users. >>>>>>>>> >>>>>>>>> I think it would make sense to: >>>>>>>>> * Add a deprecation warning in M113 and enable a Deprecation >>>>>>>>> Trial. Set a tentative removal milestone for M119. >>>>>>>>> * Start throwing an exception up to Beta in M114 to try and get >>>>>>>>> people's attention >>>>>>>>> * Broadly communicate this change is coming in multiple channels. >>>>>>>>> DevRel folks may be able to help there. +Paul Kinlan and +Andre >>>>>>>>> Bandarra for thoughts. >>>>>>>>> * In parallel to the above, turn the usecounters into UKM >>>>>>>>> <https://source.chromium.org/chromium/chromium/src/+/main:components/page_load_metrics/browser/observers/use_counter/ukm_features.cc;l=14?q=usecounter%20ukm&ss=chromium>, >>>>>>>>> and try to see where most usage lies. (and try to understand if it's >>>>>>>>> coming >>>>>>>>> from libraries with longer deployment lifecycles) >>>>>>>>> * Flip the switch (and be ready to revert) in M119 >>>>>>>>> >>>>>>>>> I know this is a bit longer and more work than the plan you >>>>>>>>> outlined, but given the few fire drills we had recently, it seems >>>>>>>>> better to >>>>>>>>> err on the cautious side. >>>>>>>>> >>>>>>>>> Also, do you know if more removals are planned on your side? It >>>>>>>>> seems like it'd be better to "bundle" them so that library authors >>>>>>>>> only >>>>>>>>> have to "respin" their deployment once, rather than every few >>>>>>>>> milestones. >>>>>>>>> >>>>>>>>> >>>>>>>>> On Thu, Feb 16, 2023 at 3:10 PM Henrik Boström <hb...@chromium.org> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>> *This deprecation is not to be confused with the track stats >>>>>>>>> deprecation >>>>>>>>> <https://groups.google.com/a/chromium.org/g/blink-dev/c/NZVXsJQ7tV8>, >>>>>>>>> which >>>>>>>>> is deprecating a small subset of the modern API. This deprecation >>>>>>>>> related >>>>>>>>> to the removal of the legacy API, a different API with the same name.* >>>>>>>>> >>>>>>>>> *Contact emails* >>>>>>>>> hb...@chromium.org, h...@chromium.org >>>>>>>>> >>>>>>>>> *Specification* >>>>>>>>> The legacy getStats() API has no spec, no official documentation >>>>>>>>> and no web platform tests. >>>>>>>>> >>>>>>>>> The modern (promise-based) version of getStats() does have a spec, >>>>>>>>> but this is a different method returning different stats objects: >>>>>>>>> https://w3c.github.io/webrtc-stats/ >>>>>>>>> >>>>>>>>> There are lots of similarities between the modern and legacy APIs, >>>>>>>>> including several metrics that are the same, but the stats report >>>>>>>>> structure >>>>>>>>> is different and the legacy API contains several "goog"-prefixed >>>>>>>>> metrics or >>>>>>>>> metrics that behave differently from the modern API. >>>>>>>>> >>>>>>>>> In 2019, a document was created outlining the differences between >>>>>>>>> the legacy and modern API >>>>>>>>> <https://docs.google.com/document/d/1z-D4SngG36WPiMuRvWeTMN7mWQXrf1XKZwVl3Nf1BIE/edit?usp=sharing> >>>>>>>>> which >>>>>>>>> may still be a useful resource, but for latest information we refer >>>>>>>>> to the >>>>>>>>> modern API's spec <https://w3c.github.io/webrtc-stats/> and code >>>>>>>>> search >>>>>>>>> <https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/api/stats/rtcstats_objects.h> >>>>>>>>> . >>>>>>>>> >>>>>>>>> *Summary* >>>>>>>>> WebRTC is a set of JavaScript APIs (spec >>>>>>>>> <https://w3c.github.io/webrtc-pc/>) enabling real-time >>>>>>>>> communication, most notably realtime audio and video for Video >>>>>>>>> Conferencing >>>>>>>>> in the browser. getStats() is an API that allow apps to measure >>>>>>>>> things like >>>>>>>>> bitrate and media quality information about the session. >>>>>>>>> >>>>>>>>> The history is that spec and implementations evolved so quickly >>>>>>>>> that the API was forked into two paths: the callback-based one that >>>>>>>>> only >>>>>>>>> exists in Chromium and has no spec and the promise-based one which >>>>>>>>> has both >>>>>>>>> a spec and pretty good cross-browser compatibility support >>>>>>>>> <https://wpt.fyi/results/webrtc-stats/supported-stats.https.html?label=experimental&label=master&aligned> >>>>>>>>> . >>>>>>>>> >>>>>>>>> In Chromium, the legacy API has been on feature freeze for several >>>>>>>>> years and the goal was always to deprecate and remove it, but due to >>>>>>>>> high >>>>>>>>> usage this was not a possibility. This story is finally changing: >>>>>>>>> usage >>>>>>>>> graphs >>>>>>>>> <https://webrtchacks.github.io/chromestatus/?buckets=1058,1476,1402&start=2022-01-01&window=7> >>>>>>>>> . >>>>>>>>> >>>>>>>>> [image: Screenshot 2023-02-16 at 13.43.40.png] >>>>>>>>> >>>>>>>>> According to chromestatus.com stats >>>>>>>>> <https://chromestatus.com/metrics/feature/popularity>, >>>>>>>>> - RTCPeerConnectionGetStatsLegacyNonCompliant is 0.0183% and >>>>>>>>> - RTCPeerConnectionGetStats is 0.2177% of page loads. >>>>>>>>> In other words, legacy is 8% as popular as modern. >>>>>>>>> >>>>>>>>> According to UMA stats, >>>>>>>>> - RTCPeerConnectionGetStatsLegacyNonCompliant is 0.000177% and >>>>>>>>> - RTCPeerConnectionGetStats is 0.00114% of page loads. >>>>>>>>> In other words, legacy is 15% as popular as modern. >>>>>>>>> >>>>>>>>> I don't know why UMAs and chromestatus shows different orders of >>>>>>>>> magnitude when it comes to usage, but we're roughly talking about the >>>>>>>>> legacy API being 1/10th as popular as the modern API. I think it is >>>>>>>>> time to >>>>>>>>> add a deprecation warning to the legacy API. >>>>>>>>> >>>>>>>>> *Risks* >>>>>>>>> Usage is still high and migrating from the legacy API to the >>>>>>>>> modern API may require a significant amount of work from developers. >>>>>>>>> >>>>>>>>> To mitigate this, we should have a long deprecation timeline and >>>>>>>>> allow developers to opt-in to a Deprecation Trial to get more time. >>>>>>>>> >>>>>>>>> *Proposal* >>>>>>>>> Add a deprecation warning in M113 and the possibility to opt-in to >>>>>>>>> a deprecation trial. >>>>>>>>> Add use counts for how many of the legacy API uses do and do not >>>>>>>>> use the deprecation trial and track this over time. >>>>>>>>> >>>>>>>>> In M114, start throwing an exception in Canary/Beta if attempting >>>>>>>>> to use the legacy API outside the trial *but do not throw* in >>>>>>>>> Stable yet. Give apps more time to sign up to the trial. >>>>>>>>> >>>>>>>>> In M115, gently roll out the throwing of the exception to Stable, >>>>>>>>> i.e. from this milestone onwards apps are required to use the >>>>>>>>> deprecation >>>>>>>>> trial if they want to continue to use the legacy getStats() API. >>>>>>>>> >>>>>>>>> M115 is Stable on June 27. >>>>>>>>> Set the Deprecation Trial end date to M120 / December 5, 2023. >>>>>>>>> This gives apps paying attention to the deprecation warning ~9 >>>>>>>>> months to migrate and apps only paying attention to exceptions on >>>>>>>>> stable ~6 >>>>>>>>> months to migrate. >>>>>>>>> >>>>>>>>> -- >>>>>>>>> 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/8edb3ad3-c383-4c18-9595-81fb0732fa10n%40chromium.org >>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/8edb3ad3-c383-4c18-9595-81fb0732fa10n%40chromium.org?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+...@chromium.org. >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfXvoddJYizkHGzmavf6LLyqxY1VGLfZfW%3D%2BrmZBBHNq8Q%40mail.gmail.com >>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfXvoddJYizkHGzmavf6LLyqxY1VGLfZfW%3D%2BrmZBBHNq8Q%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/CAARdPYfRn4nBRmfmvgJ8DFnmEZaCN_fGxqkEGsYK9z2ndyL1fQ%40mail.gmail.com >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYfRn4nBRmfmvgJ8DFnmEZaCN_fGxqkEGsYK9z2ndyL1fQ%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/CAEbRw2zV9Xz8OAknh2VECDuuiBHQus_79JMbBpuqjiDEtgmbQw%40mail.gmail.com.