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

Side by Side Diff: content/browser/renderer_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: Initial upload Created 7 years, 2 months 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/renderer_host/frame_tree.h" 5 #include "content/browser/renderer_host/frame_tree.h"
6 6
7 #include <queue> 7 #include <queue>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
11 #include "content/browser/renderer_host/frame_tree_node.h" 11 #include "content/browser/renderer_host/frame_tree_node.h"
12 #include "content/browser/renderer_host/navigator.h"
12 #include "content/browser/renderer_host/render_frame_host_impl.h" 13 #include "content/browser/renderer_host/render_frame_host_impl.h"
13 14
14 namespace content { 15 namespace content {
15 16
16 namespace { 17 namespace {
17 // Used with FrameTree::ForEach() to search for the FrameTreeNode 18 // Used with FrameTree::ForEach() to search for the FrameTreeNode
18 // corresponding to |frame_id|. 19 // corresponding to |frame_id|.
19 bool FrameTreeNodeForId(int64 frame_id, FrameTreeNode** out_node, 20 bool FrameTreeNodeForId(int64 frame_id, FrameTreeNode** out_node,
20 FrameTreeNode* node) { 21 FrameTreeNode* node) {
21 if (node->frame_id() == frame_id) { 22 if (node->frame_id() == frame_id) {
22 *out_node = node; 23 *out_node = node;
23 // Terminate iteration once the node has been found. 24 // Terminate iteration once the node has been found.
24 return false; 25 return false;
25 } 26 }
26 return true; 27 return true;
27 } 28 }
28 29
29 } // namespace 30 } // namespace
30 31
31 FrameTree::FrameTree() 32 FrameTree::FrameTree() {}
32 : root_(new FrameTreeNode(FrameTreeNode::kInvalidFrameId, std::string(), 33
33 scoped_ptr<RenderFrameHostImpl>())) { 34 void FrameTree::Init(
35 NavigationControllerImpl* navigation_controller,
36 NavigatorObserver* navigator_observer) {
37 navigator_.reset(new Navigator(navigation_controller, navigator_observer));
38 root_.reset(new FrameTreeNode(navigator_.get(),
39 FrameTreeNode::kInvalidFrameId, std::string(),
40 scoped_ptr<RenderFrameHostImpl>()));
34 } 41 }
35 42
36 FrameTree::~FrameTree() { 43 FrameTree::~FrameTree() {
37 } 44 }
38 45
39 FrameTreeNode* FrameTree::FindByID(int64 frame_id) { 46 FrameTreeNode* FrameTree::FindByID(int64 frame_id) {
40 FrameTreeNode* node = NULL; 47 FrameTreeNode* node = NULL;
41 ForEach(base::Bind(&FrameTreeNodeForId, frame_id, &node)); 48 ForEach(base::Bind(&FrameTreeNodeForId, frame_id, &node));
42 return node; 49 return node;
43 } 50 }
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 on_frame_removed_ = on_frame_removed; 131 on_frame_removed_ = on_frame_removed;
125 } 132 }
126 133
127 scoped_ptr<FrameTreeNode> FrameTree::CreateNode( 134 scoped_ptr<FrameTreeNode> FrameTree::CreateNode(
128 int64 frame_id, const std::string& frame_name, int render_frame_host_id, 135 int64 frame_id, const std::string& frame_name, int render_frame_host_id,
129 RenderProcessHost* render_process_host) { 136 RenderProcessHost* render_process_host) {
130 scoped_ptr<RenderFrameHostImpl> render_frame_host( 137 scoped_ptr<RenderFrameHostImpl> render_frame_host(
131 new RenderFrameHostImpl(root_->render_frame_host()->render_view_host(), 138 new RenderFrameHostImpl(root_->render_frame_host()->render_view_host(),
132 this, render_frame_host_id, false)); 139 this, render_frame_host_id, false));
133 140
134 return make_scoped_ptr(new FrameTreeNode(frame_id, frame_name, 141 return make_scoped_ptr(new FrameTreeNode(navigator_.get(),
142 frame_id, frame_name,
135 render_frame_host.Pass())); 143 render_frame_host.Pass()));
136 } 144 }
137 145
138 } // namespace content 146 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698