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

Side by Side Diff: chrome/browser/prerender/prerender_contents.cc

Issue 11551003: Change multi-prerender API to include per launcher slots. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: surprising test deflake Created 8 years 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/prerender/prerender_contents.h" 5 #include "chrome/browser/prerender/prerender_contents.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <functional> 8 #include <functional>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 has_stopped_loading_(false), 205 has_stopped_loading_(false),
206 has_finished_loading_(false), 206 has_finished_loading_(false),
207 final_status_(FINAL_STATUS_MAX), 207 final_status_(FINAL_STATUS_MAX),
208 match_complete_status_(MATCH_COMPLETE_DEFAULT), 208 match_complete_status_(MATCH_COMPLETE_DEFAULT),
209 prerendering_has_been_cancelled_(false), 209 prerendering_has_been_cancelled_(false),
210 child_id_(-1), 210 child_id_(-1),
211 route_id_(-1), 211 route_id_(-1),
212 origin_(origin), 212 origin_(origin),
213 experiment_id_(experiment_id), 213 experiment_id_(experiment_id),
214 creator_child_id_(-1) { 214 creator_child_id_(-1) {
215 DCHECK(prerender_manager != NULL); 215 DCHECK_NE(static_cast<PrerenderManager*>(NULL), prerender_manager);
216 } 216 }
217 217
218 PrerenderContents* PrerenderContents::CreateMatchCompleteReplacement() { 218 PrerenderContents* PrerenderContents::CreateMatchCompleteReplacement() {
219 PrerenderContents* new_contents = prerender_manager_->CreatePrerenderContents( 219 PrerenderContents* new_contents = prerender_manager_->CreatePrerenderContents(
220 prerender_url(), referrer(), origin(), experiment_id()); 220 prerender_url(), referrer(), origin(), experiment_id());
221 221
222 new_contents->load_start_time_ = load_start_time_; 222 new_contents->load_start_time_ = load_start_time_;
223 new_contents->session_storage_namespace_id_ = session_storage_namespace_id_; 223 new_contents->session_storage_namespace_id_ = session_storage_namespace_id_;
224 new_contents->set_match_complete_status( 224 new_contents->set_match_complete_status(
225 PrerenderContents::MATCH_COMPLETE_REPLACEMENT_PENDING); 225 PrerenderContents::MATCH_COMPLETE_REPLACEMENT_PENDING);
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after
592 GetFinalStatus(child_id_, route_id_, &final_status)) { 592 GetFinalStatus(child_id_, route_id_, &final_status)) {
593 NOTREACHED(); 593 NOTREACHED();
594 } 594 }
595 } 595 }
596 SetFinalStatus(final_status); 596 SetFinalStatus(final_status);
597 597
598 prerendering_has_been_cancelled_ = true; 598 prerendering_has_been_cancelled_ = true;
599 prerender_manager_->AddToHistory(this); 599 prerender_manager_->AddToHistory(this);
600 prerender_manager_->MoveEntryToPendingDelete(this, final_status); 600 prerender_manager_->MoveEntryToPendingDelete(this, final_status);
601 601
602 // We may destroy the PrerenderContents before we have initialized the
603 // RenderViewHost. Otherwise set the Observer's PrerenderContents to NULL to
604 // avoid any more messages being sent.
605 if (render_view_host_observer_)
606 render_view_host_observer_->set_prerender_contents(NULL);
mmenke 2012/12/17 20:02:23 Why does this need to be moved?
gavinp 2012/12/18 00:44:14 It doesn't. I just moved it while I was debugging
607
602 if (!prerender_manager_->IsControlGroup(experiment_id()) && 608 if (!prerender_manager_->IsControlGroup(experiment_id()) &&
603 (prerendering_has_started() || 609 (prerendering_has_started() ||
604 match_complete_status() == MATCH_COMPLETE_REPLACEMENT)) { 610 match_complete_status() == MATCH_COMPLETE_REPLACEMENT)) {
605 NotifyPrerenderStop(); 611 NotifyPrerenderStop();
606 } 612 }
607
608 // We may destroy the PrerenderContents before we have initialized the
609 // RenderViewHost. Otherwise set the Observer's PrerenderContents to NULL to
610 // avoid any more messages being sent.
611 if (render_view_host_observer_)
612 render_view_host_observer_->set_prerender_contents(NULL);
613 } 613 }
614 614
615 base::ProcessMetrics* PrerenderContents::MaybeGetProcessMetrics() { 615 base::ProcessMetrics* PrerenderContents::MaybeGetProcessMetrics() {
616 if (process_metrics_.get() == NULL) { 616 if (process_metrics_.get() == NULL) {
617 // If a PrenderContents hasn't started prerending, don't be fully formed. 617 // If a PrenderContents hasn't started prerending, don't be fully formed.
618 if (!GetRenderViewHost() || !GetRenderViewHost()->GetProcess()) 618 if (!GetRenderViewHost() || !GetRenderViewHost()->GetProcess())
619 return NULL; 619 return NULL;
620 base::ProcessHandle handle = GetRenderViewHost()->GetProcess()->GetHandle(); 620 base::ProcessHandle handle = GetRenderViewHost()->GetProcess()->GetHandle();
621 if (handle == base::kNullProcessHandle) 621 if (handle == base::kNullProcessHandle)
622 return NULL; 622 return NULL;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
685 685
686 bool PrerenderContents::IsCrossSiteNavigationPending() const { 686 bool PrerenderContents::IsCrossSiteNavigationPending() const {
687 if (!prerender_contents_) 687 if (!prerender_contents_)
688 return false; 688 return false;
689 return (prerender_contents_->GetSiteInstance() != 689 return (prerender_contents_->GetSiteInstance() !=
690 prerender_contents_->GetPendingSiteInstance()); 690 prerender_contents_->GetPendingSiteInstance());
691 } 691 }
692 692
693 693
694 } // namespace prerender 694 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698