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 af0c6fcc9a43af5997fc99815ca11e7f44696bee..50f7fc5f70f8e72abd88500ae132a3514e5186d4 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_) { |
+ 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, |
@@ -933,6 +939,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, |
@@ -1516,6 +1532,14 @@ void RenderFrameHostImpl::ActivateFindInPageResultForAccessibility( |
} |
} |
+void RenderFrameHostImpl::FlushVisualState( |
+ const FlushVisualStateResultCallback& callback) { |
+ static int next_id = 1; |
mkosiba (inactive)
2015/01/14 18:17:12
or maybe uint64 to be extra safe :P
Ignacio Solla
2015/01/16 16:02:07
Done.
|
+ 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( |