You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// Total time spent in forced layout/style inside this function
306
294
forcedStyleAndLayoutDuration,
307
295
308
-
// The time when the callback was queued, e.g. the event timeStamp or the time when
309
-
// the timeout was supposed to be invoked.
310
-
desiredExecutionStart,
296
+
// Total time spent in "pausing" synchronous operations (alert, synchronous XHR)
297
+
pauseDuration,
311
298
312
299
// In the case of promise resolver this would be the invoker's source location
313
300
// Note that we expose character position rather than line/column to avoid overhead of line splitting.
@@ -336,9 +323,13 @@ cross-origin (same-agent). The details about rendering the frame, such as
336
323
rendered serially. That's because this information is already observable, by using
337
324
`requestAnimationFrame` and `ResizeObserver` and measuring the delay between them. The premise is
338
325
that global "update the rendering" timing information is already observable across same-agent
339
-
windows, so exposing it directly does not leak new cross-origin information. However, the idea
340
-
exposing less information to cross-origin same-agent subframes (as in, expose the rendering info
341
-
only to the main frame) is open for discussion.
326
+
windows, so exposing it directly does not leak new cross-origin information.
327
+
328
+
On top of that, LoAF only exposes this timing when the animation frame is long, while using the
329
+
existing techniques can measure this timing also for short animation frames.
330
+
331
+
To conclude, this new API exposes cross-origin same-agent information that is currently already
332
+
available and not protected, and in a lower fidelity than existing APIs.
342
333
343
334
### Notes, complexity, doubts, future ideas, TODOs
344
335
@@ -360,15 +351,9 @@ a bit different but relies on similar principles:
360
351
or rely on "discarded rendering opportunities" as the qualifier for sluggishness alongside (or
361
352
instead of) millisecond duration.
362
353
363
-
1. Consider separating layout & style durations.
364
-
365
354
1. Exposing source locations might be a bit tricky or implementation defined.
366
355
This can be an optional field but in any case requires some research.
367
356
368
-
1. Clarify how this correlates to [JS Profiler markers](https://github.com/WICG/js-self-profiling/blob/main/markers.md). In general performance observer aspire to be expose succinct important information with
369
-
minimal overhead, while profiling exposes "everything" with some more overhead, but the differences
370
-
and relationship can be further understood.
371
-
372
357
## Relationship with TBT
373
358
374
359
TBT ([total blocking time](https://web.dev/tbt/)) is a metric that allows measuring how responsive/sluggish the experience is during page load.
0 commit comments