blob: 3452d3df87256c1cc5960a7b3df699489d7b25ca [file] [log] [blame] [view]
Nicolás Peña Morenoc7391bb2020-04-30 22:17:121# Web Performance Objectives
2
3[TOC]
4
Nicolás Peña Moreno8dc6c07a2021-04-13 22:26:595## 2021 Q2 Objectives
6
7* Publish public proposal on **smoothness**.
8* **Responsiveness**:
9 * Socialize publicly our definition of interactions and normalization options.
10 * Implement [interactionID](https://docs.google.com/presentation/d/1nxNFwsGqYy7WmIZ3uv_0HsSIQMSXQA9_PqlOD3V74Us/edit#slide=id.p).
11* Enable exposing information about **Single Page Apps** via
12 [navigation IDs](https://docs.google.com/presentation/d/1snPIu2GJ_JO7esJ_3YmOAiXC_g4PeQW3jclYx1u3Qzs/edit#slide=id.p).
13* Expose performance information about **back-forward cache** navigations to performance timeline.
14* Specify and launch redefined (window-based) **Cumulative Layout Shift**.
15* Ship **JS Sampling Profiler**.
16* Facilitate **Resource Timing** integration into Fetch and change implementation as needed.
17* Obtain more accurate **abandonment** rates on Chrome to determine what to do about the problem.
18* Implement and ship [droppedEntriesCount](https://w3c.github.io/performance-timeline/#dom-performanceobservercallbackoptions-droppedentriescount).
19
20## 2021 Q1 Progress
21
22* **performance.measureMemory** was shipped! See the blog [post](https://web.dev/monitor-total-page-memory-usage/).
23* **Single Page Apps**:
24 * Provided feedback to the AppHistory [explainer](https://github.com/WICG/app-history/blob/main/README.md).
25 * Discussed how to extend performance timeline to include SPAs in the WebPerf WG.
26* Improved **abandonment** data on Chrome to account for FCP more accurately.
27* Continued work on **smoothness** and **responsiveness** proposals.
28* Proposed way to include **back-forward cache** performance information to the WebPerf WG.
29* Organized **A/B testing workshop** to better understand the problem space: see
30 [notes](https://docs.google.com/document/d/1rmVjH7-5hGk_VB0EwErM1tcEVz100XZDYlaSd75WbRE/edit?ts=601c4a9c).
31* Completed GC integration work for the **JS Sampling Profiler**.
32* Various improvements for **Layout Instability** which especially impact carousels. See
33 [changelog](https://chromium.googlesource.com/chromium/src/+/main/docs/speed/metrics_changelog/cls.md).
34* Decided redefinition of **Cumulative Layout Shift** and announced in [post](https://web.dev/evolving-cls/).
35
Nicolás Peña Morenofa375fb2021-01-13 18:38:1136## 2021 Q1 Objectives
37
38* **performance.measureMemory**: ship the API.
39* **Single Page Apps**:
40 * Publish an explainer about SPA issues.
41 * Determine whether User Timing hints conventions are still useful.
42* **Abandonment**:
43 * Gather concrete feedback form analytics providers and other potential users of this API.
44 * Improve confidence on the abandonment rates computed by implementing a renderer-side flushing.
45 * Update analysis on rates when the above fix has reached Chrome Stable.
46* **Smoothness**:
47 * Continue refining the definition of dropped frames.
48 * Move proposal to WICG.
49* **Back-forward cache**:
50 * Expand scope to include FCP and FID in the values reported after back-forward navigations.
51 * Investigate backwards compatibility of adding new entries and propose an API shaped based on the outcome.
52* **Responsiveness**:
53 * Investigate correctness of existing internal metrics and implement fixes as needed.
54 * Further investigate scrolling performance and how it should be integrated with metric.
55 * Define user interactions that we care about for this API.
56 * Create a manual test corpus to test ideas about the 'end time' of a user interaction.
57* **First Contentful Paint**: improve implementation to pass more
58 [tests](https://wpt.fyi/results/paint-timing?label=master&label=experimental).
59* **Longtasks**: add system time, including garbage collection
60 ([bug](https://bugs.chromium.org/p/chromium/issues/detail?id=1091754)).
61 * Present proposal to security team, and begin socializing the proposal externally.
62* **A/B testing**: organize workshop on client-side A/B testing.
Nicolás Peña Moreno56bfe52d2021-01-15 14:48:2163* **JS Sampling Profiler**:
64 * Complete the GC integration work.
65 * Ship the API.
Nicolás Peña Morenofa375fb2021-01-13 18:38:1166
67## 2020 Q4 Progress
68
69### New web performance APIs
70
71* **performance.measureMemory**: added support for cross-origin iframes in the same process and sent
72 [Intent to Ship](https://groups.google.com/a/chromium.org/g/blink-dev/c/RExJ9a3SmQw).
73* **Page abandonment**: made some data available publicly and socialized it in a
74 [blogpost](https://calendar.perfplanet.com/2020/abandonment/).
Nicolás Peña Moreno56bfe52d2021-01-15 14:48:2175* **JS Sampling Profiler**:
76 * Implemented the API so it requires COOP/COEP and gated it behind Document Policy.
77 * Finished a prototype of GC integration for the V8 sampling profiler (which will help reduce profiler startup time).
78 * Landed some initial support for code object refcounting.
Nicolás Peña Morenofa375fb2021-01-13 18:38:1179* **Smoothness**: published a proposal around dropped frames and presented it at TPAC.
80* **Back-forward cache**: determined that it is backwards compatible to expose a PerformanceNavigationTiming
81 entry for back-forward navigations.
82* **Responsiveness**:
83 * Investigated some internal metrics, but found some metric quality issues that need to be investigated.
84 * Started brainstorm on capturing asynchronous work as well as which user interactions to capture.
85 * Did investigation on scrolling and determined that in most cases pages do not seem to suffer from poor
86 scrolling performance.
87
88### Existing web performance API improvements
89
90* **Largest Contentful Paint**: include removed nodes ([bug](https://bugs.chromium.org/p/chromium/issues/detail?id=1045640))
91 and ignored images occupying the full viewport ([bug](https://bugs.chromium.org/p/chromium/issues/detail?id=1133883)).
92* **Cumulative Layout Shift**: implemented various fixes, see
John Palmer046f9872021-05-24 01:24:5693 [changelog](https://chromium.googlesource.com/chromium/src/+/main/docs/speed/metrics_changelog/README.md).
Nicolás Peña Morenofa375fb2021-01-13 18:38:1194
Nicolás Peña Moreno6bbfb9c2020-10-13 20:15:1695## 2020 Q4 Objectives
96
97### New web performance APIs
98
99 * {#measure-memory-20204}**performance.measureMemory**:
100 * Add support for cross-origin iframes.
101 * Send Intent to Ship and ship --- API would become available early next year.
102 * {#spas-20204}**Single Page Apps**:
103 * Publish document for feedback on measurement issues, attributions issues, and other issues specific
104 to SPAs.
105 * Land support for User Timing hints in Chrome, and get 2+ frameworks to start using such hints.
106 * {#page-abandonment-20204}**Page abandonment**: publish data on abandonment rates, making a case for or against
107 an abandonment API.
108 * {#js-profiler-20204}**JS Sampling Profiler**:
109 * Implement the API so it requires COOP/COEP.
110 * Add support for warm codemap initialization.
111 * Add web platform tests.
112 * _(Stretch)_ Send Intent to Ship.
113 * {#smoothness-20204}**Smoothness** (FrameTiming):
114 * Discuss and socialize API shape.
115 * Propose API on WICG.
116 * Start a TAG review.
117 * {#bf-cache-20204}**Back-forward cache**: document and socialize a concrete proposal on a web API that supports
118 monitoring performance of sites on browsers that may perform back-forward navigations.
119 * {#responsiveness-20204}**Responsiveness**:
120 * Investigate internal metrics and potentially add new metrics to capture end-to-end responsiveness.
121 * Document how popular frameworks handle user interactions.
122 * Brainstorm on how to expand Event Timing to capture user handling for asynchronous work and to handle multiple
123 events referring to a single user interaction.
124 * Complete on-going investigation on whether scroll performance is also a problem in the web that needs a web API.
125
126### Existing web performance API improvements
127
128 * {#lcp-20204}**Largest Contentful Paint**:
129 * Complete [investigation](https://bugs.chromium.org/p/chromium/issues/detail?id=1045640) on removed nodes
130 and if needed update the API.
131 * [Ignore](https://bugs.chromium.org/p/chromium/issues/detail?id=1133883) images that occupy the full viewport.
132 * {#cls-20204}**Cumulative Layout Shift**: evaluate the impact of triggering on empty or invisible content and update
133 [spec](https://github.com/WICG/layout-instability/issues/61) and implementation accordingly.
134 * {#fcp-20204}**First Contentful Paint**: improve implementation to pass more
135 [tests](https://wpt.fyi/results/paint-timing?label=master&label=experimental).
136 * {#rt-worker-20204}**Navigation Timing**: [Fix](https://crbug.com/925239) encoded/decoded body sizes when going
137 through service workers.
138
139## 2020 Q3 Progress
140
141### New web performance APIs
142
143 * [performance.measureMemory](#measure-memory-20203):
144 * Spec was reviewed and polished.
145 * API support was added for workers (available from Chrome 87).
146 * [Page abandonment](#page-abandonment-20203): improved data was gathered, but more accuracy improvements are needed.
147 * [VisibilityStateEntry](#page-visibility-20203):
148 [explainer](https://docs.google.com/document/d/1l5kHiJRkdQwEN-CYI5_mUNODhQVB5rCyjN4jHDdXDHA/edit#),
149 [discussion](https://github.com/w3c/performance-timeline/issues/105), and TAG
150 [review](https://github.com/w3ctag/design-reviews/issues/534) kicked off, but no consensus yet on API shape.
151 * [FrameTiming](#frame-timing-20203): a lot of research on defining a good metric to capture smoothness.
152 * [isInputPending](#fb-driven-20203): shipped and available from Chrome 87!
153
154### Existing web performance API improvements
155
156 * [LargestContentfulPaint](#lcp-20203):
157 * Did analysis on how LCP would change when removed content is included.
158 * Ignored paints occurring with opacity 0.
John Palmer046f9872021-05-24 01:24:56159 * CumulativeLayoutShift [fixes](https://chromium.googlesource.com/chromium/src/+/main/docs/speed/metrics_changelog/cls.md):
Nicolás Peña Moreno6bbfb9c2020-10-13 20:15:16160 * Ignored shifts from video thumb sliders.
161 * Fixed computations for ink overflow and transforms.
162 * Updated computations when child moves alongside their parent element.
163
164### Interop
165
166 * [Web vitals specs](#vitals-specs-20203): triaged new
167 [issues](https://github.com/search?q=is%3Aissue+created%3A2020-06-01..2020-09-30+repo%3Awicg%2Flayout-instability+repo%3Awicg%2Flargest-contentful-paint+repo%3Awicg%2Fevent-timing&type=issues)
168 as well as existing ones.
169 * [Paint Timing](#paint-timing-20203): fixed two FCP tests by improving our implementation.
170
Nicolás Peña Morenocbb8a052020-07-16 16:42:20171## 2020 Q3 Objectives
Nicolás Peña Morenoc7391bb2020-04-30 22:17:12172
173### New web performance APIs
174
Nicolás Peña Morenocbb8a052020-07-16 16:42:20175 * {#measure-memory-20203}Continue [previous work](#measure-memory-20202) on **performance.measureMemory**.
176 * Extend the scope of the API to workers and cross-site iframes.
177 * Do a review over the spec and polish it.
178 * {#spas-20203}Continue [previous work](#spas-20202) on **Single Page Apps** (SPAs).
179 * Complete partnerships with frameworks and begin gathering data using the strategy based on User Timing annotations.
180 * {#page-abandonment-20203}Continue [previous work](#page-abandonment-20202) on **page load abandonment**.
181 * Decide a path forward for a potential new web API based on data from the metric we recently implemented.
182 * {#page-visibility-20203}Continue [previous work](#page-visibility-20202) on exposing full
183 **[Page Visibility](https://github.com/w3c/page-visibility/)** history. We intend to spec and ship the
184 [VisibilityStateEntry](https://docs.google.com/document/d/1l5kHiJRkdQwEN-CYI5_mUNODhQVB5rCyjN4jHDdXDHA/edit).
Nicolás Peña Morenoc667b222020-07-16 21:39:39185 * {#frame-timing-20203}Work on the
Nicolás Peña Morenocbb8a052020-07-16 16:42:20186 **[Frame Timing](https://docs.google.com/document/d/1t3A56iTN01ReEELJ18_jLYrvc13L3hDTXWK46AafKwE/edit)** proposal.
Nicolás Peña Moreno904a5d92020-07-20 18:24:31187 * Draft a spec.
188 * _(Stretch)_ Land a prototype of the API.
189 * {#fb-driven-20203}Continue [previous work](#fb-driven-20202) on Facebook-driven APIs.
190 * Based on the iframe layerization experiment results, send Intent to Ship for **isInputPending**.
191 * _(Stretch)_ Implement warm initialization logic for the **JS Self-Profiling** API.
Nicolás Peña Morenocbb8a052020-07-16 16:42:20192
193### Existing web performance API improvements
194
195 * {#lcp-20203}Improve quality of **[Largest Contentful Paint](https://github.com/WICG/largest-contentful-paint)**.
196 * Decide whether LCP including removals is better than the current definition (which excludes removals).
197 * Address problems with LCP not correctly accounting for opacity in some cases due to optimizations in paint code: see
198 relevant [bug](https://bugs.chromium.org/p/chromium/issues/detail?id=1092473).
199 * {#normalization-20203}Brainstorm ideas around better **normalization** techniques for existing web performance metrics and
200 socialize these ideas with the W3C Web Perf WG.
201
202### Interop
203
204 * {#vitals-specs-20203}Triage spec issues filed on GitHub. We intend to give higher priority to feeedback on
205 [web vitals](https://web.dev/vitals/) specs.
206 * {#event-timing-20203}Reduce WPT test flakiness on **[Event Timing](https://github.com/WICG/event-timing)**.
207 * {#paint-timing-20203}Change more of Chrome's **[Paint Timing](https://github.com/w3c/paint-timing)** implementation to pass more
208 of the currently failing WPTs.
209
210## 2020 Q2 Progress
211
212* [performance.measureMemory](#measure-memory-20202):
213 * Crafted a plan to enable extending the API to workers as well as to cross-site iframes with the appropriate COEP headers.
214 * Drafted a [spec](https://ulan.github.io/misc/measure-memory-spec/), but it requires review.
215* [Single Page Apps](#spas-20202):
216 * Designed a strategy for routing frameworks to report the start and end of SPAs via User Timing.
217 * Began conversations with such frameworks but haven't started gathering data with the strategy we designed.
218 * Presented our data-driven approach to the W3C Web Perf WG.
219* [Page abandonment](#page-abandonment-20202): Socialized a proposal for how to define abandonment and brainstormed ways in which
220 we could expose the data to web developers. However, we have not yet reached a decision on how we plan to expose the data because
221 there is no one actively working on solving design issues with [Origin Policy](https://wicg.github.io/origin-policy/).
Nicolás Peña Morenoc667b222020-07-16 21:39:39222* [Event Timing](#event-timing-20202): Shipped the API, which should be available on Chrome 85 (see chromestatus
Nicolás Peña Morenocbb8a052020-07-16 16:42:20223 [entry](https://www.chromestatus.com/feature/5167290693713920)).
224* [Page Visibility](#page-visibility-20202): Socialized our proposal and based on feedback will work on shipping
225 VisibilityStateEntry (see the [explainer](https://docs.google.com/document/d/1l5kHiJRkdQwEN-CYI5_mUNODhQVB5rCyjN4jHDdXDHA/edit)).
226* [Layout Instability sources](#cls-sources-20202): Shipped the `sources` attribute, which should be available on Chrome 84 (see
227 chromestatus [entry](https://www.chromestatus.com/feature/5712483207610368)).
228* Fixed layout shifts being reported from controls in the video element, see relevant [bug](https://crbug.com/1088311). The fix is
229 available on Chrome 85.
230* [Largest Contentful Paint removal](#lcp-removal-20202): Added a metric that computes an experimental version of LCP which
231 includes content that is removed from the page. We're waiting to get Stable data in order to decide whether this is an
232 improvement over the existing LCP metric.
233* [Final Largest Contentful Paint](#final-lcp-20202): Wrote a
234 [proposal](https://docs.google.com/document/d/1a24lxTmSycox5HS1mdtj09Sinf1mJCifdv-oREUJQ1A/edit) on how to surface the final LCP
235 candidate to a page, but this work has been deprioritized for the time being.
236* [Paint Timing](#paint-timing-20202): Implemented a couple of fixes and now pass two more tests, but more work is needed to pass
237 all of them.
238* [Documentation](#documentation-20202): Submitted feedback on some of the metrics content on web.dev, most of which was actioned
239 upon. Updated MDN entries for core web vitals metrics.
Nicolás Peña Moreno904a5d92020-07-20 18:24:31240* [Facebook-driven APIs](#fb-driven-20202): Landed support for predicting touch and gesture events for isInputPending.
Nicolás Peña Morenocbb8a052020-07-16 16:42:20241
242## 2020 Q2 Objectives
243
244### New web performance APIs
245
246 * {#measure-memory-20202}Work towards shipping
Nicolás Peña Morenoc7391bb2020-04-30 22:17:12247 **[performance.measureMemory](https://github.com/WICG/performance-measure-memory)**.
248 This API intends to provide memory measurements for web pages without
249 leaking information. It will replace the non-standard performance.memory and
250 provide more accurate information, but will require the website to be
251 [cross-origin
252 isolated](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/crossOriginIsolated).
253 Try it out with the Origin Trial
254 [here](https://web.dev/monitor-total-page-memory-usage/#using-performance.measurememory())!
255 Deliverables for this quarter:
256 * Extend the scope of the API to workers.
257 * Draft a spec.
258
Nicolás Peña Morenocbb8a052020-07-16 16:42:20259 * {#spas-20202}Work towards web perf support for **Single Page Apps** (SPAs). SPAs have
Nicolás Peña Morenoc7391bb2020-04-30 22:17:12260 long been mistreated by our web performance APIs, which mostly focus on the
261 initial page load for ‘multi-page apps’. It will be a long process to
262 resolve all measurement gaps, but we intend to start making progress on
263 better performance measurements for SPAs by using a data-driven approach.
264 Deliverables for this quarter:
265 * Implement a strategy for measuring the performance of SPA navigations in
266 RUM, based on explicit navigation annotations via User Timing.
267 * Partner with some frameworks to gather data using said strategy.
268 * Socialize an explainer with our ideas.
269
Nicolás Peña Morenocbb8a052020-07-16 16:42:20270 * {#page-abandonment-20202}Work towards web perf support for **page abandonment**. Currently, our APIs
Nicolás Peña Morenoc7391bb2020-04-30 22:17:12271 are blind to a class of users that decide to leave the website very early
272 on, before the performance measurement framework of the website is set into
273 place. This quarter, we plan to create and socialize a proposal about
274 measuring early page abandonment.
275
Nicolás Peña Morenocbb8a052020-07-16 16:42:20276 * {#event-timing-20202}Ship the full **[Event Timing](https://github.com/WICG/event-timing)** API.
Nicolás Peña Morenoc7391bb2020-04-30 22:17:12277 Currently, Chrome ships only ‘first-input’ to enable users to measure their
278 [First Input Delay](https://web.dev/fid/). We intend to ship support for
279 ‘event’ so that developers can track all slow events. Each entry will
280 include a ‘target’ attribute to know which was the EventTarget. We’ll
281 support a durationThreshold parameter in the observer to tweak the duration
282 of events being observed. Finally, we’ll also have performance.eventCounts
283 to enable computing estimated percentiles based on the data received.
284
Nicolás Peña Morenocbb8a052020-07-16 16:42:20285 * {#page-visibility-20202}Ship a **[Page Visibility](https://github.com/w3c/page-visibility/)**
Nicolás Peña Morenoc7391bb2020-04-30 22:17:12286 observer. Right now, the Page Visibility API allows registering an event
287 listener for future changes in visibility, but any visibility states prior
288 to that are missed. The solution to this is having an observer which enables
289 ‘buffered’ entries, so a full history of the visibility states of the page
290 is available. An alternative considered was having a boolean flag in the
291 PerformanceEntry stating that the page was backgrounded before the entry was
292 created, but there was overwhelming
293 [support](https://lists.w3.org/Archives/Public/public-web-perf/2020Apr/0005.html)
294 for the observer instead.
295
Nicolás Peña Moreno904a5d92020-07-20 18:24:31296 * {#fb-driven-20202}Provide support for two Facebook-driven APIs:
Nicolás Peña Morenoc7391bb2020-04-30 22:17:12297 [isInputPending](https://github.com/WICG/is-input-pending) and [JavaScript
298 Self-Profiling](https://github.com/WICG/js-self-profiling). The
299 **isInputPending** API enables developers to query whether the browser has
300 received but not yet processed certain kinds of user inputs. This way, work
301 can be scheduled on longer tasks while still enabling the task to stopped
302 when higher priority work arises. The **JS Self-Profiling** API enables
303 developers to collect JS profiles from real users, given a sampling rate and
304 capacity. It enables measuring the performance impact of specific JS
305 functions and finding hotspots in JS code.
306
307### Existing web performance API improvements
308
Nicolás Peña Morenocbb8a052020-07-16 16:42:20309* {#cls-sources-20202}Ship the
Nicolás Peña Morenoc7391bb2020-04-30 22:17:12310 [sources](https://github.com/WICG/layout-instability#Source-Attribution)
311 attribute for the
312 **[LayoutInstability](https://github.com/WICG/layout-instability)** API. The
313 Layout Instability API provides excellent information about content shifting
314 on a website. This API is already shipped in Chrome. However, it’s often hard
315 to figure out which content is shifting. This new attribute will inform
316 developers about the shifting elements and their locations within the
317 viewport.
318
Nicolás Peña Morenocbb8a052020-07-16 16:42:20319* {#lcp-removal-20202}**[LargestContentfulPaint](https://github.com/WICG/largest-contentful-paint)**:
Nicolás Peña Morenoc7391bb2020-04-30 22:17:12320 gather data about LCP without excluding DOM nodes that were removed. The
321 Largest Contentful Paint API exposes the largest image or text that is painted
322 in the page. Currently, content removed from the website is also removed as a
323 candidate for LCP. However, this negatively affects some websites, for
324 instance those with certain types of image carousels. This quarter, we’ll
325 gather data internally to determine whether we should start including removed
326 DOM content. The API itself will not change for now.
327
Nicolás Peña Morenocbb8a052020-07-16 16:42:20328* {#final-lcp-20202}_(Stretch)_ Work on exposing the **‘final’ LargestContentfulPaint** candidate.
Nicolás Peña Morenoc7391bb2020-04-30 22:17:12329 Currently LCP just emits a new entry whenever a new candidate is found. This
330 means that a developer has no way to know when LCP is ‘done’, which can happen
331 early on if there is some relevant user input in the page. We could consider
332 surfacing an entry to indicate that LCP computations are finished and
333 including the final LCP value, when possible. There’s also an
334 [idea](https://github.com/WICG/largest-contentful-paint/issues/43#issuecomment-608569132)
335 to include some heuristics to get a higher quality signal regarding whether
336 the LCP obtained seems ‘valid’. If we have time this quarter, we’d be happy to
337 do some exploration on this.
338
339* _(Stretch)_ **[ResourceTiming](https://github.com/w3c/resource-timing)**:
340 outline a plan to fix the problem of TAO (Timing-Allow-Origin) being an opt-in
341 for non-timing information such as transferSize. This may mean using a new
342 header or relying on some of the upcoming new security primitives in the web.
343 If we have time this quarter, we’d like to begin tackling this problem by
344 socializing a concrete proposal for a fix.
345
346### Interop and documentation
347
Nicolás Peña Morenocbb8a052020-07-16 16:42:20348* {#paint-timing-20202}**[Paint Timing](https://github.com/w3c/paint-timing)**: change the Chromium
Nicolás Peña Morenoc7391bb2020-04-30 22:17:12349 implementation so it passes [new web platform
350 tests](https://wpt.fyi/results/paint-timing/fcp-only?label=experimental&label=master&aligned).
351 These tests are based on the feedback from WebKit. They intend to ship First
352 Contentful Paint in the near future!
353
Nicolás Peña Morenocbb8a052020-07-16 16:42:20354* {#documentation-20202}Improve the **documentation** of our APIs on MDN and web.dev. We have been
Nicolás Peña Morenoc7391bb2020-04-30 22:17:12355 busily shipping new web perf APIs, but some of the documentation of them has
356 lagged behind. For instance, we’ll make sure that there’s MDN pages on all of
357 the new APIs we’ve shipped, and we’ll collaborate with DevRel to ensure that
358 the documentation on web.dev is accurate.