Re: WebPerfWG call - August 27th 2020 @ 10am PST

Minutes
<https://docs.google.com/document/d/e/2PACX-1vTPdLaWVHtvE7vXBi6eE9haiPgXZQSU7awrXAjs2eIF83NX24R2AKb08B16pL0Osrkf1t2k6D1OR2i-/pub>
and video <https://youtu.be/nQpy2aBIC_M> from last week's call are now
published. Copying them here for safe keeping.

WebPerfWG call - 27 August 2020

Participants

Yoav Weiss, Nic Jansma, Philippe Le Hegaret, Alex Christensen, Noam
Helfman, Gilles Dubuc, Dominic Farolino, Sean Feng, Neil Craig, Nicolas
Pena, Carine Bournez, Andrew Comminos, Michelle Vu, P Perl, Michal Mocny,
Annie Sullivan, Steven Bougon, Nate Schloss, Ben De Kosnik, Chris
Harrelson, Ryosuke Niwa, Philip Walton
Next Meeting

September 10th @ 10am PST
Hackathon

   - Yoav: We had talked about running 1-2 days of working through issues
   prior to TPAC
   - … Timezone wise, it would be better to have several half-days
   - … Schedule around this time on Tuesdays in September, 3 or 4 half-days
   - … I will send out invites, and alert the mailing list so others can
   attend as well

Incubation CFC

   - https://lists.w3.org/Archives/Public/public-web-perf/2020Aug/0005.html
   <https://www.google.com/url?q=https://lists.w3.org/Archives/Public/public-web-perf/2020Aug/0005.html&sa=D&ust=1598971339301000&usg=AOvVaw2o4yiDKaDV7hxzXHve5q-B>
   - Yoav: Send out a mail a few weeks ago to see if there are any
   incubations that we want to invite into the working group
   - … There was some discussion on the thread and would like to bring some
   of those into this call
   - … Benjamin, you had brought up some questions and would like to see if
   you could explain more here.
   - Benjamin: Timing wise, is this related to rechartering?
   - Yoav: Somewhat related, I think most would be covered by the existing
   charter, but some could be included as deliverables
   - … We could amend the charter later
   - … I think we agree the use-cases those incubations attempt to solve
   are valuable and are worthwhile to collaborate on
   - … They don’t have to be included in this group, but to ensure we’re
   all comfortable discussing those issues on these calls, which can increase
   visibility and collaboration
   - Benjamin: I’m a little uncomfortable because I don’t think there is
   multi-vendor consensus, and would prefer to keep them in WICG.  I don’t see
   any harm in keeping them out of W3C right now
   - … In the future if we get more consensus between vendors that’s a good
   point to move to the W3C
   - Yoav: Does that apply to all of the incubations, or just some? E.g.
   isInputPending
   - Benjamin: Did we reach consensus on the call when discussed?
   - Yoav: I believe so at the time, yes
   - Ryosuke: At this time Webkit isn’t interested in implementing these
   - Yoav: In the past we’ve included some proposals that have lagged in
   implementation in other vendors.  Do you object to these specifications
   being worked on here?
   - Ryosuke: If this is going into future rechartering, we don’t want to
   limit our participation in this working group.  My preference is not to
   have them.
   - Yoav: Benjamin from Mozilla’s perspective?
   - Benjamin: We don’t have clear consensus, we don’t have a formal
   objection.  I would repeat my request to delay this.
   - Philippe: What about the users’ perspective?
   - Steven: For Salesforce, we would like to have these APIs available,
   only one may not be suitable for us
   - Yoav: Do you feel that these incubations should be adopted in the
   working group?  Not what various engines will implement and ship?  Whether
   these should be brought into the working group or stay as incubations for
   now?
   - Steven: As a user it’s hard for me to say what the difference is.
   - Gilles: What’s the practical difference for us?
   - Yoav: From your perspective, the various issues will be discussed as
   part of the WG calls and issue triage, as opposed to just in Github issues.
   - … My hope is having that visibility will get us closer to multi-vendor
   consensus and implementations, but those are not tightly coupled.
   - Rysokue: I’m sympathetic to some of the use-cases, but my main concern
   is some of the solutions these cases present
   - … The most practical solution difference between them being in the WG
   or not is if they’re part of the charter and deliverables, which have IP
   implications.
   - Yoav: The intent with adoption would be to add them as deliverables,
   so having Apple’s position on that angle would be useful
   - Nic: Akamai has a broad interest in all of these specifications, and
   would prefer to be able to discuss these openly in the WG with multiple
   stakeholders, vendors, and users.
   - Steven: Is the concern that if we brought them in as a deliverable,
   and Apple wouldn’t be interested in delivering them, is that the concern?
   - Yoav: I think the concern is more around the IP implications of
   bringing them into the working group.
   - Ryosuke: It’s not that we’re not interested in the use cases, just
   that we would need to do additional research if we were to bring them in
   - Philippe: I think all of them live within the scope of the working
   group’s current charter
   - Ryosuke: Concern is that in today’s multi-vendor client that one
   vendor proposes a feature, implements it, and websites start using it right
   away.  The impact of that locks in a solution before there was discussion
   and consensus.
   - … We don’t think any of these specifications are good solutions to
   existing use cases
   - Yoav: It’s hard to talk about this in the abstract, so if we just talk
   about ElementTiming and LCP for example, we’ve been talking in this working
   group about providing measurable visual elements for at least 5 years.  The
   use case is something people are interested in measuring, that we’ve been
   discussing here for a long while.
   - Ryosuke: There have been multiple proposals for solving these
   problems, and I have raised multiple questions and issues about
   ElementTiming and LCP.  So why do we think they’ve been incubated enough
   and in a good state to be moved into the Working Group.
   - Yoav: We’re not trying to move those to CR or PR.  We’re trying to get
   them adopted as Working Drafts.  There’s not necessarily a quality bar here.
   - … At the same time I understand is that we don’t have consensus
   - Ryosuke: Here specifically I’ve raised concerns about all of these
   implications in the past
   - Nicolas: Can you be precise about feedback that was ignored?
   - … I would like to clarify what we’ve addressed
   - Ryosuke: I don’t feel that any of these APIs are appropriate for any
   of the use cases
   - Yoav: My recollection for LCP specifically, it was presented multiple
   times to the WG, and you and others raised concerns, and Annie presented
   data to address those concerns.
   - … From my recollection from that meeting the initial skepticism was
   addressed.
   - … If that’s not the case it may be useful to point out again what
   concerns we have
   - Ryosuke: The data was specifically from Chrome, which is how Chrome
   paints.  We do not believe that would work in Safari because our painting
   model works the same as others.
   - … Also, what’s important during page load is very subjective and what
   you value for user experience.
   - … As an implementer, we have an objection to having LCP as a metric,
   as that might encourage developers to optimize the wrong thing for Safari
   - … Yes, these are things we should discuss in the working group because
   we agree on the underlying use case
   - … What is the distinction we should make between the things that
   should be incubated and the things that should be brought into the working
   group
   - Yoav: Regarding the painting differences between different engines, I
   was under the impression that we more-or-less defined as part of FCP and
   maybe ElementTiming and LCP should benefit from similar definitions for all
   engines.
   - … Otherwise, the question regarding when incubations should be
   adopted, is not necessarily a well-defined line
   - … This was something mostly working-group driven, there is no strict
   criteria.
   - … When does this working group think an incubation has been defined
   well enough that we want to bring it into the working group for discussion
   - … This was a call for consensus, and we don’t currently have consensus
   - … If there are some incubations in that list which may have more
   interest than others, such as isInputPending which we verbally agreed to
   adopt but didn’t send an official CFC.
   - … Benjamin had asked for an extension until TPAC, which we could wait
   for re-discussion
   - Benjamin: Something to think about is automating that process, to get
   a show of hands every 6 months.  Might be helpful to get us towards
   consensus.

Preload => HTML

   - https://github.com/w3c/preload/issues/154
   <https://www.google.com/url?q=https://github.com/w3c/preload/issues/154&sa=D&ust=1598971339307000&usg=AOvVaw1CHolYlcSYUWVHow6SXN8S>
   - Yoav: Requests to integrate more parts of Preload into the processing
   model of HTML
   - … Having Preload defined in HTML but have its own separate spec is
   confusing
   - … One solution for that is to merge all of the existing processing
   model into HTML, publish a note, and move all Issues to the WHATWG
   - … Strong opinions?
   - https://github.com/w3c/preload/issues/147
   <https://www.google.com/url?q=https://github.com/w3c/preload/issues/147&sa=D&ust=1598971339308000&usg=AOvVaw0O_iaG4iFrKfo-yKGrk685>
   - Yoav: Move the parts related to the processing model into the HTML
   specification
   - Philippe: If we move the processing model, we should move the markup
   as well, and if we do that there’s nothing left
   - Ryosuke: Makes sense to me to merge it into HTML, given the rest of
   the LINK element processing is in there
   - Benjamin: Agreed
   - Philippe: Moving from W3C to WHATWG or vice versa, both organizations
   have to agree
   - … Bad news is you’re number 4 or 5 on the review list, and meetings
   have been spotty at best.  Might take a month or two before we can get back
   to you.
   - Yoav: I don’t think any of this is urgent
   - … Seems like it would reduce confusion
   - Philippe: I will take an action item to bring this up, but it may not
   happen before TPAC
   - Yoav: Yes, please

