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 1035 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1046 } | 1046 } |
1047 | 1047 |
1048 PrerenderContents* prerender_contents = CreatePrerenderContents( | 1048 PrerenderContents* prerender_contents = CreatePrerenderContents( |
1049 url, referrer, origin, experiment); | 1049 url, referrer, origin, experiment); |
1050 DCHECK(prerender_contents); | 1050 DCHECK(prerender_contents); |
1051 active_prerenders_.push_back( | 1051 active_prerenders_.push_back( |
1052 new PrerenderData(this, prerender_contents, | 1052 new PrerenderData(this, prerender_contents, |
1053 GetExpiryTimeForNewPrerender())); | 1053 GetExpiryTimeForNewPrerender())); |
1054 if (!prerender_contents->Init()) | 1054 if (!prerender_contents->Init()) |
1055 return NULL; | 1055 return NULL; |
| 1056 prerender_tracker_->AddPrerenderContents(prerender_contents); |
1056 | 1057 |
1057 histograms_->RecordPrerenderStarted(origin); | 1058 histograms_->RecordPrerenderStarted(origin); |
1058 DCHECK(!prerender_contents->prerendering_has_started()); | 1059 DCHECK(!prerender_contents->prerendering_has_started()); |
1059 | 1060 |
1060 PrerenderHandle* prerender_handle = | 1061 PrerenderHandle* prerender_handle = |
1061 new PrerenderHandle(active_prerenders_.back()); | 1062 new PrerenderHandle(active_prerenders_.back()); |
1062 SortActivePrerenders(); | 1063 SortActivePrerenders(); |
1063 | 1064 |
1064 last_prerender_start_time_ = GetCurrentTimeTicks(); | 1065 last_prerender_start_time_ = GetCurrentTimeTicks(); |
1065 | 1066 |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1161 return base::TimeTicks::Now(); | 1162 return base::TimeTicks::Now(); |
1162 } | 1163 } |
1163 | 1164 |
1164 PrerenderContents* PrerenderManager::CreatePrerenderContents( | 1165 PrerenderContents* PrerenderManager::CreatePrerenderContents( |
1165 const GURL& url, | 1166 const GURL& url, |
1166 const content::Referrer& referrer, | 1167 const content::Referrer& referrer, |
1167 Origin origin, | 1168 Origin origin, |
1168 uint8 experiment_id) { | 1169 uint8 experiment_id) { |
1169 DCHECK(CalledOnValidThread()); | 1170 DCHECK(CalledOnValidThread()); |
1170 return prerender_contents_factory_->CreatePrerenderContents( | 1171 return prerender_contents_factory_->CreatePrerenderContents( |
1171 this, prerender_tracker_, profile_, url, referrer, origin, experiment_id); | 1172 this, profile_, url, referrer, origin, experiment_id); |
1172 } | 1173 } |
1173 | 1174 |
1174 void PrerenderManager::SortActivePrerenders() { | 1175 void PrerenderManager::SortActivePrerenders() { |
1175 std::sort(active_prerenders_.begin(), active_prerenders_.end(), | 1176 std::sort(active_prerenders_.begin(), active_prerenders_.end(), |
1176 PrerenderData::OrderByExpiryTime()); | 1177 PrerenderData::OrderByExpiryTime()); |
1177 } | 1178 } |
1178 | 1179 |
1179 PrerenderManager::PrerenderData* PrerenderManager::FindPrerenderData( | 1180 PrerenderManager::PrerenderData* PrerenderManager::FindPrerenderData( |
1180 const GURL& url, | 1181 const GURL& url, |
1181 const SessionStorageNamespace* session_storage_namespace) { | 1182 const SessionStorageNamespace* session_storage_namespace) { |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1342 if (!render_process_host || !render_process_host->GetBrowserContext()) | 1343 if (!render_process_host || !render_process_host->GetBrowserContext()) |
1343 return NULL; | 1344 return NULL; |
1344 Profile* profile = Profile::FromBrowserContext( | 1345 Profile* profile = Profile::FromBrowserContext( |
1345 render_process_host->GetBrowserContext()); | 1346 render_process_host->GetBrowserContext()); |
1346 if (!profile) | 1347 if (!profile) |
1347 return NULL; | 1348 return NULL; |
1348 return PrerenderManagerFactory::GetInstance()->GetForProfile(profile); | 1349 return PrerenderManagerFactory::GetInstance()->GetForProfile(profile); |
1349 } | 1350 } |
1350 | 1351 |
1351 } // namespace prerender | 1352 } // namespace prerender |
OLD | NEW |