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

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

Issue 10006041: Remove PrerenderResourceThrottle and related infrastructure. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 8 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 | Annotate | Revision Log
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_tracker.h" 5 #include "chrome/browser/prerender/prerender_tracker.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "chrome/browser/browser_process.h" 9 #include "chrome/browser/browser_process.h"
10 #include "chrome/browser/prerender/prerender_manager.h" 10 #include "chrome/browser/prerender/prerender_manager.h"
(...skipping 22 matching lines...) Expand all
33 RenderViewHost* render_view_host = 33 RenderViewHost* render_view_host =
34 RenderViewHost::FromID(child_id, route_id); 34 RenderViewHost::FromID(child_id, route_id);
35 if (!render_view_host) 35 if (!render_view_host)
36 return true; 36 return true;
37 PrerenderManager* prerender_manager = 37 PrerenderManager* prerender_manager =
38 FindPrerenderManagerUsingRenderProcessId(child_id); 38 FindPrerenderManagerUsingRenderProcessId(child_id);
39 return (prerender_manager && 39 return (prerender_manager &&
40 prerender_manager->IsOldRenderViewHost(render_view_host)); 40 prerender_manager->IsOldRenderViewHost(render_view_host));
41 } 41 }
42 42
43 void HandleDelayedRequestOnUIThread(
44 int child_id,
45 int route_id,
46 const PrerenderTracker::CheckURLCallback& callback) {
47 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
48 bool should_cancel = ShouldCancelRequest(child_id, route_id);
49 BrowserThread::PostTask(
50 BrowserThread::IO, FROM_HERE, base::Bind(callback, !should_cancel));
51 }
52
53 void DestroyPrerenderForRenderViewOnUI( 43 void DestroyPrerenderForRenderViewOnUI(
54 const base::WeakPtr<PrerenderManager>& prerender_manager_weak_ptr, 44 const base::WeakPtr<PrerenderManager>& prerender_manager_weak_ptr,
55 int render_process_id, 45 int render_process_id,
56 int render_view_id, 46 int render_view_id,
57 FinalStatus final_status) { 47 FinalStatus final_status) {
58 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 48 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
59 PrerenderManager* prerender_manager = prerender_manager_weak_ptr.get(); 49 PrerenderManager* prerender_manager = prerender_manager_weak_ptr.get();
60 if (!prerender_manager) 50 if (!prerender_manager)
61 return; 51 return;
62 52
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 int route_id, 152 int route_id,
163 FinalStatus final_status) { 153 FinalStatus final_status) {
164 DCHECK_NE(FINAL_STATUS_USED, final_status); 154 DCHECK_NE(FINAL_STATUS_USED, final_status);
165 DCHECK(final_status >= 0 && final_status < FINAL_STATUS_MAX); 155 DCHECK(final_status >= 0 && final_status < FINAL_STATUS_MAX);
166 156
167 if (!IsPrerenderingOnIOThread(child_id, route_id)) 157 if (!IsPrerenderingOnIOThread(child_id, route_id))
168 return false; 158 return false;
169 return TryCancel(child_id, route_id, final_status); 159 return TryCancel(child_id, route_id, final_status);
170 } 160 }
171 161
172 bool PrerenderTracker::PotentiallyDelayRequestOnIOThread(
173 const GURL& gurl,
174 int process_id,
175 int route_id,
176 const CheckURLCallback& callback) {
177 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
178 if (!url_counter_.MatchesURL(gurl))
179 return false;
180 BrowserThread::PostTask(
181 BrowserThread::UI,
182 FROM_HERE,
183 base::Bind(&HandleDelayedRequestOnUIThread, process_id, route_id,
184 callback));
185 return true;
186 }
187
188 void PrerenderTracker::AddPrerenderURLOnUIThread(const GURL& url) { 162 void PrerenderTracker::AddPrerenderURLOnUIThread(const GURL& url) {
189 BrowserThread::PostTask( 163 BrowserThread::PostTask(
190 BrowserThread::IO, FROM_HERE, base::Bind(&AddURL, url, &url_counter_)); 164 BrowserThread::IO, FROM_HERE, base::Bind(&AddURL, url, &url_counter_));
191 } 165 }
192 166
193 void PrerenderTracker::RemovePrerenderURLsOnUIThread( 167 void PrerenderTracker::RemovePrerenderURLsOnUIThread(
194 const std::vector<GURL>& urls) { 168 const std::vector<GURL>& urls) {
195 BrowserThread::PostTask( 169 BrowserThread::PostTask(
196 BrowserThread::IO, FROM_HERE, 170 BrowserThread::IO, FROM_HERE,
197 base::Bind(&RemoveURLs, urls, &url_counter_)); 171 base::Bind(&RemoveURLs, urls, &url_counter_));
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
324 GetDefault()->AddPrerenderOnIOThread(child_route_id_pair); 298 GetDefault()->AddPrerenderOnIOThread(child_route_id_pair);
325 } 299 }
326 300
327 // static 301 // static
328 void PrerenderTracker::RemovePrerenderOnIOThreadTask( 302 void PrerenderTracker::RemovePrerenderOnIOThreadTask(
329 const ChildRouteIdPair& child_route_id_pair) { 303 const ChildRouteIdPair& child_route_id_pair) {
330 GetDefault()->RemovePrerenderOnIOThread(child_route_id_pair); 304 GetDefault()->RemovePrerenderOnIOThread(child_route_id_pair);
331 } 305 }
332 306
333 } // namespace prerender 307 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698