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

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

Issue 26316005: Move out DidStartProvisionalLoad from WebContentsImpl into Navigator. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixes based on Charlie's latest review. 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
« no previous file with comments | « content/browser/frame_host/frame_tree.h ('k') | content/browser/frame_host/frame_tree_node.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/frame_host/frame_tree.cc
diff --git a/content/browser/frame_host/frame_tree.cc b/content/browser/frame_host/frame_tree.cc
index 814ca9e2795337056dae86c230690515ee61e51f..c3f1d8d5c980c0ef66be625195185cbf1124ca34 100644
--- a/content/browser/frame_host/frame_tree.cc
+++ b/content/browser/frame_host/frame_tree.cc
@@ -58,8 +58,7 @@ FrameTree::FrameTree(Navigator* navigator,
render_widget_delegate,
manager_delegate,
FrameTreeNode::kInvalidFrameId,
- std::string(),
- scoped_ptr<RenderFrameHostImpl>())) {
+ std::string())) {
}
FrameTree::~FrameTree() {
@@ -105,12 +104,13 @@ void FrameTree::AddFrame(int render_frame_host_id,
if (!parent)
return;
- parent->AddChild(CreateNode(frame_id, frame_name, render_frame_host_id,
- parent->navigator(),
- parent->render_frame_host()->GetProcess()));
+ parent->AddChild(
+ CreateNode(frame_id, frame_name, render_frame_host_id, parent));
}
-void FrameTree::RemoveFrame(int64 parent_frame_id, int64 frame_id) {
+void FrameTree::RemoveFrame(RenderFrameHostImpl* render_frame_host,
+ int64 parent_frame_id,
+ int64 frame_id) {
// If switches::kSitePerProcess is not specified, then the FrameTree only
// contains a node for the root element. However, even in this case
// frame detachments need to be broadcast outwards.
@@ -122,7 +122,7 @@ void FrameTree::RemoveFrame(int64 parent_frame_id, int64 frame_id) {
FrameTreeNode* child = FindByFrameID(frame_id);
if (!on_frame_removed_.is_null()) {
on_frame_removed_.Run(
- root_->render_frame_host()->render_view_host(), frame_id);
+ render_frame_host->render_view_host(), frame_id);
}
// TODO(ajwong): Should the renderer be killed here? Would there be a race on
@@ -167,19 +167,22 @@ scoped_ptr<FrameTreeNode> FrameTree::CreateNode(
int64 frame_id,
const std::string& frame_name,
int render_frame_host_id,
- Navigator* navigator,
- RenderProcessHost* render_process_host) {
+ 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(
- root_->render_frame_host()->render_view_host(),
- root_->render_frame_host()->delegate(),
+ parent_node->render_frame_host()->render_view_host(),
+ parent_node->render_frame_host()->delegate(),
this,
+ frame_tree_node.get(),
render_frame_host_id,
false));
- return make_scoped_ptr(new FrameTreeNode(navigator,
- render_frame_delegate_, render_view_delegate_, render_widget_delegate_,
- manager_delegate_, frame_id, frame_name, render_frame_host.Pass()));
+ frame_tree_node->set_render_frame_host(render_frame_host.release(), true);
+ return frame_tree_node.Pass();
}
} // namespace content
« no previous file with comments | « content/browser/frame_host/frame_tree.h ('k') | content/browser/frame_host/frame_tree_node.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698