Need a new layout milestone to notify bundle clients when the header has been
flushed
https://bugs.webkit.org/show_bug.cgi?id=114706
-and corresponding-
<rdar://problem/13657284>
Reviewed by Simon Fraser.
Source/WebCore:
New LayoutMilestone is DidFirstFlushForHeaderLayer.
* page/LayoutMilestones.h:
New API to allow removing a LayoutMilestone.
* WebCore.exp.in:
* page/Page.cpp:
(WebCore::Page::removeLayoutMilestones):
* page/Page.h:
(Page):
New boolean member variable m_headerLayerAwaitingFirstFlush keeps track of whether
we need to send the DidFirstFlushForHeaderLayer milestone.
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::RenderLayerCompositor):
Send the milestone if appropriate.
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
Set m_headerLayerAwaitingFirstFlush to true for a newly created layer.
(WebCore::RenderLayerCompositor::updateLayerForHeader):
Source/WebKit2:
Make this new LayoutMilestone private at the API layer.
* Shared/API/c/WKPageLoadTypes.h:
* Shared/API/c/WKPageLoadTypesPrivate.h: Added.
Handle the new milestone.
* Shared/API/c/WKSharedAPICast.h:
(WebKit::toWKLayoutMilestones):
(WebKit::toLayoutMilestones):
New file to make the milestone private.
* WebKit2.xcodeproj/project.pbxproj:
Add or remove the DidFirstFlushForHeaderLayer millstone based on whether we just
added or removed a header.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::setHeaderLayerWithHeight):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148564 268f45cc-cd09-0410-ab3c-d52691b4dbfc
13 files changed