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

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

Issue 1413543005: Use FrameTreeNode ID as frameId in extension APIs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Improve port lifetime management, add tests Created 5 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 unified diff | Download patch
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/render_frame_host_impl.h" 5 #include "content/browser/frame_host/render_frame_host_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/containers/hash_tables.h" 9 #include "base/containers/hash_tables.h"
10 #include "base/lazy_instance.h" 10 #include "base/lazy_instance.h"
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 return rfh_state == STATE_DEFAULT; 127 return rfh_state == STATE_DEFAULT;
128 } 128 }
129 129
130 // static 130 // static
131 RenderFrameHost* RenderFrameHost::FromID(int render_process_id, 131 RenderFrameHost* RenderFrameHost::FromID(int render_process_id,
132 int render_frame_id) { 132 int render_frame_id) {
133 return RenderFrameHostImpl::FromID(render_process_id, render_frame_id); 133 return RenderFrameHostImpl::FromID(render_process_id, render_frame_id);
134 } 134 }
135 135
136 // static 136 // static
137 RenderFrameHost* RenderFrameHost::FromFrameTreeNodeID(int frame_tree_node_id) {
138 return RenderFrameHostImpl::FromFrameTreeNodeID(frame_tree_node_id);
139 }
140
141 // static
137 void RenderFrameHost::AllowInjectingJavaScriptForAndroidWebView() { 142 void RenderFrameHost::AllowInjectingJavaScriptForAndroidWebView() {
138 g_allow_injecting_javascript = true; 143 g_allow_injecting_javascript = true;
139 } 144 }
140 145
141 // static 146 // static
142 RenderFrameHostImpl* RenderFrameHostImpl::FromID(int process_id, 147 RenderFrameHostImpl* RenderFrameHostImpl::FromID(int process_id,
143 int routing_id) { 148 int routing_id) {
144 DCHECK_CURRENTLY_ON(BrowserThread::UI); 149 DCHECK_CURRENTLY_ON(BrowserThread::UI);
145 RoutingIDFrameMap* frames = g_routing_id_frame_map.Pointer(); 150 RoutingIDFrameMap* frames = g_routing_id_frame_map.Pointer();
146 RoutingIDFrameMap::iterator it = frames->find( 151 RoutingIDFrameMap::iterator it = frames->find(
147 RenderFrameHostID(process_id, routing_id)); 152 RenderFrameHostID(process_id, routing_id));
148 return it == frames->end() ? NULL : it->second; 153 return it == frames->end() ? NULL : it->second;
149 } 154 }
150 155
151 // static 156 // static
157 RenderFrameHostImpl* RenderFrameHostImpl::FromFrameTreeNodeID(
158 int frame_tree_node_id) {
159 DCHECK_CURRENTLY_ON(BrowserThread::UI);
160 FrameTreeNode* frame_tree_node =
161 FrameTreeNode::GloballyFindByID(frame_tree_node_id);
162 return frame_tree_node ? frame_tree_node->current_frame_host() : nullptr;
163 }
164
165 // static
152 RenderFrameHost* RenderFrameHost::FromAXTreeID( 166 RenderFrameHost* RenderFrameHost::FromAXTreeID(
153 int ax_tree_id) { 167 int ax_tree_id) {
154 return RenderFrameHostImpl::FromAXTreeID(ax_tree_id); 168 return RenderFrameHostImpl::FromAXTreeID(ax_tree_id);
155 } 169 }
156 170
157 // static 171 // static
158 RenderFrameHostImpl* RenderFrameHostImpl::FromAXTreeID( 172 RenderFrameHostImpl* RenderFrameHostImpl::FromAXTreeID(
159 AXTreeIDRegistry::AXTreeID ax_tree_id) { 173 AXTreeIDRegistry::AXTreeID ax_tree_id) {
160 DCHECK_CURRENTLY_ON(BrowserThread::UI); 174 DCHECK_CURRENTLY_ON(BrowserThread::UI);
161 AXTreeIDRegistry::FrameID frame_id = 175 AXTreeIDRegistry::FrameID frame_id =
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 return process_; 280 return process_;
267 } 281 }
268 282
269 RenderFrameHost* RenderFrameHostImpl::GetParent() { 283 RenderFrameHost* RenderFrameHostImpl::GetParent() {
270 FrameTreeNode* parent_node = frame_tree_node_->parent(); 284 FrameTreeNode* parent_node = frame_tree_node_->parent();
271 if (!parent_node) 285 if (!parent_node)
272 return NULL; 286 return NULL;
273 return parent_node->current_frame_host(); 287 return parent_node->current_frame_host();
274 } 288 }
275 289
290 RenderFrameHost* RenderFrameHostImpl::FindByFrameTreeNodeID(
291 int frame_tree_node_id) {
292 FrameTreeNode* child =
293 frame_tree_node_->frame_tree()->FindByID(frame_tree_node_id);
Charlie Reis 2015/10/30 23:25:09 This doesn't quite match the documentation, which
robwu 2015/10/31 00:10:45 I was reading frame_tree() as the frame tree roote
robwu 2015/11/02 19:08:34 Done.
Charlie Reis 2015/11/03 00:23:49 No, a FrameTree represents the whole tree, startin
294 return child ? child->current_frame_host() : nullptr;
295 }
296
297 int RenderFrameHostImpl::GetFrameTreeNodeID() {
298 return frame_tree_node_->frame_tree_node_id();
299 }
300
276 const std::string& RenderFrameHostImpl::GetFrameName() { 301 const std::string& RenderFrameHostImpl::GetFrameName() {
277 return frame_tree_node_->frame_name(); 302 return frame_tree_node_->frame_name();
278 } 303 }
279 304
280 bool RenderFrameHostImpl::IsCrossProcessSubframe() { 305 bool RenderFrameHostImpl::IsCrossProcessSubframe() {
281 FrameTreeNode* parent_node = frame_tree_node_->parent(); 306 FrameTreeNode* parent_node = frame_tree_node_->parent();
282 if (!parent_node) 307 if (!parent_node)
283 return false; 308 return false;
284 return GetSiteInstance() != 309 return GetSiteInstance() !=
285 parent_node->current_frame_host()->GetSiteInstance(); 310 parent_node->current_frame_host()->GetSiteInstance();
(...skipping 1981 matching lines...) Expand 10 before | Expand all | Expand 10 after
2267 BrowserPluginInstanceIDToAXTreeID(value))); 2292 BrowserPluginInstanceIDToAXTreeID(value)));
2268 break; 2293 break;
2269 case AX_CONTENT_INT_ATTRIBUTE_LAST: 2294 case AX_CONTENT_INT_ATTRIBUTE_LAST:
2270 NOTREACHED(); 2295 NOTREACHED();
2271 break; 2296 break;
2272 } 2297 }
2273 } 2298 }
2274 } 2299 }
2275 2300
2276 } // namespace content 2301 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698