[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 19:18:28 PDT 2016


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

--- Comment #7 from Simon Fraser (smfr) <simon.fraser at apple.com> ---
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
> +        To give WebKit a chance to deliver the painting milestones to its client after the commit,
> +        we must tell it about them before or during the commit. To that end, we should not defer
> +        the call to firePaintRelatedMilestonesIfNeeded until after the commit.

Was it deferred for a good reason, like coalescing?

> Source/WebCore/rendering/RenderLayerCompositor.cpp:572
> +        frameView.firePaintRelatedMilestonesIfNeeded();

Does one really "fire" a milestone, or just reach or pass it?

> 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.

> Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:431
> +                if (drawingArea->m_pendingNewlyReachedLayoutMilestones)
> +                    retainedPage->send(Messages::WebPageProxy::DidReachLayoutMilestone(drawingArea->m_pendingNewlyReachedLayoutMilestones));
> +                drawingArea->m_pendingNewlyReachedLayoutMilestones = 0;

I would like to see this moved to a self-contained function.

> Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:439
> +                if (drawingArea->m_pendingNewlyReachedLayoutMilestones)
> +                    retainedPage->send(Messages::WebPageProxy::DidReachLayoutMilestone(drawingArea->m_pendingNewlyReachedLayoutMilestones));
> +                drawingArea->m_pendingNewlyReachedLayoutMilestones = 0;

...which you could also call here.

-- 
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/e33fc2c4/attachment.html>


More information about the webkit-unassigned mailing list