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

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

Issue 9270018: Make a separate histogram for MatchComplete Final Status'es and (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 8 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 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 <utility> 8 #include <utility>
9 9
10 #include "base/process_util.h" 10 #include "base/process_util.h"
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 uint8 experiment_id) 215 uint8 experiment_id)
216 : prerender_manager_(prerender_manager), 216 : prerender_manager_(prerender_manager),
217 prerender_tracker_(prerender_tracker), 217 prerender_tracker_(prerender_tracker),
218 prerender_url_(url), 218 prerender_url_(url),
219 referrer_(referrer), 219 referrer_(referrer),
220 profile_(profile), 220 profile_(profile),
221 page_id_(0), 221 page_id_(0),
222 has_stopped_loading_(false), 222 has_stopped_loading_(false),
223 final_status_(FINAL_STATUS_MAX), 223 final_status_(FINAL_STATUS_MAX),
224 prerendering_has_started_(false), 224 prerendering_has_started_(false),
225 mc_status_(MC_DEFAULT),
225 prerendering_has_been_cancelled_(false), 226 prerendering_has_been_cancelled_(false),
226 child_id_(-1), 227 child_id_(-1),
227 route_id_(-1), 228 route_id_(-1),
228 origin_(origin), 229 origin_(origin),
229 experiment_id_(experiment_id) { 230 experiment_id_(experiment_id) {
230 DCHECK(prerender_manager != NULL); 231 DCHECK(prerender_manager != NULL);
231 } 232 }
232 233
233 bool PrerenderContents::Init() { 234 bool PrerenderContents::Init() {
234 return AddAliasURL(prerender_url_); 235 return AddAliasURL(prerender_url_);
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 338
338 bool PrerenderContents::GetRouteId(int* route_id) const { 339 bool PrerenderContents::GetRouteId(int* route_id) const {
339 CHECK(route_id); 340 CHECK(route_id);
340 DCHECK_GE(route_id_, -1); 341 DCHECK_GE(route_id_, -1);
341 *route_id = route_id_; 342 *route_id = route_id_;
342 return route_id_ != -1; 343 return route_id_ != -1;
343 } 344 }
344 345
345 void PrerenderContents::set_final_status(FinalStatus final_status) { 346 void PrerenderContents::set_final_status(FinalStatus final_status) {
346 DCHECK(final_status >= FINAL_STATUS_USED && final_status < FINAL_STATUS_MAX); 347 DCHECK(final_status >= FINAL_STATUS_USED && final_status < FINAL_STATUS_MAX);
347 DCHECK(final_status_ == FINAL_STATUS_MAX || 348 DCHECK(final_status_ == FINAL_STATUS_MAX);
dominich 2012/01/20 22:23:37 This is SO much cleaner and better. :)
tburkard 2012/01/20 23:23:00 Done.
348 final_status_ == FINAL_STATUS_CONTROL_GROUP ||
349 final_status_ == FINAL_STATUS_MATCH_COMPLETE_DUMMY);
350
351 // Don't override final_status_ if it's FINAL_STATUS_CONTROL_GROUP or
352 // FINAL_STATUS_MATCH_COMPLETE_DUMMY, otherwise data will be collected
353 // in the Prerender.FinalStatus histogram.
354 if (final_status_ == FINAL_STATUS_CONTROL_GROUP ||
355 final_status_ == FINAL_STATUS_MATCH_COMPLETE_DUMMY)
356 return;
357 349
358 final_status_ = final_status; 350 final_status_ = final_status;
359 } 351 }
360 352
361 PrerenderContents::~PrerenderContents() { 353 PrerenderContents::~PrerenderContents() {
362 DCHECK(final_status_ != FINAL_STATUS_MAX); 354 DCHECK(final_status_ != FINAL_STATUS_MAX);
363 DCHECK(prerendering_has_been_cancelled_ || 355 DCHECK(prerendering_has_been_cancelled_ ||
364 final_status_ == FINAL_STATUS_USED || 356 final_status_ == FINAL_STATUS_USED);
365 final_status_ == FINAL_STATUS_CONTROL_GROUP ||
366 final_status_ == FINAL_STATUS_MATCH_COMPLETE_DUMMY);
367 DCHECK(origin_ != ORIGIN_MAX); 357 DCHECK(origin_ != ORIGIN_MAX);
368 358
369 // If we haven't even started prerendering, we were just in the control 359 prerender_manager_->RecordFinalStatusWithMatchCompleteStatus(
dominich 2012/01/20 22:23:37 Is RecordFinalStatus ever called directly? If not,
tburkard 2012/01/20 23:23:00 Yes, RecordFinalStatus is called directly many tim
370 // group (or a match complete dummy), which means we do not want to record 360 origin_,
371 // the status. 361 experiment_id_,
372 if (prerendering_has_started()) 362 mc_status_,
373 prerender_manager_->RecordFinalStatus(origin_, experiment_id_, 363 final_status_);
374 final_status_);
375 364
376 if (child_id_ != -1 && route_id_ != -1) 365 if (child_id_ != -1 && route_id_ != -1)
377 prerender_tracker_->OnPrerenderingFinished(child_id_, route_id_); 366 prerender_tracker_->OnPrerenderingFinished(child_id_, route_id_);
378 367
379 // If we still have a TabContents, clean up anything we need to and then 368 // If we still have a TabContents, clean up anything we need to and then
380 // destroy it. 369 // destroy it.
381 if (prerender_contents_.get()) 370 if (prerender_contents_.get())
382 delete ReleasePrerenderContents(); 371 delete ReleasePrerenderContents();
383 372
384 // The following URLs are no longer rendering. 373 // The following URLs are no longer rendering.
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 bool PrerenderContents::IsCrossSiteNavigationPending() const { 650 bool PrerenderContents::IsCrossSiteNavigationPending() const {
662 if (!prerender_contents_.get() || !prerender_contents_->web_contents()) 651 if (!prerender_contents_.get() || !prerender_contents_->web_contents())
663 return false; 652 return false;
664 const WebContents* web_contents = prerender_contents_->web_contents(); 653 const WebContents* web_contents = prerender_contents_->web_contents();
665 return (web_contents->GetSiteInstance() != 654 return (web_contents->GetSiteInstance() !=
666 web_contents->GetPendingSiteInstance()); 655 web_contents->GetPendingSiteInstance());
667 } 656 }
668 657
669 658
670 } // namespace prerender 659 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698