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

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

Issue 2346863003: PrerenderManager: No longer expose weak pointers. (Closed)
Patch Set: Fix net-internals Created 4 years, 3 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
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 <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <functional> 10 #include <functional>
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 time(time) { 150 time(time) {
151 } 151 }
152 152
153 GURL url; 153 GURL url;
154 base::TimeTicks time; 154 base::TimeTicks time;
155 }; 155 };
156 156
157 PrerenderManager::PrerenderManager(Profile* profile) 157 PrerenderManager::PrerenderManager(Profile* profile)
158 : profile_(profile), 158 : profile_(profile),
159 prerender_contents_factory_(PrerenderContents::CreateFactory()), 159 prerender_contents_factory_(PrerenderContents::CreateFactory()),
160 last_prerender_start_time_(GetCurrentTimeTicks() - 160 last_prerender_start_time_(
161 GetCurrentTimeTicks() -
161 base::TimeDelta::FromMilliseconds(kMinTimeBetweenPrerendersMs)), 162 base::TimeDelta::FromMilliseconds(kMinTimeBetweenPrerendersMs)),
162 prerender_history_(new PrerenderHistory(kHistoryLength)), 163 prerender_history_(new PrerenderHistory(kHistoryLength)),
163 histograms_(new PrerenderHistograms()), 164 histograms_(new PrerenderHistograms()),
164 profile_network_bytes_(0), 165 profile_network_bytes_(0),
165 last_recorded_profile_network_bytes_(0) { 166 last_recorded_profile_network_bytes_(0),
167 weak_factory_(this) {
166 DCHECK_CURRENTLY_ON(BrowserThread::UI); 168 DCHECK_CURRENTLY_ON(BrowserThread::UI);
167 169
168 // Certain experiments override our default config_ values. 170 // Certain experiments override our default config_ values.
169 switch (PrerenderManager::GetMode()) { 171 switch (PrerenderManager::GetMode()) {
170 case PrerenderManager::PRERENDER_MODE_EXPERIMENT_MULTI_PRERENDER_GROUP: 172 case PrerenderManager::PRERENDER_MODE_EXPERIMENT_MULTI_PRERENDER_GROUP:
171 config_.max_link_concurrency = 4; 173 config_.max_link_concurrency = 4;
172 config_.max_link_concurrency_per_launcher = 2; 174 config_.max_link_concurrency_per_launcher = 2;
173 break; 175 break;
174 case PrerenderManager::PRERENDER_MODE_EXPERIMENT_15MIN_TTL_GROUP: 176 case PrerenderManager::PRERENDER_MODE_EXPERIMENT_15MIN_TTL_GROUP:
175 config_.time_to_live = base::TimeDelta::FromMinutes(15); 177 config_.time_to_live = base::TimeDelta::FromMinutes(15);
(...skipping 849 matching lines...) Expand 10 before | Expand all | Expand 10 after
1025 to_delete_prerenders_.clear(); 1027 to_delete_prerenders_.clear();
1026 1028
1027 // Measure how long a the various cleanup tasks took. http://crbug.com/305419. 1029 // Measure how long a the various cleanup tasks took. http://crbug.com/305419.
1028 UMA_HISTOGRAM_TIMES("Prerender.PeriodicCleanupDeleteContentsTime", 1030 UMA_HISTOGRAM_TIMES("Prerender.PeriodicCleanupDeleteContentsTime",
1029 cleanup_timer.Elapsed()); 1031 cleanup_timer.Elapsed());
1030 } 1032 }
1031 1033
1032 void PrerenderManager::PostCleanupTask() { 1034 void PrerenderManager::PostCleanupTask() {
1033 DCHECK_CURRENTLY_ON(BrowserThread::UI); 1035 DCHECK_CURRENTLY_ON(BrowserThread::UI);
1034 base::ThreadTaskRunnerHandle::Get()->PostTask( 1036 base::ThreadTaskRunnerHandle::Get()->PostTask(
1035 FROM_HERE, base::Bind(&PrerenderManager::PeriodicCleanup, AsWeakPtr())); 1037 FROM_HERE, base::Bind(&PrerenderManager::PeriodicCleanup,
1038 weak_factory_.GetWeakPtr()));
1036 } 1039 }
1037 1040
1038 base::TimeTicks PrerenderManager::GetExpiryTimeForNewPrerender( 1041 base::TimeTicks PrerenderManager::GetExpiryTimeForNewPrerender(
1039 Origin origin) const { 1042 Origin origin) const {
1040 return GetCurrentTimeTicks() + config_.time_to_live; 1043 return GetCurrentTimeTicks() + config_.time_to_live;
1041 } 1044 }
1042 1045
1043 base::TimeTicks PrerenderManager::GetExpiryTimeForNavigatedAwayPrerender() 1046 base::TimeTicks PrerenderManager::GetExpiryTimeForNavigatedAwayPrerender()
1044 const { 1047 const {
1045 return GetCurrentTimeTicks() + config_.abandon_time_to_live; 1048 return GetCurrentTimeTicks() + config_.abandon_time_to_live;
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
1330 DCHECK_EQ(1u, erased); 1333 DCHECK_EQ(1u, erased);
1331 } 1334 }
1332 1335
1333 void PrerenderManager::SetPrerenderContentsFactoryForTest( 1336 void PrerenderManager::SetPrerenderContentsFactoryForTest(
1334 PrerenderContents::Factory* prerender_contents_factory) { 1337 PrerenderContents::Factory* prerender_contents_factory) {
1335 DCHECK_CURRENTLY_ON(BrowserThread::UI); 1338 DCHECK_CURRENTLY_ON(BrowserThread::UI);
1336 prerender_contents_factory_.reset(prerender_contents_factory); 1339 prerender_contents_factory_.reset(prerender_contents_factory);
1337 } 1340 }
1338 1341
1339 } // namespace prerender 1342 } // namespace prerender
OLDNEW
« no previous file with comments | « chrome/browser/prerender/prerender_manager.h ('k') | chrome/browser/ui/webui/net_internals/net_internals_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698