[Webkit-unassigned] [Bug 164340] REGRESSION (r206247): Painting milestones can be delayed until the next layer flush

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Nov 2 21:06:42 PDT 2016


https://bugs.webkit.org/show_bug.cgi?id=164340

--- Comment #8 from mitz at webkit.org <mitz at webkit.org> ---
Comment on attachment 293734
  --> https://bugs.webkit.org/attachment.cgi?id=293734
Have WebKit, not WebCore, defer sending the milestones until after the commit

View in context: https://bugs.webkit.org/attachment.cgi?id=293734&action=review

>> Source/WebCore/ChangeLog:11
>> +        the call to firePaintRelatedMilestonesIfNeeded until after the commit.
> 
> Was it deferred for a good reason, like coalescing?

It was deferred in order to make sure that WebKit client gets notified only after the commit (see bug 115753). That bug was probably reintroduced when <https://trac.webkit.org/r166015> (the fix for bug 130541) made RenderLayerBacking::paintIntoLayer() call FrameView::didPaintContents(), which fires the paint-related milestones synchronously. That is, until <https://trac.webkit.org/r206247> introduced a completely different way for the milestones to be deferred, which happened to defer them too much in some cases.

>> Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:428
>> +            if (TiledCoreAnimationDrawingArea* drawingArea = static_cast<TiledCoreAnimationDrawingArea*>(retainedPage->drawingArea())) {
> 
> auto foo = downcast<TiledCoreAnimationDrawingArea>() ?
> 
> When is drawingArea != this? Very confusing to fetch it here again.

drawingArea is null if in the mean while WebPage::close has been called.

>> Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:439
>> +                drawingArea->m_pendingNewlyReachedLayoutMilestones = 0;
> 
> ...which you could also call here.

I waffled on this. It will be a similar number of lines of code, and once 10.10 support is gone, it will be even more silly for it to be a function.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20161103/2f3fe86b/attachment-0001.html>


More information about the webkit-unassigned mailing list