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

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

Issue 10386223: Renaming poorly named classes and adding missing unit tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Undo rename of Dispatcher Created 8 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) 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_manager.h" 5 #include "chrome/browser/prerender/prerender_manager.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 12 matching lines...) Expand all
23 #include "chrome/browser/history/top_sites.h" 23 #include "chrome/browser/history/top_sites.h"
24 #include "chrome/browser/prerender/prerender_condition.h" 24 #include "chrome/browser/prerender/prerender_condition.h"
25 #include "chrome/browser/prerender/prerender_contents.h" 25 #include "chrome/browser/prerender/prerender_contents.h"
26 #include "chrome/browser/prerender/prerender_field_trial.h" 26 #include "chrome/browser/prerender/prerender_field_trial.h"
27 #include "chrome/browser/prerender/prerender_final_status.h" 27 #include "chrome/browser/prerender/prerender_final_status.h"
28 #include "chrome/browser/prerender/prerender_histograms.h" 28 #include "chrome/browser/prerender/prerender_histograms.h"
29 #include "chrome/browser/prerender/prerender_history.h" 29 #include "chrome/browser/prerender/prerender_history.h"
30 #include "chrome/browser/prerender/prerender_local_predictor.h" 30 #include "chrome/browser/prerender/prerender_local_predictor.h"
31 #include "chrome/browser/prerender/prerender_manager_factory.h" 31 #include "chrome/browser/prerender/prerender_manager_factory.h"
32 #include "chrome/browser/prerender/prerender_tab_helper.h" 32 #include "chrome/browser/prerender/prerender_tab_helper.h"
33 #include "chrome/browser/prerender/prerender_tracker.h" 33 #include "chrome/browser/prerender/prerender_render_view_tracker.h"
34 #include "chrome/browser/prerender/prerender_util.h" 34 #include "chrome/browser/prerender/prerender_util.h"
35 #include "chrome/browser/profiles/profile.h" 35 #include "chrome/browser/profiles/profile.h"
36 #include "chrome/browser/ui/tab_contents/core_tab_helper.h" 36 #include "chrome/browser/ui/tab_contents/core_tab_helper.h"
37 #include "chrome/browser/ui/tab_contents/core_tab_helper_delegate.h" 37 #include "chrome/browser/ui/tab_contents/core_tab_helper_delegate.h"
38 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" 38 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
39 #include "chrome/common/chrome_notification_types.h" 39 #include "chrome/common/chrome_notification_types.h"
40 #include "chrome/common/chrome_switches.h" 40 #include "chrome/common/chrome_switches.h"
41 #include "chrome/common/prerender_messages.h" 41 #include "chrome/common/prerender_messages.h"
42 #include "content/public/browser/browser_thread.h" 42 #include "content/public/browser/browser_thread.h"
43 #include "content/public/browser/devtools_agent_host_registry.h" 43 #include "content/public/browser/devtools_agent_host_registry.h"
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 return profile_->GetTopSites(); 242 return profile_->GetTopSites();
243 return NULL; 243 return NULL;
244 } 244 }
245 245
246 CancelableRequestConsumer topsites_consumer_; 246 CancelableRequestConsumer topsites_consumer_;
247 Profile* profile_; 247 Profile* profile_;
248 content::NotificationRegistrar registrar_; 248 content::NotificationRegistrar registrar_;
249 std::set<GURL> urls_; 249 std::set<GURL> urls_;
250 }; 250 };
251 251
252 PrerenderManager::PrerenderManager(Profile* profile, 252 PrerenderManager::PrerenderManager(
253 PrerenderTracker* prerender_tracker) 253 Profile* profile, PrerenderRenderViewTracker* prerender_render_view_tracker)
254 : enabled_(true), 254 : enabled_(true),
255 profile_(profile), 255 profile_(profile),
256 prerender_tracker_(prerender_tracker), 256 prerender_render_view_tracker_(prerender_render_view_tracker),
257 prerender_contents_factory_(PrerenderContents::CreateFactory()), 257 prerender_contents_factory_(PrerenderContents::CreateFactory()),
258 last_prerender_start_time_(GetCurrentTimeTicks() - 258 last_prerender_start_time_(GetCurrentTimeTicks() -
259 base::TimeDelta::FromMilliseconds(kMinTimeBetweenPrerendersMs)), 259 base::TimeDelta::FromMilliseconds(kMinTimeBetweenPrerendersMs)),
260 weak_factory_(this), 260 weak_factory_(this),
261 prerender_history_(new PrerenderHistory(kHistoryLength)), 261 prerender_history_(new PrerenderHistory(kHistoryLength)),
262 histograms_(new PrerenderHistograms()) { 262 histograms_(new PrerenderHistograms()) {
263 // There are some assumptions that the PrerenderManager is on the UI thread. 263 // There are some assumptions that the PrerenderManager is on the UI thread.
264 // Any other checks simply make sure that the PrerenderManager is accessed on 264 // Any other checks simply make sure that the PrerenderManager is accessed on
265 // the same thread that it was created on. 265 // the same thread that it was created on.
266 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 266 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
438 return false; 438 return false;
439 } 439 }
440 440
441 int child_id, route_id; 441 int child_id, route_id;
442 CHECK(prerender_contents->GetChildId(&child_id)); 442 CHECK(prerender_contents->GetChildId(&child_id));
443 CHECK(prerender_contents->GetRouteId(&route_id)); 443 CHECK(prerender_contents->GetRouteId(&route_id));
444 444
445 // Try to set the prerendered page as used, so any subsequent attempts to 445 // Try to set the prerendered page as used, so any subsequent attempts to
446 // cancel on other threads will fail. If this fails because the prerender 446 // cancel on other threads will fail. If this fails because the prerender
447 // was already cancelled, possibly on another thread, fail. 447 // was already cancelled, possibly on another thread, fail.
448 if (!prerender_tracker_->TryUse(child_id, route_id)) 448 if (!prerender_render_view_tracker_->TryUse(child_id, route_id))
449 return false; 449 return false;
450 450
451 if (!prerender_contents->load_start_time().is_null()) { 451 if (!prerender_contents->load_start_time().is_null()) {
452 histograms_->RecordTimeUntilUsed(GetCurrentTimeTicks() - 452 histograms_->RecordTimeUntilUsed(GetCurrentTimeTicks() -
453 prerender_contents->load_start_time(), 453 prerender_contents->load_start_time(),
454 GetMaxAge()); 454 GetMaxAge());
455 } 455 }
456 456
457 histograms_->RecordPerSessionCount(++prerenders_per_session_count_); 457 histograms_->RecordPerSessionCount(++prerenders_per_session_count_);
458 histograms_->RecordUsedPrerender(prerender_contents->origin()); 458 histograms_->RecordUsedPrerender(prerender_contents->origin());
(...skipping 598 matching lines...) Expand 10 before | Expand all | Expand 10 after
1057 return base::TimeTicks::Now(); 1057 return base::TimeTicks::Now();
1058 } 1058 }
1059 1059
1060 PrerenderContents* PrerenderManager::CreatePrerenderContents( 1060 PrerenderContents* PrerenderManager::CreatePrerenderContents(
1061 const GURL& url, 1061 const GURL& url,
1062 const content::Referrer& referrer, 1062 const content::Referrer& referrer,
1063 Origin origin, 1063 Origin origin,
1064 uint8 experiment_id) { 1064 uint8 experiment_id) {
1065 DCHECK(CalledOnValidThread()); 1065 DCHECK(CalledOnValidThread());
1066 return prerender_contents_factory_->CreatePrerenderContents( 1066 return prerender_contents_factory_->CreatePrerenderContents(
1067 this, prerender_tracker_, profile_, url, 1067 this, prerender_render_view_tracker_, profile_, url,
1068 referrer, origin, experiment_id); 1068 referrer, origin, experiment_id);
1069 } 1069 }
1070 1070
1071 void PrerenderManager::DeletePendingDeleteEntries() { 1071 void PrerenderManager::DeletePendingDeleteEntries() {
1072 while (!pending_delete_list_.empty()) { 1072 while (!pending_delete_list_.empty()) {
1073 PrerenderContents* contents = pending_delete_list_.front(); 1073 PrerenderContents* contents = pending_delete_list_.front();
1074 pending_delete_list_.pop_front(); 1074 pending_delete_list_.pop_front();
1075 delete contents; 1075 delete contents;
1076 } 1076 }
1077 } 1077 }
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
1257 if (!render_process_host || !render_process_host->GetBrowserContext()) 1257 if (!render_process_host || !render_process_host->GetBrowserContext())
1258 return NULL; 1258 return NULL;
1259 Profile* profile = Profile::FromBrowserContext( 1259 Profile* profile = Profile::FromBrowserContext(
1260 render_process_host->GetBrowserContext()); 1260 render_process_host->GetBrowserContext());
1261 if (!profile) 1261 if (!profile)
1262 return NULL; 1262 return NULL;
1263 return PrerenderManagerFactory::GetInstance()->GetForProfile(profile); 1263 return PrerenderManagerFactory::GetInstance()->GetForProfile(profile);
1264 } 1264 }
1265 1265
1266 } // namespace prerender 1266 } // namespace prerender
OLDNEW
« no previous file with comments | « chrome/browser/prerender/prerender_manager.h ('k') | chrome/browser/prerender/prerender_manager_factory.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698