OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/frame_host/render_frame_host_manager.h" | 5 #include "content/browser/frame_host/render_frame_host_manager.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
256 | 256 |
257 RenderWidgetHostView* RenderFrameHostManager::GetRenderWidgetHostView() const { | 257 RenderWidgetHostView* RenderFrameHostManager::GetRenderWidgetHostView() const { |
258 if (interstitial_page_) | 258 if (interstitial_page_) |
259 return interstitial_page_->GetView(); | 259 return interstitial_page_->GetView(); |
260 if (render_frame_host_) | 260 if (render_frame_host_) |
261 return render_frame_host_->GetView(); | 261 return render_frame_host_->GetView(); |
262 return nullptr; | 262 return nullptr; |
263 } | 263 } |
264 | 264 |
265 bool RenderFrameHostManager::ForInnerDelegate() { | 265 bool RenderFrameHostManager::ForInnerDelegate() { |
266 // TODO(lazyboy): Subframes inside inner WebContents needs to be tested and | |
267 // we have to make sure that IsMainFrame() check below is appropriate. See | |
268 // http://crbug.com/500957. | |
269 return frame_tree_node_->IsMainFrame() && | 266 return frame_tree_node_->IsMainFrame() && |
Charlie Reis
2015/07/28 22:36:02
I still question whether this should return false
lazyboy
2015/07/30 19:46:31
I've made the function only care about its inner-n
| |
270 delegate_->GetOuterDelegateFrameTreeNodeID() != | 267 delegate_->GetOuterDelegateFrameTreeNodeID() != |
271 FrameTreeNode::kFrameTreeNodeInvalidID; | 268 FrameTreeNode::kFrameTreeNodeInvalidID; |
272 } | 269 } |
273 | 270 |
274 RenderWidgetHostImpl* | 271 RenderWidgetHostImpl* |
275 RenderFrameHostManager::GetOuterRenderWidgetHostForKeyboardInput() { | 272 RenderFrameHostManager::GetOuterRenderWidgetHostForKeyboardInput() { |
276 if (!ForInnerDelegate()) | 273 if (!ForInnerDelegate()) |
277 return nullptr; | 274 return nullptr; |
278 | 275 |
279 FrameTreeNode* outer_contents_frame_tree_node = | 276 FrameTreeNode* outer_contents_frame_tree_node = |
(...skipping 1500 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1780 proxy->set_render_frame_proxy_created(true); | 1777 proxy->set_render_frame_proxy_created(true); |
1781 } else { | 1778 } else { |
1782 proxy->InitRenderFrameProxy(); | 1779 proxy->InitRenderFrameProxy(); |
1783 } | 1780 } |
1784 | 1781 |
1785 return proxy->GetRoutingID(); | 1782 return proxy->GetRoutingID(); |
1786 } | 1783 } |
1787 | 1784 |
1788 void RenderFrameHostManager::CreateProxiesForChildFrame(FrameTreeNode* child) { | 1785 void RenderFrameHostManager::CreateProxiesForChildFrame(FrameTreeNode* child) { |
1789 for (const auto& pair : *proxy_hosts_) { | 1786 for (const auto& pair : *proxy_hosts_) { |
1787 // If this proxy lives in our outer delegate process, then subframe | |
Charlie Reis
2015/07/28 22:36:02
Rephrase:
Do not create proxies for subframes in t
lazyboy
2015/07/30 19:46:31
Done.
| |
1788 // FrameTreeNodes should not have proxy to that outer delegate. | |
1789 if (ForInnerDelegate() && GetProxyToOuterDelegate() == pair.second) | |
1790 continue; | |
1791 | |
1790 child->render_manager()->CreateRenderFrameProxy( | 1792 child->render_manager()->CreateRenderFrameProxy( |
1791 pair.second->GetSiteInstance()); | 1793 pair.second->GetSiteInstance()); |
1792 } | 1794 } |
1793 } | 1795 } |
1794 | 1796 |
1795 void RenderFrameHostManager::EnsureRenderViewInitialized( | 1797 void RenderFrameHostManager::EnsureRenderViewInitialized( |
1796 RenderViewHostImpl* render_view_host, | 1798 RenderViewHostImpl* render_view_host, |
1797 SiteInstance* instance) { | 1799 SiteInstance* instance) { |
1798 DCHECK(frame_tree_node_->IsMainFrame()); | 1800 DCHECK(frame_tree_node_->IsMainFrame()); |
1799 | 1801 |
(...skipping 636 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2436 int RenderFrameHostManager::GetOpenerRoutingID(SiteInstance* instance) { | 2438 int RenderFrameHostManager::GetOpenerRoutingID(SiteInstance* instance) { |
2437 if (!frame_tree_node_->opener()) | 2439 if (!frame_tree_node_->opener()) |
2438 return MSG_ROUTING_NONE; | 2440 return MSG_ROUTING_NONE; |
2439 | 2441 |
2440 return frame_tree_node_->opener() | 2442 return frame_tree_node_->opener() |
2441 ->render_manager() | 2443 ->render_manager() |
2442 ->GetRoutingIdForSiteInstance(instance); | 2444 ->GetRoutingIdForSiteInstance(instance); |
2443 } | 2445 } |
2444 | 2446 |
2445 } // namespace content | 2447 } // namespace content |
OLD | NEW |