Index: content/browser/web_contents/web_contents_impl.cc |
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc |
index b02984b877e81175d44226033125e7bff05f4c42..3e0407ed6b2f2f913650e35f660d0a26c2aff40d 100644 |
--- a/content/browser/web_contents/web_contents_impl.cc |
+++ b/content/browser/web_contents/web_contents_impl.cc |
@@ -510,6 +510,8 @@ bool WebContentsImpl::OnMessageReceived(RenderViewHost* render_view_host, |
OnMediaPlayingNotification) |
IPC_MESSAGE_HANDLER(FrameHostMsg_MediaPausedNotification, |
OnMediaPausedNotification) |
+ IPC_MESSAGE_HANDLER(FrameHostMsg_WidgetVisibleStateChanged, |
+ OnWidgetVisibleStateChanged) |
IPC_MESSAGE_HANDLER(ViewHostMsg_DidLoadResourceFromMemoryCache, |
OnDidLoadResourceFromMemoryCache) |
IPC_MESSAGE_HANDLER(ViewHostMsg_DidDisplayInsecureContent, |
@@ -1692,6 +1694,15 @@ void WebContentsImpl::OnMoveValidationMessage( |
delegate_->MoveValidationMessage(this, anchor_in_root_view); |
} |
+void WebContentsImpl::OnWidgetVisibleStateChanged( |
+ WidgetVisibleState widget_visible_state) { |
+ if (widget_visible_state == |
+ WIDGET_VISIBLE_STATE_FIRST_VISUALLY_NON_EMPTY_LAYOUT) { |
+ FOR_EACH_OBSERVER( |
+ WebContentsObserver, observers_, DidFirstVisuallyNonEmptyPaint()); |
+ } |
+} |
+ |
void WebContentsImpl::DidSendScreenRects(RenderWidgetHostImpl* rwh) { |
if (browser_plugin_embedder_) |
browser_plugin_embedder_->DidSendScreenRects(); |