EventTiming vs. Long Tasks

   - https://lists.webkit.org/pipermail/webkit-dev/2020-August/031329.html
   <https://www.google.com/url?q=https://lists.webkit.org/pipermail/webkit-dev/2020-August/031329.html&sa=D&ust=1598971339309000&usg=AOvVaw2yeGPFxt9ErgBg7gqVWSwq>
   - Nicolas: webkit-dev thread about Event Timing
   - … Wanted to clarify use-cases and differences between Long Tasks and
   Event Timing
   - … In particular, there was some concern about Long Tasks that it’s
   already adopted, that maybe Event Timing solves similar use cases.
   - Alex: webkit-dev thread asked if there was overlap
   - Nicolas: For Long Tasks, one use case is detecting if a website can
   respond to user-input quickly.  There are other use cases, such as to
   ensure that animations that run on the main thread run smoothly, because if
   you have Long Tasks that might not be possible.  Another is that CPU usage
   can be linked to consumption, as you can look at Long Tasks to try to keep
   the battery usage as low as possible.
   - … You can also compute various metrics based on the Long Tasks, such
   as Sum of Long Tasks to help link to CPU time, or to compute metrics like
   Total Blocking Time which measures how much of time on the site is
   user-perceivable.
   - … There are some other use cases for example some ads teams use Long
   Tasks to compute metrics on the impact of ads on websites.
   - … Overall some analytics providers use them to try to fix performance
   bottlenecks.
   - Noam: We use them generally the way you describe it as Total Blocking
   Time (TBT) to grade sessions’ user experience, then use other session
   telemetry to analyze where the bottlenecks are and where to improve our
   code.  Very useful to us for our use case.
   - Steven: We also use Sum of Long Tasks to understand if the slowness is
   due to the underlying hardware or the backend.
   - Nicolas: We can compare that to Event Timing.  Notice not all of Long
   Tasks are related to events.  Event Timing tries to capture timing of
   events that actually happen.  It’s hard to predict when a user-input is
   going to happen.  So you can’t use Long Tasks to measure input delay, the
   time when the user actually clicks is hard to predict.
   - … Event Timing solves use cases related to directly measuring delays
   in responding to user inputs.  One of the metrics Event Timing allows is
   measuring First Input Delay, which we’ve defined previously in these calls:
   for the first meaningful user interaction on the page, how long does it
   take for the user-agent to start handling the event.  I.e. for a click or a
   tap, how long does the UA take to dispatch the pointer-down related to that
   interaction.
   - … Does not measure how long it takes for the UA to actually handle it,
   but just dispatch the event.  But it does allow you to also measure how
   long it takes event handlers to run.  (Any async tasks posted during the
   handler are not measured yet by the API)
   - … The final component it measures is how long it takes the UA to
   update the screen based on the interaction.  Assuming the screen is updated
   from the user interaction.  Exposes the time it takes for the next paint
   from the user interactions.
   - Michal: Long Tasks seems to be good at predicting issues, battery
   usage.  For smoothness etc it’s a predictor.  For Event Timing it results
   in the actual data bound to the event itself.
   - Ryosuke: Issue here isn’t the use cases, that there’s so many APIs and
   how do they all fit together?
   - … For Event Timing, one of the cases is measuring how long the UA
   takes to resolve.  But in today’s modern apps, we have a lot of
   async/promises/etc.  Need many APIs combined to see how long the user input
   took to get to the screen again.
   - Nicolas: Proposal is to address that use case with Event Timing, but
   we’re not there yet.  It’s hard to measure causality. That’s a problem
   we’re hoping to address at some point.  We think this is a good first step
   towards that problem.
   - … Frame Timing is more geared towards smoothness of animations and
   scrolling, different than measuring how long tapping takes to produce a
   response
   - Yoav: In the scenario you propose, it’s hard to measure the full async
   nature of it.  But we’re creating the building blocks for developers to
   help bridge the gap of asynchronous calls if that is of value as well.
   - … Ideally we would have a high-level API, but a set of low-level APIs
   that are building blocks doesn’t sound like a bad outcome
   - Ryosuke: Not sure if these are the right primitives
   - Yoav: Are there alternatives that you would consider a good API that
   would solve these issues?  As Nicolas says this API could be grown into
   that.
   - … Let’s continue this discussion next time


On Wed, Aug 26, 2020 at 10:53 AM Yoav Weiss <yoav@yoav.ws> wrote:

> Hey folks,
>
> Let's talk <https://meet.google.com/agz-fbji-spp> about web performance
> tomorrow! On the agenda
> <https://docs.google.com/document/d/10dz_7QM5XCNsGeI63R864lF9gFqlqQD37B4q8Q46LMM/edit?pli=1#heading=h.z3pv6ks50pi6> we
> have:
>
>    - Discussing the incubations CFC
>    <https://lists.w3.org/Archives/Public/public-web-perf/2020Aug/0005.html>
>    and understanding where we're at
>    - Talk about whether the preload spec's contents should move to HTML
>    <https://github.com/w3c/preload/issues/154>
>    - +Nicolás Peña <npm@chromium.org> will present his proposal for Final
>    LCP
>    - The use cases for Event Timing, compared to LongTasks
>
> As always, the call will be recorded and posted online.
>
> See y'all there,
> Yoav
>

Received on Tuesday, 1 September 2020 13:47:00 UTC