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