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

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

Issue 642813007: Drop CreateChildFrame messages when swapping out. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 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
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 593 matching lines...) Expand 10 before | Expand all | Expand 10 after
604 HasWebUIScheme(delegate_->GetMainFrameLastCommittedURL()) ? level : 0; 604 HasWebUIScheme(delegate_->GetMainFrameLastCommittedURL()) ? level : 0;
605 605
606 if (resolved_level >= ::logging::GetMinLogLevel()) { 606 if (resolved_level >= ::logging::GetMinLogLevel()) {
607 logging::LogMessage("CONSOLE", line_no, resolved_level).stream() << "\"" << 607 logging::LogMessage("CONSOLE", line_no, resolved_level).stream() << "\"" <<
608 message << "\", source: " << source_id << " (" << line_no << ")"; 608 message << "\", source: " << source_id << " (" << line_no << ")";
609 } 609 }
610 } 610 }
611 611
612 void RenderFrameHostImpl::OnCreateChildFrame(int new_routing_id, 612 void RenderFrameHostImpl::OnCreateChildFrame(int new_routing_id,
613 const std::string& frame_name) { 613 const std::string& frame_name) {
614 // It is possible that while a new RenderFrameHost was committed, the
615 // RenderFrame corresponding to this host sent an IPC message to create a
616 // frame and it is delivered after this host is swapped out.
617 // Ignore such messages, as we know this RenderFrameHost is going away.
618 if (rfh_state_ != RenderFrameHostImpl::STATE_DEFAULT)
619 return;
620
614 RenderFrameHostImpl* new_frame = frame_tree_->AddFrame( 621 RenderFrameHostImpl* new_frame = frame_tree_->AddFrame(
Charlie Reis 2014/10/15 23:54:18 FrameTree::AddFrame is still a problematic API, in
nasko 2014/10/16 17:08:36 No need for follow up CL. Let's do it right from t
615 frame_tree_node_, new_routing_id, frame_name); 622 frame_tree_node_, new_routing_id, frame_name);
616 623
617 // We know that the RenderFrame has been created in this case, immediately 624 // We know that the RenderFrame has been created in this case, immediately
618 // after the CreateChildFrame IPC was sent. 625 // after the CreateChildFrame IPC was sent.
619 new_frame->set_render_frame_created(true); 626 new_frame->set_render_frame_created(true);
620 627
621 if (delegate_) 628 if (delegate_)
622 delegate_->RenderFrameCreated(new_frame); 629 delegate_->RenderFrameCreated(new_frame);
623 } 630 }
624 631
(...skipping 932 matching lines...) Expand 10 before | Expand all | Expand 10 after
1557 // Clear any state if a pending navigation is canceled or preempted. 1564 // Clear any state if a pending navigation is canceled or preempted.
1558 if (suspended_nav_params_) 1565 if (suspended_nav_params_)
1559 suspended_nav_params_.reset(); 1566 suspended_nav_params_.reset();
1560 1567
1561 TRACE_EVENT_ASYNC_END0("navigation", 1568 TRACE_EVENT_ASYNC_END0("navigation",
1562 "RenderFrameHostImpl navigation suspended", this); 1569 "RenderFrameHostImpl navigation suspended", this);
1563 navigations_suspended_ = false; 1570 navigations_suspended_ = false;
1564 } 1571 }
1565 1572
1566 } // namespace content 1573 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698