Chromium Code Reviews| 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 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 231 : url(url), | 231 : url(url), |
| 232 time(time) { | 232 time(time) { |
| 233 } | 233 } |
| 234 | 234 |
| 235 GURL url; | 235 GURL url; |
| 236 base::TimeTicks time; | 236 base::TimeTicks time; |
| 237 }; | 237 }; |
| 238 | 238 |
| 239 PrerenderManager::PrerenderManager(Profile* profile, | 239 PrerenderManager::PrerenderManager(Profile* profile, |
| 240 PrerenderTracker* prerender_tracker) | 240 PrerenderTracker* prerender_tracker) |
| 241 : enabled_(profile && profile->GetPrefs() && | 241 : enabled_(true), |
| 242 profile->GetPrefs()->GetBoolean(prefs::kNetworkPredictionEnabled)), | |
| 243 profile_(profile), | 242 profile_(profile), |
| 244 prerender_tracker_(prerender_tracker), | 243 prerender_tracker_(prerender_tracker), |
| 245 prerender_contents_factory_(PrerenderContents::CreateFactory()), | 244 prerender_contents_factory_(PrerenderContents::CreateFactory()), |
| 246 last_prerender_start_time_(GetCurrentTimeTicks() - | 245 last_prerender_start_time_(GetCurrentTimeTicks() - |
| 247 base::TimeDelta::FromMilliseconds(kMinTimeBetweenPrerendersMs)), | 246 base::TimeDelta::FromMilliseconds(kMinTimeBetweenPrerendersMs)), |
| 248 prerender_history_(new PrerenderHistory(kHistoryLength)), | 247 prerender_history_(new PrerenderHistory(kHistoryLength)), |
| 249 histograms_(new PrerenderHistograms()), | 248 histograms_(new PrerenderHistograms()), |
| 250 profile_network_bytes_(0), | 249 profile_network_bytes_(0), |
| 251 last_recorded_profile_network_bytes_(0), | 250 last_recorded_profile_network_bytes_(0), |
| 252 cookie_store_loaded_(false) { | 251 cookie_store_loaded_(false) { |
| (...skipping 1600 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1853 return; | 1852 return; |
| 1854 int64 recent_profile_bytes = | 1853 int64 recent_profile_bytes = |
| 1855 profile_network_bytes_ - last_recorded_profile_network_bytes_; | 1854 profile_network_bytes_ - last_recorded_profile_network_bytes_; |
| 1856 last_recorded_profile_network_bytes_ = profile_network_bytes_; | 1855 last_recorded_profile_network_bytes_ = profile_network_bytes_; |
| 1857 DCHECK_GE(recent_profile_bytes, 0); | 1856 DCHECK_GE(recent_profile_bytes, 0); |
| 1858 histograms_->RecordNetworkBytes( | 1857 histograms_->RecordNetworkBytes( |
| 1859 origin, used, prerender_bytes, recent_profile_bytes); | 1858 origin, used, prerender_bytes, recent_profile_bytes); |
| 1860 } | 1859 } |
| 1861 | 1860 |
| 1862 bool PrerenderManager::IsEnabled() const { | 1861 bool PrerenderManager::IsEnabled() const { |
| 1863 DCHECK(CalledOnValidThread()); | 1862 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
|
gavinp
2014/08/28 13:34:11
I think this change doesn't belong here.
I do thi
Bence
2014/08/28 14:11:55
You are right. It is stated in prerender_manager.
| |
| 1864 | 1863 |
| 1865 // TODO(bnc): remove conditional as per crbug.com/334602. | |
| 1866 if (profile_ && profile_->GetPrefs() && | |
| 1867 profile_->GetPrefs()->GetInteger(prefs::kNetworkPredictionOptions) != | |
| 1868 chrome_browser_net::NETWORK_PREDICTION_UNSET) { | |
| 1869 return chrome_browser_net::CanPrefetchAndPrerenderUI(profile_->GetPrefs()); | |
| 1870 } | |
| 1871 // TODO(bnc): remove rest of method as per crbug.com/334602. | |
| 1872 if (!enabled_) | 1864 if (!enabled_) |
| 1873 return false; | 1865 return false; |
| 1874 for (std::list<const PrerenderCondition*>::const_iterator it = | 1866 return chrome_browser_net::CanPrefetchAndPrerenderUI(profile_->GetPrefs()); |
| 1875 prerender_conditions_.begin(); | |
| 1876 it != prerender_conditions_.end(); | |
| 1877 ++it) { | |
| 1878 const PrerenderCondition* condition = *it; | |
| 1879 if (!condition->CanPrerender()) | |
| 1880 return false; | |
| 1881 } | |
| 1882 return true; | |
| 1883 } | 1867 } |
| 1884 | 1868 |
| 1885 void PrerenderManager::AddProfileNetworkBytesIfEnabled(int64 bytes) { | 1869 void PrerenderManager::AddProfileNetworkBytesIfEnabled(int64 bytes) { |
| 1886 DCHECK_GE(bytes, 0); | 1870 DCHECK_GE(bytes, 0); |
| 1887 if (IsEnabled() && ActuallyPrerendering()) | 1871 if (IsEnabled() && ActuallyPrerendering()) |
| 1888 profile_network_bytes_ += bytes; | 1872 profile_network_bytes_ += bytes; |
| 1889 } | 1873 } |
| 1890 | 1874 |
| 1891 void PrerenderManager::OnCookieStoreLoaded() { | 1875 void PrerenderManager::OnCookieStoreLoaded() { |
| 1892 cookie_store_loaded_ = true; | 1876 cookie_store_loaded_ = true; |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 1918 content::RenderProcessHost* host) { | 1902 content::RenderProcessHost* host) { |
| 1919 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 1903 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 1920 prerender_process_hosts_.erase(host); | 1904 prerender_process_hosts_.erase(host); |
| 1921 BrowserThread::PostTask( | 1905 BrowserThread::PostTask( |
| 1922 BrowserThread::IO, FROM_HERE, | 1906 BrowserThread::IO, FROM_HERE, |
| 1923 base::Bind(&PrerenderTracker::RemovePrerenderCookieStoreOnIOThread, | 1907 base::Bind(&PrerenderTracker::RemovePrerenderCookieStoreOnIOThread, |
| 1924 base::Unretained(prerender_tracker()), host->GetID(), false)); | 1908 base::Unretained(prerender_tracker()), host->GetID(), false)); |
| 1925 } | 1909 } |
| 1926 | 1910 |
| 1927 } // namespace prerender | 1911 } // namespace prerender |
| OLD | NEW |