Index: content/browser/frame_host/render_frame_host_impl.cc |
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc |
index e310ae240da02a3c1820458dd50150b2be3fe0ae..b34a765626d634daf7cb14efcec62950ebfae514 100644 |
--- a/content/browser/frame_host/render_frame_host_impl.cc |
+++ b/content/browser/frame_host/render_frame_host_impl.cc |
@@ -179,6 +179,10 @@ RenderFrameHostImpl::~RenderFrameHostImpl() { |
// NULL out the swapout timer; in crash dumps this member will be null only if |
// the dtor has run. |
swapout_event_monitor_timeout_.reset(); |
+ |
+ for (const auto& iter : flush_visual_state_callbacks_) { |
mkosiba (inactive)
2015/01/19 11:15:58
IIRC clang-format says no space before the :
Ignacio Solla
2015/01/19 18:26:41
Done.
|
+ iter.second.Run(false); |
+ } |
} |
int RenderFrameHostImpl::GetRoutingID() { |
@@ -316,6 +320,8 @@ bool RenderFrameHostImpl::OnMessageReceived(const IPC::Message &msg) { |
IPC_MESSAGE_HANDLER(FrameHostMsg_ContextMenu, OnContextMenu) |
IPC_MESSAGE_HANDLER(FrameHostMsg_JavaScriptExecuteResponse, |
OnJavaScriptExecuteResponse) |
+ IPC_MESSAGE_HANDLER(FrameHostMsg_FlushVisualStateResponse, |
+ OnFlushVisualStateResponse) |
IPC_MESSAGE_HANDLER_DELAY_REPLY(FrameHostMsg_RunJavaScriptMessage, |
OnRunJavaScriptMessage) |
IPC_MESSAGE_HANDLER_DELAY_REPLY(FrameHostMsg_RunBeforeUnloadConfirm, |
@@ -939,6 +945,16 @@ void RenderFrameHostImpl::OnJavaScriptExecuteResponse( |
} |
} |
+void RenderFrameHostImpl::OnFlushVisualStateResponse(int id) { |
+ auto it = flush_visual_state_callbacks_.find(id); |
+ if (it != flush_visual_state_callbacks_.end()) { |
+ it->second.Run(true); |
+ flush_visual_state_callbacks_.erase(it); |
+ } else { |
+ NOTREACHED() << "Received script response for unknown request"; |
+ } |
+} |
+ |
void RenderFrameHostImpl::OnRunJavaScriptMessage( |
const base::string16& message, |
const base::string16& default_prompt, |
@@ -1526,6 +1542,14 @@ void RenderFrameHostImpl::ActivateFindInPageResultForAccessibility( |
} |
} |
+void RenderFrameHostImpl::FlushVisualState( |
+ const FlushVisualStateResultCallback& callback) { |
+ static uint64 next_id = 1; |
+ int key = next_id++; |
+ Send(new FrameMsg_FlushVisualStateRequest(routing_id_, key)); |
+ flush_visual_state_callbacks_.insert(std::make_pair(key, callback)); |
+} |
+ |
#if defined(OS_WIN) |
void RenderFrameHostImpl::SetParentNativeViewAccessible( |