Index: chrome/browser/prerender/prerender_resource_throttle.cc |
diff --git a/chrome/browser/prerender/prerender_resource_throttle.cc b/chrome/browser/prerender/prerender_resource_throttle.cc |
index 41600207b17e20aecfae2c8b0ba5f9fffd4cf391..df57aa36620930cec613afaab18205b7a9c4355b 100644 |
--- a/chrome/browser/prerender/prerender_resource_throttle.cc |
+++ b/chrome/browser/prerender/prerender_resource_throttle.cc |
@@ -13,6 +13,7 @@ |
#include "chrome/browser/prerender/prerender_util.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/web_contents.h" |
+#include "net/base/load_flags.h" |
#include "net/http/http_response_headers.h" |
#include "net/url_request/redirect_info.h" |
#include "net/url_request/url_request.h" |
@@ -83,6 +84,7 @@ void PrerenderResourceThrottle::OverridePrerenderContentsForTesting( |
PrerenderResourceThrottle::PrerenderResourceThrottle(net::URLRequest* request) |
: request_(request), |
+ load_flags_(net::LOAD_NORMAL), |
prerender_throttle_info_(new PrerenderThrottleInfo()) {} |
PrerenderResourceThrottle::~PrerenderResourceThrottle() {} |
@@ -139,6 +141,7 @@ const char* PrerenderResourceThrottle::GetNameForLogging() const { |
} |
void PrerenderResourceThrottle::ResumeHandler() { |
+ request_->SetLoadFlags(request_->load_flags() | load_flags_); |
Resume(); |
} |
@@ -158,6 +161,10 @@ void PrerenderResourceThrottle::WillStartRequestOnUI( |
prerender_throttle_info->Set(prerender_contents->prerender_mode(), |
prerender_contents->origin(), |
prerender_contents->prerender_manager()); |
+ BrowserThread::PostTask( |
clamy
2016/12/23 12:33:31
Rather than having two different PostTasks, why no
pasko
2016/12/23 13:28:51
I had the same question, but then saw that ResumeH
clamy
2016/12/23 14:21:10
Acknowledged.
|
+ BrowserThread::IO, FROM_HERE, |
+ base::Bind(&PrerenderResourceThrottle::SetPrerenderMode, throttle, |
+ prerender_contents->prerender_mode())); |
// Abort any prerenders that spawn requests that use unsupported HTTP |
// methods or schemes. |
@@ -271,4 +278,8 @@ PrerenderContents* PrerenderResourceThrottle::PrerenderContentsFromGetter( |
return PrerenderContents::FromWebContents(web_contents_getter.Run()); |
} |
+void PrerenderResourceThrottle::SetPrerenderMode(PrerenderMode mode) { |
+ load_flags_ = (mode == PREFETCH_ONLY) ? net::LOAD_PREFETCH : net::LOAD_NORMAL; |
+} |
+ |
} // namespace prerender |