OLD | NEW |
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 <algorithm> | 7 #include <algorithm> |
8 #include <functional> | 8 #include <functional> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
234 PrerenderManager::PrerenderManager(Profile* profile, | 234 PrerenderManager::PrerenderManager(Profile* profile, |
235 PrerenderTracker* prerender_tracker) | 235 PrerenderTracker* prerender_tracker) |
236 : enabled_(profile && profile->GetPrefs() && | 236 : enabled_(profile && profile->GetPrefs() && |
237 profile->GetPrefs()->GetBoolean(prefs::kNetworkPredictionEnabled)), | 237 profile->GetPrefs()->GetBoolean(prefs::kNetworkPredictionEnabled)), |
238 profile_(profile), | 238 profile_(profile), |
239 prerender_tracker_(prerender_tracker), | 239 prerender_tracker_(prerender_tracker), |
240 prerender_contents_factory_(PrerenderContents::CreateFactory()), | 240 prerender_contents_factory_(PrerenderContents::CreateFactory()), |
241 last_prerender_start_time_(GetCurrentTimeTicks() - | 241 last_prerender_start_time_(GetCurrentTimeTicks() - |
242 base::TimeDelta::FromMilliseconds(kMinTimeBetweenPrerendersMs)), | 242 base::TimeDelta::FromMilliseconds(kMinTimeBetweenPrerendersMs)), |
243 prerender_history_(new PrerenderHistory(kHistoryLength)), | 243 prerender_history_(new PrerenderHistory(kHistoryLength)), |
244 histograms_(new PrerenderHistograms()) { | 244 histograms_(new PrerenderHistograms()), |
| 245 profile_network_bytes_(0) { |
245 // There are some assumptions that the PrerenderManager is on the UI thread. | 246 // There are some assumptions that the PrerenderManager is on the UI thread. |
246 // Any other checks simply make sure that the PrerenderManager is accessed on | 247 // Any other checks simply make sure that the PrerenderManager is accessed on |
247 // the same thread that it was created on. | 248 // the same thread that it was created on. |
248 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 249 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
249 | 250 |
250 if (IsLocalPredictorEnabled()) | 251 if (IsLocalPredictorEnabled()) |
251 local_predictor_.reset(new PrerenderLocalPredictor(this)); | 252 local_predictor_.reset(new PrerenderLocalPredictor(this)); |
252 | 253 |
253 if (IsLoggedInPredictorEnabled() && !profile_->IsOffTheRecord()) { | 254 if (IsLoggedInPredictorEnabled() && !profile_->IsOffTheRecord()) { |
254 predictors::PredictorDatabase* predictor_db = | 255 predictors::PredictorDatabase* predictor_db = |
(...skipping 1505 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1760 const history::URLRow* url_row, | 1761 const history::URLRow* url_row, |
1761 history::VisitVector* visists) { | 1762 history::VisitVector* visists) { |
1762 histograms_->RecordPrerenderPageVisitedStatus(origin, experiment_id, success); | 1763 histograms_->RecordPrerenderPageVisitedStatus(origin, experiment_id, success); |
1763 } | 1764 } |
1764 | 1765 |
1765 // static | 1766 // static |
1766 void PrerenderManager::HangSessionStorageMergesForTesting() { | 1767 void PrerenderManager::HangSessionStorageMergesForTesting() { |
1767 g_hang_session_storage_merges_for_testing = true; | 1768 g_hang_session_storage_merges_for_testing = true; |
1768 } | 1769 } |
1769 | 1770 |
| 1771 void PrerenderManager::RecordBytes(bool used, int64 prerender_bytes) { |
| 1772 if (ActuallyPrerendering()) |
| 1773 histograms_->RecordBytes(used, prerender_bytes, profile_network_bytes_); |
| 1774 } |
| 1775 |
| 1776 void PrerenderManager::AddProfileNetworkBytesIfEnabled(int64 bytes) { |
| 1777 if (IsEnabled() && ActuallyPrerendering()) |
| 1778 profile_network_bytes_ += bytes; |
| 1779 } |
| 1780 |
1770 } // namespace prerender | 1781 } // namespace prerender |
OLD | NEW |