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

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

Issue 6966017: Remove a chrome dependency by removing Prerender from ResourceDispatcherHost. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix unit_tests build Created 9 years, 7 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_manager.h" 5 #include "chrome/browser/prerender/prerender_manager.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/metrics/field_trial.h" 10 #include "base/metrics/field_trial.h"
11 #include "base/metrics/histogram.h" 11 #include "base/metrics/histogram.h"
12 #include "base/time.h" 12 #include "base/time.h"
13 #include "base/utf_string_conversions.h" 13 #include "base/utf_string_conversions.h"
14 #include "chrome/browser/browser_process.h"
14 #include "chrome/browser/favicon/favicon_tab_helper.h" 15 #include "chrome/browser/favicon/favicon_tab_helper.h"
15 #include "chrome/browser/prerender/prerender_contents.h" 16 #include "chrome/browser/prerender/prerender_contents.h"
16 #include "chrome/browser/prerender/prerender_final_status.h" 17 #include "chrome/browser/prerender/prerender_final_status.h"
17 #include "chrome/browser/prerender/prerender_tracker.h" 18 #include "chrome/browser/prerender/prerender_tracker.h"
18 #include "chrome/browser/profiles/profile.h" 19 #include "chrome/browser/profiles/profile.h"
19 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" 20 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
20 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper_delegate.h" 21 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper_delegate.h"
21 #include "chrome/common/render_messages.h" 22 #include "chrome/common/render_messages.h"
22 #include "content/browser/browser_thread.h" 23 #include "content/browser/browser_thread.h"
23 #include "content/browser/renderer_host/render_view_host.h" 24 #include "content/browser/renderer_host/render_view_host.h"
(...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after
446 return false; 447 return false;
447 } 448 }
448 449
449 int child_id, route_id; 450 int child_id, route_id;
450 CHECK(prerender_contents->GetChildId(&child_id)); 451 CHECK(prerender_contents->GetChildId(&child_id));
451 CHECK(prerender_contents->GetRouteId(&route_id)); 452 CHECK(prerender_contents->GetRouteId(&route_id));
452 453
453 // Try to set the prerendered page as used, so any subsequent attempts to 454 // Try to set the prerendered page as used, so any subsequent attempts to
454 // cancel on other threads will fail. If this fails because the prerender 455 // cancel on other threads will fail. If this fails because the prerender
455 // was already cancelled, possibly on another thread, fail. 456 // was already cancelled, possibly on another thread, fail.
456 if (!PrerenderTracker::GetInstance()->TryUse(child_id, route_id)) 457 if (!g_browser_process->prerender_tracker()->TryUse(child_id, route_id))
457 return false; 458 return false;
458 459
459 if (!prerender_contents->load_start_time().is_null()) 460 if (!prerender_contents->load_start_time().is_null())
460 RecordTimeUntilUsed(GetCurrentTimeTicks() - 461 RecordTimeUntilUsed(GetCurrentTimeTicks() -
461 prerender_contents->load_start_time()); 462 prerender_contents->load_start_time());
462 463
463 UMA_HISTOGRAM_COUNTS("Prerender.PrerendersPerSessionCount", 464 UMA_HISTOGRAM_COUNTS("Prerender.PrerendersPerSessionCount",
464 ++prerenders_per_session_count_); 465 ++prerenders_per_session_count_);
465 prerender_contents->set_final_status(FINAL_STATUS_USED); 466 prerender_contents->set_final_status(FINAL_STATUS_USED);
466 467
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
558 return false; 559 return false;
559 } 560 }
560 561
561 int child_id, route_id; 562 int child_id, route_id;
562 CHECK(prerender_contents->GetChildId(&child_id)); 563 CHECK(prerender_contents->GetChildId(&child_id));
563 CHECK(prerender_contents->GetRouteId(&route_id)); 564 CHECK(prerender_contents->GetRouteId(&route_id));
564 565
565 // Try to set the prerendered page as used, so any subsequent attempts to 566 // Try to set the prerendered page as used, so any subsequent attempts to
566 // cancel on other threads will fail. If this fails because the prerender 567 // cancel on other threads will fail. If this fails because the prerender
567 // was already cancelled, possibly on another thread, fail. 568 // was already cancelled, possibly on another thread, fail.
568 if (!PrerenderTracker::GetInstance()->TryUse(child_id, route_id)) 569 if (!g_browser_process->prerender_tracker()->TryUse(child_id, route_id))
569 return false; 570 return false;
570 571
571 if (!prerender_contents->load_start_time().is_null()) 572 if (!prerender_contents->load_start_time().is_null())
572 RecordTimeUntilUsed(GetCurrentTimeTicks() - 573 RecordTimeUntilUsed(GetCurrentTimeTicks() -
573 prerender_contents->load_start_time()); 574 prerender_contents->load_start_time());
574 575
575 UMA_HISTOGRAM_COUNTS("Prerender.PrerendersPerSessionCount", 576 UMA_HISTOGRAM_COUNTS("Prerender.PrerendersPerSessionCount",
576 ++prerenders_per_session_count_); 577 ++prerenders_per_session_count_);
577 prerender_contents->set_final_status(FINAL_STATUS_USED); 578 prerender_contents->set_final_status(FINAL_STATUS_USED);
578 579
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after
1000 base::TimeTicks cutoff = GetCurrentTimeTicks() - 1001 base::TimeTicks cutoff = GetCurrentTimeTicks() -
1001 base::TimeDelta::FromMilliseconds(kNavigationRecordWindowMs); 1002 base::TimeDelta::FromMilliseconds(kNavigationRecordWindowMs);
1002 while (!navigations_.empty()) { 1003 while (!navigations_.empty()) {
1003 if (navigations_.front().time_ > cutoff) 1004 if (navigations_.front().time_ > cutoff)
1004 break; 1005 break;
1005 navigations_.pop_front(); 1006 navigations_.pop_front();
1006 } 1007 }
1007 } 1008 }
1008 1009
1009 } // namespace prerender 1010 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698