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

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: Add NavigatorDelegate Created 7 years, 1 month 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/frame_tree.cc
diff --git a/content/browser/frame_host/frame_tree.cc b/content/browser/frame_host/frame_tree.cc
index 0cb9d5ecfa11e6089ed6fe332c1c47e51d13f23d..cbd0d094feab745bcb5b37e0c9e86c3b90d8bfb2 100644
--- a/content/browser/frame_host/frame_tree.cc
+++ b/content/browser/frame_host/frame_tree.cc
@@ -9,6 +9,8 @@
#include "base/bind.h"
#include "base/callback.h"
#include "content/browser/frame_host/frame_tree_node.h"
+#include "content/browser/frame_host/navigator.h"
+#include "content/browser/frame_host/navigator_delegate.h"
#include "content/browser/frame_host/render_frame_host_impl.h"
namespace content {
@@ -28,9 +30,16 @@ bool FrameTreeNodeForId(int64 frame_id, FrameTreeNode** out_node,
} // namespace
-FrameTree::FrameTree()
- : root_(new FrameTreeNode(FrameTreeNode::kInvalidFrameId, std::string(),
- scoped_ptr<RenderFrameHostImpl>())) {
+FrameTree::FrameTree() {
+}
+
+void FrameTree::Init(
+ NavigationControllerImpl* navigation_controller,
Charlie Reis 2013/11/07 01:22:43 nit: Goes on previous line.
+ NavigatorDelegate* navigator_delegate) {
+ root_.reset(new FrameTreeNode(navigation_controller,
+ navigator_delegate,
+ FrameTreeNode::kInvalidFrameId, std::string(),
+ scoped_ptr<RenderFrameHostImpl>()));
}
FrameTree::~FrameTree() {
@@ -74,7 +83,8 @@ void FrameTree::AddFrame(int render_frame_host_id, int64 parent_frame_id,
if (!parent)
return;
- parent->AddChild(CreateNode(frame_id, frame_name, render_frame_host_id,
+ parent->AddChild(CreateNode(parent->navigator(),
+ frame_id, frame_name, render_frame_host_id,
parent->render_frame_host()->GetProcess()));
}
@@ -125,13 +135,19 @@ void FrameTree::SetFrameRemoveListener(
}
scoped_ptr<FrameTreeNode> FrameTree::CreateNode(
- int64 frame_id, const std::string& frame_name, int render_frame_host_id,
+ Navigator* parent_navigator,
+ int64 frame_id,
+ const std::string& frame_name,
+ int render_frame_host_id,
RenderProcessHost* render_process_host) {
scoped_ptr<RenderFrameHostImpl> render_frame_host(
new RenderFrameHostImpl(root_->render_frame_host()->render_view_host(),
- this, render_frame_host_id, false));
+ this, parent_navigator, render_frame_host_id,
+ false));
- return make_scoped_ptr(new FrameTreeNode(frame_id, frame_name,
+ return make_scoped_ptr(new FrameTreeNode(parent_navigator->controller(),
+ parent_navigator->delegate(),
+ frame_id, frame_name,
render_frame_host.Pass()));
}

Powered by Google App Engine
This is Rietveld 408576698