<html>
<head>
<base href="https://bugs.webkit.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - REGRESSION (r206247): Painting milestones can be delayed until the next layer flush"
href="https://bugs.webkit.org/show_bug.cgi?id=164340#c7">Comment # 7</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - REGRESSION (r206247): Painting milestones can be delayed until the next layer flush"
href="https://bugs.webkit.org/show_bug.cgi?id=164340">bug 164340</a>
from <span class="vcard"><a class="email" href="mailto:simon.fraser@apple.com" title="Simon Fraser (smfr) <simon.fraser@apple.com>"> <span class="fn">Simon Fraser (smfr)</span></a>
</span></b>
<pre>Comment on <span class=""><a href="attachment.cgi?id=293734&action=diff" name="attach_293734" title="Have WebKit, not WebCore, defer sending the milestones until after the commit">attachment 293734</a> <a href="attachment.cgi?id=293734&action=edit" title="Have WebKit, not WebCore, defer sending the milestones until after the commit">[details]</a></span>
Have WebKit, not WebCore, defer sending the milestones until after the commit
View in context: <a href="https://bugs.webkit.org/attachment.cgi?id=293734&action=review">https://bugs.webkit.org/attachment.cgi?id=293734&action=review</a>
<span class="quote">> 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.</span >
Was it deferred for a good reason, like coalescing?
<span class="quote">> Source/WebCore/rendering/RenderLayerCompositor.cpp:572
> + frameView.firePaintRelatedMilestonesIfNeeded();</span >
Does one really "fire" a milestone, or just reach or pass it?
<span class="quote">> Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:428
> + if (TiledCoreAnimationDrawingArea* drawingArea = static_cast<TiledCoreAnimationDrawingArea*>(retainedPage->drawingArea())) {</span >
auto foo = downcast<TiledCoreAnimationDrawingArea>() ?
When is drawingArea != this? Very confusing to fetch it here again.
<span class="quote">> Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:431
> + if (drawingArea->m_pendingNewlyReachedLayoutMilestones)
> + retainedPage->send(Messages::WebPageProxy::DidReachLayoutMilestone(drawingArea->m_pendingNewlyReachedLayoutMilestones));
> + drawingArea->m_pendingNewlyReachedLayoutMilestones = 0;</span >
I would like to see this moved to a self-contained function.
<span class="quote">> Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:439
> + if (drawingArea->m_pendingNewlyReachedLayoutMilestones)
> + retainedPage->send(Messages::WebPageProxy::DidReachLayoutMilestone(drawingArea->m_pendingNewlyReachedLayoutMilestones));
> + drawingArea->m_pendingNewlyReachedLayoutMilestones = 0;</span >
...which you could also call here.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>