Index: chrome/browser/prerender/prerender_resource_throttle.cc |
=================================================================== |
--- chrome/browser/prerender/prerender_resource_throttle.cc (revision 245386) |
+++ chrome/browser/prerender/prerender_resource_throttle.cc (working copy) |
@@ -6,7 +6,6 @@ |
#include "chrome/browser/prerender/prerender_final_status.h" |
#include "chrome/browser/prerender/prerender_manager.h" |
-#include "chrome/browser/prerender/prerender_tracker.h" |
#include "chrome/browser/prerender/prerender_util.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/render_frame_host.h" |
@@ -29,24 +28,13 @@ |
g_prerender_contents_for_testing = contents; |
} |
-PrerenderResourceThrottle::PrerenderResourceThrottle( |
- net::URLRequest* request, |
- PrerenderTracker* tracker) |
- : request_(request), |
- tracker_(tracker) { |
+PrerenderResourceThrottle::PrerenderResourceThrottle(net::URLRequest* request) |
+ : request_(request) { |
} |
void PrerenderResourceThrottle::WillStartRequest(bool* defer) { |
const content::ResourceRequestInfo* info = |
content::ResourceRequestInfo::ForRequest(request_); |
- int child_id = info->GetChildID(); |
- int route_id = info->GetRouteID(); |
- |
- // If the prerender was used since the throttle was added, leave it |
- // alone. |
- if (!tracker_->IsPrerenderingOnIOThread(child_id, route_id)) |
- return; |
- |
*defer = true; |
content::BrowserThread::PostTask( |
content::BrowserThread::UI, |
@@ -60,14 +48,6 @@ |
bool* defer) { |
const content::ResourceRequestInfo* info = |
content::ResourceRequestInfo::ForRequest(request_); |
- int child_id = info->GetChildID(); |
- int route_id = info->GetRouteID(); |
- |
- // If the prerender was used since the throttle was added, leave it |
- // alone. |
- if (!tracker_->IsPrerenderingOnIOThread(child_id, route_id)) |
- return; |
- |
*defer = true; |
std::string header; |
request_->GetResponseHeaderByName(kFollowOnlyWhenPrerenderShown, &header); |
@@ -148,16 +128,8 @@ |
prerender_contents->Destroy(FINAL_STATUS_BAD_DEFERRED_REDIRECT); |
cancel = true; |
} else { |
- // Defer the redirect until the prerender is used or |
- // canceled. It is possible for the UI thread to used the |
- // prerender at the same time. But then |tracker_| will resume |
- // the request soon in |
- // PrerenderTracker::RemovePrerenderOnIOThread. |
- content::BrowserThread::PostTask( |
- content::BrowserThread::IO, |
- FROM_HERE, |
- base::Bind(&PrerenderResourceThrottle::AddResourceThrottle, |
- throttle)); |
+ // Defer the redirect until the prerender is used or canceled. |
+ prerender_contents->AddResourceThrottle(throttle); |
davidben
2014/01/20 20:51:57
This is fine (the assumption the code is making is
jam
2014/01/21 00:30:08
yep precisely, I was worried about this case as we
|
return; |
} |
} |
@@ -181,12 +153,4 @@ |
return PrerenderContents::FromWebContents(web_contents); |
} |
-void PrerenderResourceThrottle::AddResourceThrottle() { |
- const content::ResourceRequestInfo* info = |
- content::ResourceRequestInfo::ForRequest(request_); |
- int child_id = info->GetChildID(); |
- int route_id = info->GetRouteID(); |
- tracker_->AddResourceThrottleOnIOThread(child_id, route_id, AsWeakPtr()); |
-} |
- |
} // namespace prerender |