summaryrefslogtreecommitdiffstats
path: root/content/browser/loader/resource_request_info_impl.cc
diff options
context:
space:
mode:
authordavidben@chromium.org <davidben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-01 20:28:30 +0000
committerdavidben@chromium.org <davidben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-01 20:28:30 +0000
commit716db0f70a724707946e625fa8d450d42a0deaf7 (patch)
treefb306955f1bfc570b33fb8506e7b835746e7d915 /content/browser/loader/resource_request_info_impl.cc
parent01dcabad758a58d7eb590690a7da180c0cfcac86 (diff)
downloadchromium_src-716db0f70a724707946e625fa8d450d42a0deaf7.zip
chromium_src-716db0f70a724707946e625fa8d450d42a0deaf7.tar.gz
chromium_src-716db0f70a724707946e625fa8d450d42a0deaf7.tar.bz2
Add header to defer redirects until prerenders become visible.
This adds a Follow-Only-When-Prerender-Shown header which, when attached to an HTTP redirect, defers the redirect until the page is visible. In some situations, namely if attached to a main page load or a synchronous request, the prerender is aborted instead. (In the former case, the navigation entry is uncommitted, so the prerender is useless. In the latter, we indefinitely hang up the renderer process, preventing reuse in other tabs.) BUG=292879 TEST=PrerenderBrowserTest.PrerenderDeferredImage, PrerenderBrowserTest.PrerenderDeferredImageAfterRedirect, PrerenderBrowserTest.PrerenderDeferredMainFrame, PrerenderBrowserTest.PrerenderDeferredMainFrameAfterRedirect, PrerenderBrowserTest.PrerenderDeferredSynchronousXHR, PrerenderTrackerTest.PrerenderThrottledRedirectResume, PrerenderTrackerTest.PrerenderThrottledRedirectCancel, PrerenderTrackerTest.PrerenderThrottledRedirectMainFrame, PrerenderTrackerTest.PrerenderThrottledRedirectSyncXHR Review URL: https://codereview.chromium.org/24195015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226290 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/loader/resource_request_info_impl.cc')
-rw-r--r--content/browser/loader/resource_request_info_impl.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/content/browser/loader/resource_request_info_impl.cc b/content/browser/loader/resource_request_info_impl.cc
index 04d4f2a..5af13db 100644
--- a/content/browser/loader/resource_request_info_impl.cc
+++ b/content/browser/loader/resource_request_info_impl.cc
@@ -28,7 +28,8 @@ void ResourceRequestInfo::AllocateForTesting(
ResourceType::Type resource_type,
ResourceContext* context,
int render_process_id,
- int render_view_id) {
+ int render_view_id,
+ bool is_async) {
ResourceRequestInfoImpl* info =
new ResourceRequestInfoImpl(
PROCESS_TYPE_RENDERER, // process_type
@@ -49,7 +50,7 @@ void ResourceRequestInfo::AllocateForTesting(
WebKit::WebReferrerPolicyDefault, // referrer_policy
context, // context
base::WeakPtr<ResourceMessageFilter>(), // filter
- false); // is_async
+ is_async); // is_async
info->AssociateWithRequest(request);
}