| 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 0c219d17c2a91b7374701dea0798986ece652e96..fc36df203e87d788ca13c13daa32b19010f9f31a 100644
|
| --- a/content/browser/frame_host/render_frame_host_manager.cc
|
| +++ b/content/browser/frame_host/render_frame_host_manager.cc
|
| @@ -12,7 +12,6 @@
|
| #include "base/stl_util.h"
|
| #include "content/browser/child_process_security_policy_impl.h"
|
| #include "content/browser/devtools/render_view_devtools_agent_host.h"
|
| -#include "content/browser/frame_host/cross_process_frame_connector.h"
|
| #include "content/browser/frame_host/cross_site_transferring_request.h"
|
| #include "content/browser/frame_host/debug_urls.h"
|
| #include "content/browser/frame_host/interstitial_page_impl.h"
|
| @@ -22,11 +21,9 @@
|
| #include "content/browser/frame_host/render_frame_host_factory.h"
|
| #include "content/browser/frame_host/render_frame_host_impl.h"
|
| #include "content/browser/frame_host/render_frame_proxy_host.h"
|
| -#include "content/browser/frame_host/render_widget_host_view_child_frame.h"
|
| #include "content/browser/renderer_host/render_process_host_impl.h"
|
| #include "content/browser/renderer_host/render_view_host_factory.h"
|
| #include "content/browser/renderer_host/render_view_host_impl.h"
|
| -#include "content/browser/renderer_host/render_widget_host_view_base.h"
|
| #include "content/browser/site_instance_impl.h"
|
| #include "content/browser/webui/web_ui_controller_factory_registry.h"
|
| #include "content/browser/webui/web_ui_impl.h"
|
| @@ -80,7 +77,6 @@ RenderFrameHostManager::RenderFrameHostManager(
|
| render_view_delegate_(render_view_delegate),
|
| render_widget_delegate_(render_widget_delegate),
|
| interstitial_page_(NULL),
|
| - cross_process_frame_connector_(NULL),
|
| weak_factory_(this) {
|
| DCHECK(frame_tree_node_);
|
| }
|
| @@ -89,9 +85,6 @@ RenderFrameHostManager::~RenderFrameHostManager() {
|
| if (pending_render_frame_host_)
|
| CancelPending();
|
|
|
| - if (cross_process_frame_connector_)
|
| - delete cross_process_frame_connector_;
|
| -
|
| // We should always have a current RenderFrameHost except in some tests.
|
| SetRenderFrameHost(scoped_ptr<RenderFrameHostImpl>());
|
|
|
| @@ -143,6 +136,22 @@ RenderWidgetHostView* RenderFrameHostManager::GetRenderWidgetHostView() const {
|
| return render_frame_host_->render_view_host()->GetView();
|
| }
|
|
|
| +RenderFrameProxyHost* RenderFrameHostManager::GetProxyToParent() {
|
| + if (frame_tree_node_->IsMainFrame())
|
| + return NULL;
|
| +
|
| + RenderFrameProxyHostMap::iterator iter =
|
| + proxy_hosts_.find(frame_tree_node_->parent()
|
| + ->render_manager()
|
| + ->current_frame_host()
|
| + ->GetSiteInstance()
|
| + ->GetId());
|
| + if (iter == proxy_hosts_.end())
|
| + return NULL;
|
| +
|
| + return iter->second;
|
| +}
|
| +
|
| void RenderFrameHostManager::SetPendingWebUI(const NavigationEntryImpl& entry) {
|
| pending_web_ui_.reset(
|
| delegate_->CreateWebUIForRenderManager(entry.GetURL()));
|
| @@ -496,24 +505,6 @@ void RenderFrameHostManager::SwapOutOldPage() {
|
| // no longer on the stack when we send the SwapOut message.
|
| delegate_->CancelModalDialogsForRenderManager();
|
|
|
| - if (!frame_tree_node_->IsMainFrame()) {
|
| - // The RenderFrameHost being swapped out becomes the proxy for this
|
| - // frame in its parent's process. CrossProcessFrameConnector
|
| - // initialization only needs to happen on an initial cross-process
|
| - // navigation, when the RenderFrame leaves the same process as its parent.
|
| - // The same CrossProcessFrameConnector is used for subsequent cross-
|
| - // process navigations, but it will be destroyed if the Frame is
|
| - // navigated back to the same site instance as its parent.
|
| - // TODO(kenrb): This will change when RenderFrameProxyHost is created.
|
| - // TODO(nasko): Move CrossProcessFrameConnector to be owned by
|
| - // RenderFrameProxyHost instead of RenderFrameHostManager once proxy
|
| - // support lands.
|
| - if (!cross_process_frame_connector_) {
|
| - cross_process_frame_connector_ =
|
| - new CrossProcessFrameConnector(render_frame_host_.get());
|
| - }
|
| - }
|
| -
|
| // Create the RenderFrameProxyHost that will replace the
|
| // RenderFrameHost which is swapping out. If one exists, ensure it is deleted
|
| // from the map and not leaked.
|
| @@ -921,8 +912,6 @@ int RenderFrameHostManager::CreateRenderFrame(
|
| // remove it from the list of swapped out hosts if it commits.
|
| RenderFrameProxyHost* proxy = GetRenderFrameProxyHost(instance);
|
|
|
| - FrameTreeNode* parent_node = frame_tree_node_->parent();
|
| -
|
| if (proxy) {
|
| routing_id = proxy->GetRenderViewHost()->GetRoutingID();
|
| // Delete the existing RenderFrameProxyHost, but reuse the RenderFrameHost.
|
| @@ -947,15 +936,6 @@ int RenderFrameHostManager::CreateRenderFrame(
|
| rvh->AllowBindings(required_bindings);
|
| }
|
| }
|
| - } else {
|
| - // Detect if this is a cross-process child frame that is navigating
|
| - // back to the same SiteInstance as its parent.
|
| - if (parent_node && cross_process_frame_connector_ &&
|
| - render_frame_host_->GetSiteInstance() == parent_node->
|
| - render_manager()->current_frame_host()->GetSiteInstance()) {
|
| - delete cross_process_frame_connector_;
|
| - cross_process_frame_connector_ = NULL;
|
| - }
|
| }
|
| } else {
|
| // Create a new RenderFrameHost if we don't find an existing one.
|
| @@ -1190,11 +1170,11 @@ void RenderFrameHostManager::CommitPending() {
|
| // created already and we just need to link it to the proper view in the
|
| // new process.
|
| if (!is_main_frame) {
|
| - RenderWidgetHostView* rwhv =
|
| - render_frame_host_->render_view_host()->GetView();
|
| - RenderWidgetHostViewChildFrame* rwhv_child =
|
| - static_cast<RenderWidgetHostViewChildFrame*>(rwhv);
|
| - cross_process_frame_connector_->set_view(rwhv_child);
|
| + RenderFrameProxyHost* proxy = GetProxyToParent();
|
| + if (proxy) {
|
| + proxy->SetChildRWHView(
|
| + render_frame_host_->render_view_host()->GetView());
|
| + }
|
| }
|
| }
|
| }
|
|
|