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

Unified Diff: trunk/src/content/browser/frame_host/frame_tree.cc

Issue 105523006: Revert 241151 "Make RenderFrameHostManager swap RenderFrameHosts..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years 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: trunk/src/content/browser/frame_host/frame_tree.cc
===================================================================
--- trunk/src/content/browser/frame_host/frame_tree.cc (revision 241158)
+++ trunk/src/content/browser/frame_host/frame_tree.cc (working copy)
@@ -12,8 +12,6 @@
#include "content/browser/frame_host/navigator.h"
#include "content/browser/frame_host/render_frame_host_factory.h"
#include "content/browser/frame_host/render_frame_host_impl.h"
-#include "content/browser/renderer_host/render_view_host_factory.h"
-#include "content/browser/renderer_host/render_view_host_impl.h"
namespace content {
@@ -54,8 +52,7 @@
render_view_delegate_(render_view_delegate),
render_widget_delegate_(render_widget_delegate),
manager_delegate_(manager_delegate),
- root_(new FrameTreeNode(this,
- navigator,
+ root_(new FrameTreeNode(navigator,
render_frame_delegate,
render_view_delegate,
render_widget_delegate,
@@ -97,7 +94,7 @@
root_->set_frame_id(main_frame_id);
}
-RenderFrameHostImpl* FrameTree::AddFrame(int frame_routing_id,
+RenderFrameHostImpl* FrameTree::AddFrame(int render_frame_host_id,
int64 parent_frame_id,
int64 frame_id,
const std::string& frame_name) {
@@ -107,11 +104,10 @@
if (!parent)
return NULL;
- scoped_ptr<FrameTreeNode> node(new FrameTreeNode(
- this, parent->navigator(), render_frame_delegate_, render_view_delegate_,
- render_widget_delegate_, manager_delegate_, frame_id, frame_name));
- RenderFrameHostImpl* render_frame = node->current_frame_host();
- parent->AddChild(node.Pass(), frame_routing_id);
+ scoped_ptr<FrameTreeNode> node(CreateNode(
+ frame_id, frame_name, render_frame_host_id, parent));
+ RenderFrameHostImpl* render_frame = node->render_frame_host();
+ parent->AddChild(node.Pass());
return render_frame;
}
@@ -151,12 +147,12 @@
node->set_current_url(url);
}
-void FrameTree::ResetForMainFrameSwap() {
- return root_->ResetForMainFrameSwap();
+void FrameTree::SwapMainFrame(RenderFrameHostImpl* render_frame_host) {
+ return root_->ResetForMainFrame(render_frame_host);
}
RenderFrameHostImpl* FrameTree::GetMainFrame() const {
- return root_->current_frame_host();
+ return root_->render_frame_host();
}
void FrameTree::SetFrameRemoveListener(
@@ -164,78 +160,32 @@
on_frame_removed_ = on_frame_removed;
}
-void FrameTree::ClearFrameRemoveListenerForTesting() {
- on_frame_removed_.Reset();
-}
-
-RenderViewHostImpl* FrameTree::CreateRenderViewHostForMainFrame(
- SiteInstance* site_instance,
- int routing_id,
- int main_frame_routing_id,
- bool swapped_out,
- bool hidden) {
- DCHECK(main_frame_routing_id != MSG_ROUTING_NONE);
- RenderViewHostMap::iterator iter =
- render_view_host_map_.find(site_instance->GetId());
- CHECK(iter == render_view_host_map_.end());
- RenderViewHostImpl* rvh = static_cast<RenderViewHostImpl*>(
- RenderViewHostFactory::Create(site_instance,
- render_view_delegate_,
- render_widget_delegate_,
- routing_id,
- main_frame_routing_id,
- swapped_out,
- hidden));
-
- render_view_host_map_[site_instance->GetId()] =
- RenderViewHostRefCount(rvh, 0);
- return rvh;
-}
-
-RenderViewHostImpl* FrameTree::GetRenderViewHostForSubFrame(
- SiteInstance* site_instance) {
- RenderViewHostMap::iterator iter =
- render_view_host_map_.find(site_instance->GetId());
- CHECK(iter != render_view_host_map_.end());
- RenderViewHostRefCount rvh_refcount = iter->second;
- return rvh_refcount.first;
-}
-
-void FrameTree::RegisterRenderFrameHost(
- RenderFrameHostImpl* render_frame_host) {
- SiteInstance* site_instance =
- render_frame_host->render_view_host()->GetSiteInstance();
- RenderViewHostMap::iterator iter =
- render_view_host_map_.find(site_instance->GetId());
- CHECK(iter != render_view_host_map_.end());
-
- // Increment the refcount.
- CHECK_GE(iter->second.second, 0);
- iter->second.second++;
-}
-
-void FrameTree::UnregisterRenderFrameHost(
- RenderFrameHostImpl* render_frame_host) {
- SiteInstance* site_instance =
- render_frame_host->render_view_host()->GetSiteInstance();
- RenderViewHostMap::iterator iter =
- render_view_host_map_.find(site_instance->GetId());
- CHECK(iter != render_view_host_map_.end());
-
- // Decrement the refcount and shutdown the RenderViewHost if no one else is
- // using it.
- CHECK_GT(iter->second.second, 0);
- iter->second.second--;
- if (iter->second.second == 0) {
- iter->second.first->Shutdown();
- render_view_host_map_.erase(iter);
- }
-}
-
FrameTreeNode* FrameTree::FindByFrameID(int64 frame_id) {
FrameTreeNode* node = NULL;
ForEach(base::Bind(&FrameTreeNodeForFrameId, frame_id, &node));
return node;
}
+scoped_ptr<FrameTreeNode> FrameTree::CreateNode(
+ int64 frame_id,
+ const std::string& frame_name,
+ int render_frame_host_id,
+ FrameTreeNode* parent_node) {
+ scoped_ptr<FrameTreeNode> frame_tree_node(new FrameTreeNode(
+ parent_node->navigator(), render_frame_delegate_, render_view_delegate_,
+ render_widget_delegate_, manager_delegate_, frame_id, frame_name));
+
+ scoped_ptr<RenderFrameHostImpl> render_frame_host(
+ RenderFrameHostFactory::Create(
+ parent_node->render_frame_host()->render_view_host(),
+ parent_node->render_frame_host()->delegate(),
+ this,
+ frame_tree_node.get(),
+ render_frame_host_id,
+ false));
+
+ frame_tree_node->set_render_frame_host(render_frame_host.release(), true);
+ return frame_tree_node.Pass();
+}
+
} // namespace content
« no previous file with comments | « trunk/src/content/browser/frame_host/frame_tree.h ('k') | trunk/src/content/browser/frame_host/frame_tree_node.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698