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

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

Issue 172063002: Unify frame IDs with RenderFrameHost routing IDs. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Clean up Created 6 years, 10 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/render_frame_host_impl.h" 5 #include "content/browser/frame_host/render_frame_host_impl.h"
6 6
7 #include "base/containers/hash_tables.h" 7 #include "base/containers/hash_tables.h"
8 #include "base/lazy_instance.h" 8 #include "base/lazy_instance.h"
9 #include "base/metrics/user_metrics_action.h" 9 #include "base/metrics/user_metrics_action.h"
10 #include "content/browser/child_process_security_policy_impl.h" 10 #include "content/browser/child_process_security_policy_impl.h"
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 GetProcess()->ReceivedBadMessage(); 154 GetProcess()->ReceivedBadMessage();
155 } 155 }
156 156
157 return handled; 157 return handled;
158 } 158 }
159 159
160 void RenderFrameHostImpl::Init() { 160 void RenderFrameHostImpl::Init() {
161 GetProcess()->ResumeRequestsForView(routing_id_); 161 GetProcess()->ResumeRequestsForView(routing_id_);
162 } 162 }
163 163
164 void RenderFrameHostImpl::OnCreateChildFrame(int new_frame_routing_id, 164 void RenderFrameHostImpl::OnCreateChildFrame(int new_routing_id,
165 int64 parent_frame_id,
166 int64 frame_id,
167 const std::string& frame_name) { 165 const std::string& frame_name) {
168 RenderFrameHostImpl* new_frame = frame_tree_->AddFrame( 166 RenderFrameHostImpl* new_frame = frame_tree_->AddFrame(
169 new_frame_routing_id, parent_frame_id, frame_id, frame_name); 167 frame_tree_node_, new_routing_id, frame_name);
170 if (delegate_) 168 if (delegate_)
171 delegate_->RenderFrameCreated(new_frame); 169 delegate_->RenderFrameCreated(new_frame);
172 } 170 }
173 171
174 void RenderFrameHostImpl::OnDetach(int64 parent_frame_id, int64 frame_id) { 172 void RenderFrameHostImpl::OnDetach() {
175 frame_tree_->RemoveFrame(this, parent_frame_id, frame_id); 173 frame_tree_->RemoveFrame(frame_tree_node_);
176 } 174 }
177 175
178 void RenderFrameHostImpl::OnDidStartProvisionalLoadForFrame( 176 void RenderFrameHostImpl::OnDidStartProvisionalLoadForFrame(
179 int64 frame_id, 177 int64 frame_id,
180 int64 parent_frame_id, 178 int64 parent_frame_id,
181 bool is_main_frame, 179 bool is_main_frame,
182 const GURL& url) { 180 const GURL& url) {
183 frame_tree_node_->navigator()->DidStartProvisionalLoad( 181 frame_tree_node_->navigator()->DidStartProvisionalLoad(
184 this, frame_id, parent_frame_id, is_main_frame, url); 182 this, frame_id, parent_frame_id, is_main_frame, url);
185 } 183 }
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 } 242 }
245 243
246 // If we're waiting for an unload ack from this renderer and we receive a 244 // If we're waiting for an unload ack from this renderer and we receive a
247 // Navigate message, then the renderer was navigating before it received the 245 // Navigate message, then the renderer was navigating before it received the
248 // unload request. It will either respond to the unload request soon or our 246 // unload request. It will either respond to the unload request soon or our
249 // timer will expire. Either way, we should ignore this message, because we 247 // timer will expire. Either way, we should ignore this message, because we
250 // have already committed to closing this renderer. 248 // have already committed to closing this renderer.
251 if (render_view_host_->IsWaitingForUnloadACK()) 249 if (render_view_host_->IsWaitingForUnloadACK())
252 return; 250 return;
253 251
254 // Cache the main frame id, so we can use it for creating the frame tree
255 // root node when needed.
256 if (PageTransitionIsMainFrame(validated_params.transition)) {
257 if (render_view_host_->main_frame_id_ == -1) {
258 render_view_host_->main_frame_id_ = validated_params.frame_id;
259 } else {
260 // TODO(nasko): We plan to remove the usage of frame_id in navigation
261 // and move to routing ids. This is in place to ensure that a
262 // renderer is not misbehaving and sending us incorrect data.
263 DCHECK_EQ(render_view_host_->main_frame_id_, validated_params.frame_id);
264 }
265 }
266 RenderProcessHost* process = GetProcess(); 252 RenderProcessHost* process = GetProcess();
267 253
268 // Attempts to commit certain off-limits URL should be caught more strictly 254 // Attempts to commit certain off-limits URL should be caught more strictly
269 // than our FilterURL checks below. If a renderer violates this policy, it 255 // than our FilterURL checks below. If a renderer violates this policy, it
270 // should be killed. 256 // should be killed.
271 if (!CanCommitURL(validated_params.url)) { 257 if (!CanCommitURL(validated_params.url)) {
272 VLOG(1) << "Blocked URL " << validated_params.url.spec(); 258 VLOG(1) << "Blocked URL " << validated_params.url.spec();
273 validated_params.url = GURL(kAboutBlankURL); 259 validated_params.url = GURL(kAboutBlankURL);
274 RecordAction(base::UserMetricsAction("CanCommitURL_BlockedAndKilled")); 260 RecordAction(base::UserMetricsAction("CanCommitURL_BlockedAndKilled"));
275 // Kills the process. 261 // Kills the process.
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 params.pending_history_list_offset = -1; 402 params.pending_history_list_offset = -1;
417 params.current_history_list_offset = -1; 403 params.current_history_list_offset = -1;
418 params.current_history_list_length = 0; 404 params.current_history_list_length = 0;
419 params.url = url; 405 params.url = url;
420 params.transition = PAGE_TRANSITION_LINK; 406 params.transition = PAGE_TRANSITION_LINK;
421 params.navigation_type = FrameMsg_Navigate_Type::NORMAL; 407 params.navigation_type = FrameMsg_Navigate_Type::NORMAL;
422 Navigate(params); 408 Navigate(params);
423 } 409 }
424 410
425 } // namespace content 411 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698