Title: [186586] trunk/Source/WebKit2
- Revision
- 186586
- Author
- m...@apple.com
- Date
- 2015-07-09 00:01:49 -0700 (Thu, 09 Jul 2015)
Log Message
[Cocoa] Report the first paint after committing a load as a rendering progress event
https://bugs.webkit.org/show_bug.cgi?id=146765
Reviewed by Tim Horton.
* Shared/API/Cocoa/_WKRenderingProgressEvents.h: Added _WKRenderingProgressEventFirstPaint.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didCommitLayerTree:]): If this is the first layer tree commit since the load
was committed, and the delegate is observing _WKRenderingProgressEventFirstPaint, call
NavigationState::didFirstPaint.
* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::didFirstPaint): Added. Calls -_webView:renderingProgressDidChange:
with _WKRenderingProgressEventFirstPaint.
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (186585 => 186586)
--- trunk/Source/WebKit2/ChangeLog 2015-07-09 06:41:12 UTC (rev 186585)
+++ trunk/Source/WebKit2/ChangeLog 2015-07-09 07:01:49 UTC (rev 186586)
@@ -1,3 +1,22 @@
+2015-07-09 Dan Bernstein <m...@apple.com>
+
+ [Cocoa] Report the first paint after committing a load as a rendering progress event
+ https://bugs.webkit.org/show_bug.cgi?id=146765
+
+ Reviewed by Tim Horton.
+
+ * Shared/API/Cocoa/_WKRenderingProgressEvents.h: Added _WKRenderingProgressEventFirstPaint.
+
+ * UIProcess/API/Cocoa/WKWebView.mm:
+ (-[WKWebView _didCommitLayerTree:]): If this is the first layer tree commit since the load
+ was committed, and the delegate is observing _WKRenderingProgressEventFirstPaint, call
+ NavigationState::didFirstPaint.
+
+ * UIProcess/Cocoa/NavigationState.h:
+ * UIProcess/Cocoa/NavigationState.mm:
+ (WebKit::NavigationState::didFirstPaint): Added. Calls -_webView:renderingProgressDidChange:
+ with _WKRenderingProgressEventFirstPaint.
+
2015-07-08 Jinwoo Song <jinwoo7.s...@samsung.com>
[EFL] When closing inspector window, EwkView is not released properly.
Modified: trunk/Source/WebKit2/Shared/API/Cocoa/_WKRenderingProgressEvents.h (186585 => 186586)
--- trunk/Source/WebKit2/Shared/API/Cocoa/_WKRenderingProgressEvents.h 2015-07-09 06:41:12 UTC (rev 186585)
+++ trunk/Source/WebKit2/Shared/API/Cocoa/_WKRenderingProgressEvents.h 2015-07-09 07:01:49 UTC (rev 186586)
@@ -33,7 +33,8 @@
_WKRenderingProgressEventFirstPaintWithSignificantArea = 1 << 2,
_WKRenderingProgressEventReachedSessionRestorationRenderTreeSizeThreshold WK_ENUM_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA) = 1 << 3,
_WKRenderingProgressEventFirstLayoutAfterSuppressedIncrementalRendering WK_ENUM_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA) = 1 << 4,
- _WKRenderingProgressEventFirstPaintAfterSuppressedIncrementalRendering WK_ENUM_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA) = 1 << 5
+ _WKRenderingProgressEventFirstPaintAfterSuppressedIncrementalRendering WK_ENUM_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA) = 1 << 5,
+ _WKRenderingProgressEventFirstPaint WK_ENUM_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA) = 1 << 6,
} WK_ENUM_AVAILABLE(10_10, 8_0);
#endif
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm (186585 => 186586)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm 2015-07-09 06:41:12 UTC (rev 186585)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm 2015-07-09 07:01:49 UTC (rev 186586)
@@ -971,6 +971,8 @@
_needsResetViewStateAfterCommitLoadForMainFrame = NO;
[_scrollView setContentOffset:[self _adjustedContentOffset:CGPointZero]];
[self _updateVisibleContentRects];
+ if (_observedRenderingProgressEvents & _WKRenderingProgressEventFirstPaint)
+ _navigationState->didFirstPaint();
}
bool isTransactionAfterPageRestore = layerTreeTransaction.transactionID() >= _firstTransactionIDAfterPageRestore;
Modified: trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.h (186585 => 186586)
--- trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.h 2015-07-09 06:41:12 UTC (rev 186585)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.h 2015-07-09 07:01:49 UTC (rev 186586)
@@ -73,6 +73,8 @@
void navigationGestureDidEnd(bool willNavigate, WebBackForwardListItem&);
void willRecordNavigationSnapshot(WebBackForwardListItem&);
+ void didFirstPaint();
+
private:
class NavigationClient final : public API::NavigationClient {
public:
Modified: trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.mm (186585 => 186586)
--- trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.mm 2015-07-09 06:41:12 UTC (rev 186585)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.mm 2015-07-09 07:01:49 UTC (rev 186586)
@@ -224,6 +224,18 @@
[static_cast<id <WKNavigationDelegatePrivate>>(navigationDelegate) _webView:m_webView willSnapshotBackForwardListItem:wrapper(item)];
}
+void NavigationState::didFirstPaint()
+{
+ if (!m_navigationDelegateMethods.webViewRenderingProgressDidChange)
+ return;
+
+ auto navigationDelegate = m_navigationDelegate.get();
+ if (!navigationDelegate)
+ return;
+
+ [static_cast<id <WKNavigationDelegatePrivate>>(navigationDelegate) _webView:m_webView renderingProgressDidChange:_WKRenderingProgressEventFirstPaint];
+}
+
NavigationState::NavigationClient::NavigationClient(NavigationState& navigationState)
: m_navigationState(navigationState)
{
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes