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

Unified Diff: content/browser/frame_host/render_frame_host_manager.cc

Issue 869533004: Fix WCO::RenderFrameCreated and WCO::RenderFrameDeleted notifications. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixes for RenderFrameHostChanged. Created 5 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/frame_host/render_frame_host_manager.cc
diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc
index 0cd3b53b3c42c4eed16da2eba5360ecbc65d8a34..8c337f699ab944ba166233727f321289da91e67b 100644
--- a/content/browser/frame_host/render_frame_host_manager.cc
+++ b/content/browser/frame_host/render_frame_host_manager.cc
@@ -64,6 +64,7 @@ RenderFrameHostManager::RenderFrameHostManager(
interstitial_page_(nullptr),
should_reuse_web_ui_(false),
weak_factory_(this) {
+ LOG(ERROR) << "RFHM[" << this << "]::RFHM";
DCHECK(frame_tree_node_);
}
@@ -89,12 +90,16 @@ RenderFrameHostManager::~RenderFrameHostManager() {
// We should always have a current RenderFrameHost except in some tests.
SetRenderFrameHost(scoped_ptr<RenderFrameHostImpl>());
+
+ LOG(ERROR) << "RFHM[" << this << "]::~RFHM";
}
void RenderFrameHostManager::Init(BrowserContext* browser_context,
SiteInstance* site_instance,
int view_routing_id,
int frame_routing_id) {
+ LOG(ERROR) << "RFHM[" << this << "]::Init";
+
// Create a RenderViewHost and RenderFrameHost, once we have an instance. It
// is important to immediately give this SiteInstance to a RenderViewHost so
// that the SiteInstance is ref counted.
@@ -105,6 +110,11 @@ void RenderFrameHostManager::Init(BrowserContext* browser_context,
SetRenderFrameHost(CreateRenderFrameHost(site_instance, view_routing_id,
frame_routing_id, flags));
+ if (!frame_tree_node_->IsMainFrame()) {
+ delegate_->NotifySwappedFromRenderManager(
+ nullptr, render_frame_host_.get(), false);
+ }
+
// Keep track of renderer processes as they start to shut down or are
// crashed/killed.
registrar_.Add(this, NOTIFICATION_RENDERER_PROCESS_CLOSED,
@@ -174,6 +184,9 @@ RenderFrameHostImpl* RenderFrameHostManager::Navigate(
const NavigationEntryImpl& entry) {
TRACE_EVENT1("navigation", "RenderFrameHostManager:Navigate",
"FrameTreeNode id", frame_tree_node_->frame_tree_node_id());
+ LOG(ERROR) << "RFHM[" << this << "]::Navigate: "
+ << entry.GetURL();
+
// Create a pending RenderFrameHost to use for the navigation.
RenderFrameHostImpl* dest_render_frame_host = UpdateStateForNavigate(
entry.GetURL(), entry.source_site_instance(), entry.site_instance(),
@@ -223,11 +236,6 @@ RenderFrameHostImpl* RenderFrameHostManager::Navigate(
if (dest_render_frame_host != render_frame_host_ &&
dest_render_frame_host->GetView()) {
dest_render_frame_host->GetView()->Hide();
- } else {
- // Notify here as we won't be calling CommitPending (which does the
- // notify).
- delegate_->NotifySwappedFromRenderManager(
- NULL, render_frame_host_.get(), frame_tree_node_->IsMainFrame());
}
}
@@ -1321,6 +1329,8 @@ scoped_ptr<RenderFrameHostImpl> RenderFrameHostManager::CreateRenderFrame(
int opener_route_id,
int flags,
int* view_routing_id_ptr) {
+ LOG(ERROR) << "RFHM[" << this << "]::CreateRenderFrame:";
+
bool swapped_out = !!(flags & CREATE_RF_SWAPPED_OUT);
CHECK(instance);
// Swapped out views should always be hidden.
@@ -1411,13 +1421,6 @@ scoped_ptr<RenderFrameHostImpl> RenderFrameHostManager::CreateRenderFrame(
if (success) {
if (view_routing_id_ptr)
*view_routing_id_ptr = render_view_host->GetRoutingID();
-
- // A brand new RenderFrame was created by one of the Init calls above.
- // Announce it to observers.
- if (swapped_out)
- render_frame_delegate_->RenderFrameCreated(proxy->render_frame_host());
- else
- render_frame_delegate_->RenderFrameCreated(new_render_frame_host.get());
}
}
« no previous file with comments | « content/browser/frame_host/render_frame_host_impl.cc ('k') | content/browser/renderer_host/render_view_host_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698