WPT result: https://www.webpagetest.org/video/compare.php?tests=161025_TS_AW3-r:1-c:0
Trace file: https://www.webpagetest.org/getgzip.php?test=161025_TS_AW3&file=1_trace.json
FirstMeaningfulPaint is reported at 4.1sec, where only a spinner icon is painted. This is even before the FirstContentfulPaint (7.4sec).
WPT's network timeline shows that there is a large gap in the network activity, around 4sec ~ 6sec. CPU is busy executing JS during this period (look at the bottom of the timeline).
FirstMeaningfulPaintDetector thinks this 2 seconds network idle as load completion, and reports a spinner-only paint as first meaningful paint.
Yes FirstMeaningfulPaintDetector still has this problem.
IIUC, IdlenessDetector (WebKit/Source/core/loader/IdlenessDetector.h) excludes task processing time from its "network almost idle" signal calculation, so we could plumb that signal to FirstMeaningfulPaintDetector to fix this plobem.
lpy@, does that sound correct?
Comment 1 by bugdroid1@chromium.org
, Dec 15 2016