Closed Bug 1506976 Opened 11 months ago Closed 8 months ago

Add telemetry and profiler markers for Time-to-FirstContentfulPaintCompositeEnd: measure until the composition for the paint has completed, and not just until display list building

Categories

(Core :: Web Painting, defect, P1)

defect

Tracking

()

RESOLVED FIXED
mozilla67
Tracking Status
firefox65 --- wontfix
firefox66 --- fixed
firefox67 --- fixed

People

(Reporter: mstange, Assigned: mstange)

References

Details

Attachments

(1 file)

We have various pieces of instrumentation for measuring page load until a certain paint. At the moment, all these paint measurements take their "end" timestamp at the time the display list for that paint is built.
However, this skips a large part of the painting pipeline: tile allocation, rasterization (which can happen on a different thread), time until the transaction is processed in the compositor thread's event queue, compositing.

We should build upon the framework from bug 1501442 to obtain the correct timestamp here. This will have two advantages:
 - The measured value reflects reality more closely.
 - It's easier to associate these timings / markers with screenshots taken in the compositor. This makes it easier to assess their validity.

Especially the latter is really hard to do correctly with the current setup.
Priority: -- → P3
Assignee: nobody → mstange
Status: NEW → ASSIGNED
Priority: P3 → P1

Small change of plans: Non-blank paint is going away, so I'm not going to implement compositeEnd timing for it. I'm only going to implement it for FirstContentfulPaint. I'm also not going to implement it for DOMContentFlushed: The word "flushed" in there really just means "the main thread work of a paint has run".

Summary: Make non-blank paint instrumentation and friends (DomContentFlushed, TTFCP) measure until the composition for the paint has completed, and not just until display list building → Add telemetry and profiler markers for Time-to-FirstContentfulPaintCompositeEnd: measure until the composition for the paint has completed, and not just until display list building
Pushed by mstange@themasta.com:
https://hg.mozilla.org/integration/autoland/rev/c27aa490f40b
Make FirstContentfulPaint timing measure until the composite end of the paint. r=bas
Status: ASSIGNED → RESOLVED
Closed: 8 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla67

Comment on attachment 9041924 [details]
Bug 1506976 - Make FirstContentfulPaint timing measure until the composite end of the paint. r?Bas

Beta/Release Uplift Approval Request

Feature/Bug causing the regression

none

User impact if declined

Telemetry numbers for FirstContentfulPaint would not be comparable between Beta and Nightly.

Is this code covered by automated tests?

No

Has the fix been verified in Nightly?

Yes

Needs manual test from QE?

No

If yes, steps to reproduce

List of other uplifts needed

Bug 1515132

Risk to taking this patch

Low

Why is the change risky/not risky? (and alternatives if risky)

Only affects how a certain telemetry number is collected, does not affect anything user-facing, has baked on Nightly for a while

String changes made/needed

none

Attachment #9041924 - Flags: approval-mozilla-beta?

Comment on attachment 9041924 [details]
Bug 1506976 - Make FirstContentfulPaint timing measure until the composite end of the paint. r?Bas

Support for measuring page load/rendering, OK for uplift to beta 8.
Should uplift along with the patch in bug 1515132.

Attachment #9041924 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
You need to log in before you can comment on or make changes to this bug.