Greetings,

in an effort to enable a modern user-centric metrics suite that will allow
us to track measurements that represent the user perceived performance, we
aim to get Progressive Web Metrics (PWM) into Gecko
<https://bugzilla.mozilla.org/show_bug.cgi?id=1298380> (meta bug 1298380
<https://bugzilla.mozilla.org/show_bug.cgi?id=1298380>). Beyond improving
our measurements around responsiveness of Gecko, PWM is also meant to
provide developers better performance measurements in the future.

The current efforts around PWM have mainly been driven by the Chromium team
that worked on drafting first specs for measurements and probes. There is a
presentation from Paul Irish here: bit.ly/pwmetricsdeck. Shubhie Panicker
is working on the spec for W3C Web Perf WG.

From a user's point of view, we see four key moments of experience when a
user intends to explore a new web page/app (adopted from here
<https://groups.google.com/a/chromium.org/d/msg/loading-dev/ESF4e7vC6cU/zD9tTqANBgAJ>
):

   - *Time to First Meaningful Paint (TTFMP)
   
<https://docs.google.com/document/d/1vi-5Oa7EFfcJXug8x-pxVw343GNr3SZmKF39DSuB9rw/edit?usp=sharing>:
   "Is it happening and useful?"* This first part is focusing on measuring
   from a user's perspective if navigation started successfully (the server
   has responded and if the page painted enough critical content that I could
   engage with it? Technically, TTFMP measures the time from navigation start
   to the first paint where page’s primary content is visible. Currently it is
   defined as the the paint that follows the most significant layout
   
<https://docs.google.com/document/d/1BR94tJdZLsin5poeet0XoTW60M0SjvOJQttKT-JK8HI/edit#heading=h.s1lmxvwtpylb>.
   TTFMP is tracked in bug 1299117
   <https://bugzilla.mozilla.org/show_bug.cgi?id=1299117>.
   - *Time to Interaction (TTIx): "Is it working?"* This probe will track
   when users start interacting with pages after navigation via click, touch
   or scroll event. During user research from the UX team, we have learned
   that users use scrolling to test if a page is fully loaded. In other words,
   user interaction with new content marks the end of the user-perceived page
   load process and defines the transition to interaction and content
   exploration.
   - *Time to Interactive (TTI)
   <https://github.com/tdresser/time-to-interactive>: “is it usable?"* This
   defines the transition from page load to ready for user interaction from
   the engine's point of view. TTI celebrates that the thread executing
   javascript is available enough to handle user input. In the current spec
   for TTI, there should be nothing blocking the render process for more than
   50ms to handle input within a 10sec window. Further discussion on TTI
   calculation can be also found here
   
<https://docs.google.com/document/d/11sWqwdfd3u1TwyZhsc-fB2NcqMZ_59Kz4XKiivp1cIg/edit?usp=sharing>.
   TTI is tracked in bug bug 1299118
   <https://bugzilla.mozilla.org/show_bug.cgi?id=1299118>.
   - *Interaction probes: "Is it delightful?"*  Beyond page load, these
   probes track the responsiveness of the engine during users' content
   exploration/browsing.
      - *Estimated Input Latency (EIL)
      
<https://docs.google.com/document/d/1b9slyaB9yho91YTOkAQfpCdULFkZM9LqsipcX3t7He8/edit?usp=sharing>
      *aka Risk to Responsiveness (see bug 1303296
      <https://bugzilla.mozilla.org/show_bug.cgi?id=1303296>): Given that
      user input can happen anytime, EIL estimates the input latency
for new user
      input.
      - *Actual Input Latency: *Input latency starts at the event timestamp
      and measures time to glass. In Telemetry, this is currently tracked
      via INPUT_EVENT_RESPONSE_MS
      - *Frame Throughput*
      
<https://docs.google.com/document/d/1Bot91txCWZUstt32_BBLo-_HUsvOVn_L5yaI5xre2M0/edit>
      aka Jank-free scrolling and animation (see Chromium working draft
      
<https://docs.google.com/document/d/1Bot91txCWZUstt32_BBLo-_HUsvOVn_L5yaI5xre2M0/edit?usp=sharing>
      and bug 1303313 <https://bugzilla.mozilla.org/show_bug.cgi?id=1303313>
      ).

We are seeking engineering input and hope to get a discussion started here
about specs and implementation.
Thanks,
Harald and Dominik

-- 
Dominik Strohmeier | Staff Product Manager, Platform Metrics | Mozilla
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to