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

Unified Diff: chrome/browser/prerender/prerender_resource_throttle.cc

Issue 2566163002: [PlzNavigate] Add load flags for prefetch navigations (Closed)
Patch Set: Review comments Created 4 years 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698