| 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,
|
|
|