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

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

Issue 1143343005: chrome/browser: Remove use of MessageLoopProxy and deprecated MessageLoop APIs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased. Created 5 years, 6 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 <algorithm> 7 #include <algorithm>
8 #include <functional> 8 #include <functional>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/bind.h" 12 #include "base/bind.h"
13 #include "base/bind_helpers.h" 13 #include "base/bind_helpers.h"
14 #include "base/location.h"
14 #include "base/logging.h" 15 #include "base/logging.h"
15 #include "base/metrics/histogram.h" 16 #include "base/metrics/histogram.h"
17 #include "base/single_thread_task_runner.h"
18 #include "base/thread_task_runner_handle.h"
16 #include "base/time/time.h" 19 #include "base/time/time.h"
17 #include "base/timer/elapsed_timer.h" 20 #include "base/timer/elapsed_timer.h"
18 #include "base/values.h" 21 #include "base/values.h"
19 #include "chrome/browser/browser_process.h" 22 #include "chrome/browser/browser_process.h"
20 #include "chrome/browser/chrome_notification_types.h" 23 #include "chrome/browser/chrome_notification_types.h"
21 #include "chrome/browser/net/prediction_options.h" 24 #include "chrome/browser/net/prediction_options.h"
22 #include "chrome/browser/prerender/prerender_contents.h" 25 #include "chrome/browser/prerender/prerender_contents.h"
23 #include "chrome/browser/prerender/prerender_field_trial.h" 26 #include "chrome/browser/prerender/prerender_field_trial.h"
24 #include "chrome/browser/prerender/prerender_final_status.h" 27 #include "chrome/browser/prerender/prerender_final_status.h"
25 #include "chrome/browser/prerender/prerender_handle.h" 28 #include "chrome/browser/prerender/prerender_handle.h"
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 : public content::WebContentsDelegate, 118 : public content::WebContentsDelegate,
116 public base::SupportsWeakPtr< 119 public base::SupportsWeakPtr<
117 PrerenderManager::OnCloseWebContentsDeleter> { 120 PrerenderManager::OnCloseWebContentsDeleter> {
118 public: 121 public:
119 OnCloseWebContentsDeleter(PrerenderManager* manager, 122 OnCloseWebContentsDeleter(PrerenderManager* manager,
120 WebContents* tab) 123 WebContents* tab)
121 : manager_(manager), 124 : manager_(manager),
122 tab_(tab), 125 tab_(tab),
123 suppressed_dialog_(false) { 126 suppressed_dialog_(false) {
124 tab_->SetDelegate(this); 127 tab_->SetDelegate(this);
125 base::MessageLoop::current()->PostDelayedTask(FROM_HERE, 128 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
129 FROM_HERE,
126 base::Bind(&OnCloseWebContentsDeleter::ScheduleWebContentsForDeletion, 130 base::Bind(&OnCloseWebContentsDeleter::ScheduleWebContentsForDeletion,
127 AsWeakPtr(), true), 131 AsWeakPtr(), true),
128 base::TimeDelta::FromSeconds(kDeleteWithExtremePrejudiceSeconds)); 132 base::TimeDelta::FromSeconds(kDeleteWithExtremePrejudiceSeconds));
129 } 133 }
130 134
131 void CloseContents(WebContents* source) override { 135 void CloseContents(WebContents* source) override {
132 DCHECK_EQ(tab_, source); 136 DCHECK_EQ(tab_, source);
133 ScheduleWebContentsForDeletion(false); 137 ScheduleWebContentsForDeletion(false);
134 } 138 }
135 139
(...skipping 898 matching lines...) Expand 10 before | Expand all | Expand 10 after
1034 1038
1035 to_delete_prerenders_.clear(); 1039 to_delete_prerenders_.clear();
1036 1040
1037 // Measure how long a the various cleanup tasks took. http://crbug.com/305419. 1041 // Measure how long a the various cleanup tasks took. http://crbug.com/305419.
1038 UMA_HISTOGRAM_TIMES("Prerender.PeriodicCleanupDeleteContentsTime", 1042 UMA_HISTOGRAM_TIMES("Prerender.PeriodicCleanupDeleteContentsTime",
1039 cleanup_timer.Elapsed()); 1043 cleanup_timer.Elapsed());
1040 } 1044 }
1041 1045
1042 void PrerenderManager::PostCleanupTask() { 1046 void PrerenderManager::PostCleanupTask() {
1043 DCHECK(CalledOnValidThread()); 1047 DCHECK(CalledOnValidThread());
1044 base::MessageLoop::current()->PostTask( 1048 base::ThreadTaskRunnerHandle::Get()->PostTask(
1045 FROM_HERE, 1049 FROM_HERE, base::Bind(&PrerenderManager::PeriodicCleanup, AsWeakPtr()));
1046 base::Bind(&PrerenderManager::PeriodicCleanup, AsWeakPtr()));
1047 } 1050 }
1048 1051
1049 base::TimeTicks PrerenderManager::GetExpiryTimeForNewPrerender( 1052 base::TimeTicks PrerenderManager::GetExpiryTimeForNewPrerender(
1050 Origin origin) const { 1053 Origin origin) const {
1051 return GetCurrentTimeTicks() + config_.time_to_live; 1054 return GetCurrentTimeTicks() + config_.time_to_live;
1052 } 1055 }
1053 1056
1054 base::TimeTicks PrerenderManager::GetExpiryTimeForNavigatedAwayPrerender() 1057 base::TimeTicks PrerenderManager::GetExpiryTimeForNavigatedAwayPrerender()
1055 const { 1058 const {
1056 return GetCurrentTimeTicks() + config_.abandon_time_to_live; 1059 return GetCurrentTimeTicks() + config_.abandon_time_to_live;
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
1282 } 1285 }
1283 1286
1284 void PrerenderManager::RenderProcessHostDestroyed( 1287 void PrerenderManager::RenderProcessHostDestroyed(
1285 content::RenderProcessHost* host) { 1288 content::RenderProcessHost* host) {
1286 DCHECK_CURRENTLY_ON(BrowserThread::UI); 1289 DCHECK_CURRENTLY_ON(BrowserThread::UI);
1287 size_t erased = prerender_process_hosts_.erase(host); 1290 size_t erased = prerender_process_hosts_.erase(host);
1288 DCHECK_EQ(1u, erased); 1291 DCHECK_EQ(1u, erased);
1289 } 1292 }
1290 1293
1291 } // namespace prerender 1294 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698