Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(502)

Unified Diff: content/browser/frame_host/render_frame_host_manager.cc

Issue 1685213002: Propagate window coordinates to out-of-process iframes renderers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@sendscreenrects
Patch Set: addressing comments Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/frame_host/render_frame_host_manager.cc
diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc
index 11894a710656c933716864adafc91444db96b4ab..3169e6436fd0a6149b649a659cef3c3d90a65e95 100644
--- a/content/browser/frame_host/render_frame_host_manager.cc
+++ b/content/browser/frame_host/render_frame_host_manager.cc
@@ -2514,4 +2514,35 @@ int RenderFrameHostManager::GetOpenerRoutingID(SiteInstance* instance) {
->GetRoutingIdForSiteInstance(instance);
}
+void RenderFrameHostManager::SendPageMessage(IPC::Message* msg) {
+ DCHECK(IPC_MESSAGE_CLASS(*msg) == PageMsgStart);
+
+ // We should always deliver page messages through the main frame.
+ DCHECK(!frame_tree_node_->parent());
+
+ if ((IPC_MESSAGE_CLASS(*msg) != PageMsgStart) || frame_tree_node_->parent())
+ return;
+
+ for (const auto& pair : proxy_hosts_) {
+ RenderFrameProxyHost* proxy = pair.second.get();
+
+ IPC::Message* copy = new IPC::Message(*msg);
+ copy->set_routing_id(proxy->GetRoutingID());
+ proxy->Send(copy);
+ }
+
+ if (speculative_render_frame_host_) {
+ IPC::Message* copy = new IPC::Message(*msg);
+ copy->set_routing_id(speculative_render_frame_host_->GetRoutingID());
+ speculative_render_frame_host_->Send(copy);
+ } else if (pending_render_frame_host_) {
+ IPC::Message* copy = new IPC::Message(*msg);
+ copy->set_routing_id(pending_render_frame_host_->GetRoutingID());
+ pending_render_frame_host_->Send(copy);
nasko 2016/03/03 18:28:57 These 3 lines are repeating 3 times in this method
lfg 2016/03/03 22:09:37 I've switched to use a lambda, let me know what yo
+ }
+
+ msg->set_routing_id(render_frame_host_->GetRoutingID());
+ render_frame_host_->Send(msg);
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698