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