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