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

Unified Diff: chrome/browser/prerender/prerender_manager.cc

Issue 138583003: Add back the code to PrerenderManager::PendingSwap to handle RenderViewCreated being called for a... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 6 years, 11 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: chrome/browser/prerender/prerender_manager.cc
===================================================================
--- chrome/browser/prerender/prerender_manager.cc (revision 244941)
+++ chrome/browser/prerender/prerender_manager.cc (working copy)
@@ -1127,20 +1127,14 @@
start_time_(base::TimeTicks::Now()),
swap_successful_(false),
weak_factory_(this) {
- // Record the RFH id in the tracker to install throttles on MAIN_FRAME
- // requests from that route.
- int render_process_id =
- target_contents->GetMainFrame()->GetProcess()->GetID();
- int render_frame_id = target_contents->GetMainFrame()->GetRoutingID();
- render_frame_route_id_pair_ = PrerenderTracker::ChildRouteIdPair(
- render_process_id, render_frame_id);
- manager_->prerender_tracker()->AddPrerenderPendingSwap(
- render_frame_route_id_pair_, url_);
+ RenderViewCreated(target_contents->GetRenderViewHost());
}
PrerenderManager::PendingSwap::~PendingSwap() {
- manager_->prerender_tracker()->RemovePrerenderPendingSwap(
- render_frame_route_id_pair_, swap_successful_);
+ for (size_t i = 0; i < main_rfh_ids_.size(); i++) {
+ manager_->prerender_tracker()->RemovePrerenderPendingSwap(
+ main_rfh_ids_[i], swap_successful_);
+ }
}
void PrerenderManager::PendingSwap::BeginSwap() {
@@ -1185,6 +1179,20 @@
prerender_data_->ClearPendingSwap();
}
+void PrerenderManager::PendingSwap::RenderViewCreated(
+ content::RenderViewHost* render_view_host) {
+ // Record the RFH id in the tracker to install throttles on MAIN_FRAME
+ // requests from that route.
+ int render_process_id =
+ render_view_host->GetMainFrame()->GetProcess()->GetID();
+ int render_frame_id = render_view_host->GetMainFrame()->GetRoutingID();
+ PrerenderTracker::ChildRouteIdPair render_frame_route_id_pair(
+ render_process_id, render_frame_id);
+ main_rfh_ids_.push_back(render_frame_route_id_pair);
+ manager_->prerender_tracker()->AddPrerenderPendingSwap(
+ render_frame_route_id_pair, url_);
+}
+
void PrerenderManager::PendingSwap::DidFailProvisionalLoad(
int64 frame_id,
const base::string16& frame_unique_name,

Powered by Google App Engine
This is Rietveld 408576698