| 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 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 class PrerenderManager::OnCloseWebContentsDeleter | 155 class PrerenderManager::OnCloseWebContentsDeleter |
| 156 : public content::WebContentsDelegate, | 156 : public content::WebContentsDelegate, |
| 157 public base::SupportsWeakPtr< | 157 public base::SupportsWeakPtr< |
| 158 PrerenderManager::OnCloseWebContentsDeleter> { | 158 PrerenderManager::OnCloseWebContentsDeleter> { |
| 159 public: | 159 public: |
| 160 OnCloseWebContentsDeleter(PrerenderManager* manager, | 160 OnCloseWebContentsDeleter(PrerenderManager* manager, |
| 161 WebContents* tab) | 161 WebContents* tab) |
| 162 : manager_(manager), | 162 : manager_(manager), |
| 163 tab_(tab) { | 163 tab_(tab) { |
| 164 tab_->SetDelegate(this); | 164 tab_->SetDelegate(this); |
| 165 MessageLoop::current()->PostDelayedTask(FROM_HERE, | 165 base::MessageLoop::current()->PostDelayedTask(FROM_HERE, |
| 166 base::Bind(&OnCloseWebContentsDeleter::ScheduleWebContentsForDeletion, | 166 base::Bind(&OnCloseWebContentsDeleter::ScheduleWebContentsForDeletion, |
| 167 AsWeakPtr(), true), | 167 AsWeakPtr(), true), |
| 168 base::TimeDelta::FromSeconds(kDeleteWithExtremePrejudiceSeconds)); | 168 base::TimeDelta::FromSeconds(kDeleteWithExtremePrejudiceSeconds)); |
| 169 } | 169 } |
| 170 | 170 |
| 171 virtual void CloseContents(WebContents* source) OVERRIDE { | 171 virtual void CloseContents(WebContents* source) OVERRIDE { |
| 172 DCHECK_EQ(tab_, source); | 172 DCHECK_EQ(tab_, source); |
| 173 ScheduleWebContentsForDeletion(false); | 173 ScheduleWebContentsForDeletion(false); |
| 174 } | 174 } |
| 175 | 175 |
| (...skipping 1022 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1198 // And now check for prerenders using too much memory. | 1198 // And now check for prerenders using too much memory. |
| 1199 std::for_each(prerender_contents.begin(), prerender_contents.end(), | 1199 std::for_each(prerender_contents.begin(), prerender_contents.end(), |
| 1200 std::mem_fun( | 1200 std::mem_fun( |
| 1201 &PrerenderContents::DestroyWhenUsingTooManyResources)); | 1201 &PrerenderContents::DestroyWhenUsingTooManyResources)); |
| 1202 | 1202 |
| 1203 to_delete_prerenders_.clear(); | 1203 to_delete_prerenders_.clear(); |
| 1204 } | 1204 } |
| 1205 | 1205 |
| 1206 void PrerenderManager::PostCleanupTask() { | 1206 void PrerenderManager::PostCleanupTask() { |
| 1207 DCHECK(CalledOnValidThread()); | 1207 DCHECK(CalledOnValidThread()); |
| 1208 MessageLoop::current()->PostTask( | 1208 base::MessageLoop::current()->PostTask( |
| 1209 FROM_HERE, | 1209 FROM_HERE, |
| 1210 base::Bind(&PrerenderManager::PeriodicCleanup, AsWeakPtr())); | 1210 base::Bind(&PrerenderManager::PeriodicCleanup, AsWeakPtr())); |
| 1211 } | 1211 } |
| 1212 | 1212 |
| 1213 base::TimeTicks PrerenderManager::GetExpiryTimeForNewPrerender( | 1213 base::TimeTicks PrerenderManager::GetExpiryTimeForNewPrerender( |
| 1214 Origin origin) const { | 1214 Origin origin) const { |
| 1215 base::TimeDelta ttl = config_.time_to_live; | 1215 base::TimeDelta ttl = config_.time_to_live; |
| 1216 if (origin == ORIGIN_LOCAL_PREDICTOR) | 1216 if (origin == ORIGIN_LOCAL_PREDICTOR) |
| 1217 ttl = base::TimeDelta::FromSeconds(180); | 1217 ttl = base::TimeDelta::FromSeconds(180); |
| 1218 return GetCurrentTimeTicks() + ttl; | 1218 return GetCurrentTimeTicks() + ttl; |
| (...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1537 logged_in_state_->erase(domain_key); | 1537 logged_in_state_->erase(domain_key); |
| 1538 } | 1538 } |
| 1539 | 1539 |
| 1540 void PrerenderManager::LoggedInPredictorDataReceived( | 1540 void PrerenderManager::LoggedInPredictorDataReceived( |
| 1541 scoped_ptr<LoggedInStateMap> new_map) { | 1541 scoped_ptr<LoggedInStateMap> new_map) { |
| 1542 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 1542 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 1543 logged_in_state_.swap(new_map); | 1543 logged_in_state_.swap(new_map); |
| 1544 } | 1544 } |
| 1545 | 1545 |
| 1546 } // namespace prerender | 1546 } // namespace prerender |
| OLD | NEW |