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

Side by Side Diff: content/browser/frame_host/frame_tree.cc

Issue 183923030: Almost finish moving context_menu_node_ from RenderViewImpl to RenderFrameImpl. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: sync to get android fix Created 6 years, 9 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/frame_host/frame_tree.h" 5 #include "content/browser/frame_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"
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 : render_frame_delegate_(render_frame_delegate), 64 : render_frame_delegate_(render_frame_delegate),
65 render_view_delegate_(render_view_delegate), 65 render_view_delegate_(render_view_delegate),
66 render_widget_delegate_(render_widget_delegate), 66 render_widget_delegate_(render_widget_delegate),
67 manager_delegate_(manager_delegate), 67 manager_delegate_(manager_delegate),
68 root_(new FrameTreeNode(this, 68 root_(new FrameTreeNode(this,
69 navigator, 69 navigator,
70 render_frame_delegate, 70 render_frame_delegate,
71 render_view_delegate, 71 render_view_delegate,
72 render_widget_delegate, 72 render_widget_delegate,
73 manager_delegate, 73 manager_delegate,
74 std::string())) { 74 std::string())),
75 focused_frame_tree_node_id_(-1) {
75 } 76 }
76 77
77 FrameTree::~FrameTree() { 78 FrameTree::~FrameTree() {
78 } 79 }
79 80
80 FrameTreeNode* FrameTree::FindByID(int64 frame_tree_node_id) { 81 FrameTreeNode* FrameTree::FindByID(int64 frame_tree_node_id) {
81 FrameTreeNode* node = NULL; 82 FrameTreeNode* node = NULL;
82 ForEach(base::Bind(&FrameTreeNodeForId, frame_tree_node_id, &node)); 83 ForEach(base::Bind(&FrameTreeNodeForId, frame_tree_node_id, &node));
83 return node; 84 return node;
84 } 85 }
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 on_frame_removed_.Run( 132 on_frame_removed_.Run(
132 render_frame_host->render_view_host(), 133 render_frame_host->render_view_host(),
133 render_frame_host->GetRoutingID()); 134 render_frame_host->GetRoutingID());
134 } 135 }
135 136
136 parent->RemoveChild(child); 137 parent->RemoveChild(child);
137 } 138 }
138 139
139 void FrameTree::ResetForMainFrameSwap() { 140 void FrameTree::ResetForMainFrameSwap() {
140 root_->ResetForNewProcess(); 141 root_->ResetForNewProcess();
142 focused_frame_tree_node_id_ = -1;
141 } 143 }
142 144
143 void FrameTree::RenderProcessGone(RenderViewHost* render_view_host) { 145 void FrameTree::RenderProcessGone(RenderViewHost* render_view_host) {
144 // Walk the full tree looking for nodes that may be affected. Once a frame 146 // Walk the full tree looking for nodes that may be affected. Once a frame
145 // crashes, all of its child FrameTreeNodes go away. 147 // crashes, all of its child FrameTreeNodes go away.
146 // Note that the helper function may call ResetForNewProcess on a node, which 148 // Note that the helper function may call ResetForNewProcess on a node, which
147 // clears its children before we iterate over them. That's ok, because 149 // clears its children before we iterate over them. That's ok, because
148 // ForEach does not add a node's children to the queue until after visiting 150 // ForEach does not add a node's children to the queue until after visiting
149 // the node itself. 151 // the node itself.
150 ForEach(base::Bind(&ResetNodesForNewProcess, render_view_host)); 152 ForEach(base::Bind(&ResetNodesForNewProcess, render_view_host));
151 } 153 }
152 154
153 RenderFrameHostImpl* FrameTree::GetMainFrame() const { 155 RenderFrameHostImpl* FrameTree::GetMainFrame() const {
154 return root_->current_frame_host(); 156 return root_->current_frame_host();
155 } 157 }
156 158
159 FrameTreeNode* FrameTree::GetFocusedFrame() {
160 return FindByID(focused_frame_tree_node_id_);
161 }
162
163 void FrameTree::SetFocusedFrame(FrameTreeNode* node) {
164 focused_frame_tree_node_id_ = node->frame_tree_node_id();
165 }
166
157 void FrameTree::SetFrameRemoveListener( 167 void FrameTree::SetFrameRemoveListener(
158 const base::Callback<void(RenderViewHostImpl*, int)>& on_frame_removed) { 168 const base::Callback<void(RenderViewHostImpl*, int)>& on_frame_removed) {
159 on_frame_removed_ = on_frame_removed; 169 on_frame_removed_ = on_frame_removed;
160 } 170 }
161 171
162 RenderViewHostImpl* FrameTree::CreateRenderViewHostForMainFrame( 172 RenderViewHostImpl* FrameTree::CreateRenderViewHostForMainFrame(
163 SiteInstance* site_instance, 173 SiteInstance* site_instance,
164 int routing_id, 174 int routing_id,
165 int main_frame_routing_id, 175 int main_frame_routing_id,
166 bool swapped_out, 176 bool swapped_out,
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 rvh->Shutdown(); 262 rvh->Shutdown();
253 render_view_host_pending_shutdown_map_.erase(multi_iter); 263 render_view_host_pending_shutdown_map_.erase(multi_iter);
254 } 264 }
255 break; 265 break;
256 } 266 }
257 CHECK(render_view_host_found); 267 CHECK(render_view_host_found);
258 } 268 }
259 } 269 }
260 270
261 } // namespace content 271 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/frame_host/frame_tree.h ('k') | content/browser/frame_host/render_frame_host_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698