Summary: | [IntersectionObserver] Regression: No initial observation when nothing else triggers rendering | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Ali Juma <ajuma> | ||||||
Component: | Layout and Rendering | Assignee: | Ali Juma <ajuma> | ||||||
Status: | RESOLVED FIXED | ||||||||
Severity: | Normal | CC: | bfulgham, commit-queue, pvollan, rohitrao, sabouhallawa, simon.fraser, webkit-bug-importer, zalan | ||||||
Priority: | P2 | Keywords: | InRadar | ||||||
Version: | WebKit Local Build | ||||||||
Hardware: | Unspecified | ||||||||
OS: | Unspecified | ||||||||
See Also: | https://bugs.webkit.org/show_bug.cgi?id=198382 | ||||||||
Attachments: |
|
Description
Ali Juma
2019-05-14 12:57:06 PDT
Did we not have tests that detected this, or did we skip them? (In reply to Simon Fraser (smfr) from comment #1) > Did we not have tests that detected this, or did we skip them? Most of our tests (or at least, most of the WPTs) use rAF to wait for observations (which triggers a rendering update), or seem to call |observe| early enough that a rendering update will be scheduled for the initial layout of the page. Speaking of skipped tests, the rAF changes seem to have fixed all of the flakiness we were seeing on the Mac Debug bots, so I'll go ahead and update those expectations. It turns out that at least one of the reasons that no existing test caught this is that the speculative tiling timer and the tile size change timer trigger flushes (and rendering updates) even after the page is loaded and nothing is changing. So calls to IntersectionObserver::observe that happen within ~1 second of page load will work properly even though IntersectionObserver isn’t itself scheduling a rendering update. Created attachment 369985 [details]
Patch
Comment on attachment 369985 [details] Patch Clearing flags on attachment: 369985 Committed r245396: <https://trac.webkit.org/changeset/245396> All reviewed patches have been landed. Closing bug. |