diff options
author | japhet@chromium.org <japhet@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-30 16:45:35 +0000 |
---|---|---|
committer | japhet@chromium.org <japhet@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-30 16:45:35 +0000 |
commit | 0dc954a798b02e7194217b2c9193f93cedf50348 (patch) | |
tree | be4931355f7e54da351954fcfa35219fdc6396e5 /webkit/glue | |
parent | 79f066fe8717dfd6ba7a3453a18e6f4128faa9e4 (diff) | |
download | chromium_src-0dc954a798b02e7194217b2c9193f93cedf50348.zip chromium_src-0dc954a798b02e7194217b2c9193f93cedf50348.tar.gz chromium_src-0dc954a798b02e7194217b2c9193f93cedf50348.tar.bz2 |
If we receive a redirect response, we should copy the http referer field from the old request.
BUG=7357
TEST=none
Review URL: http://codereview.chromium.org/470010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35379 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue')
-rw-r--r-- | webkit/glue/weburlloader_impl.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/webkit/glue/weburlloader_impl.cc b/webkit/glue/weburlloader_impl.cc index df2a601..55f022c 100644 --- a/webkit/glue/weburlloader_impl.cc +++ b/webkit/glue/weburlloader_impl.cc @@ -17,6 +17,7 @@ #include "net/base/net_util.h" #include "net/http/http_response_headers.h" #include "third_party/WebKit/WebKit/chromium/public/WebHTTPHeaderVisitor.h" +#include "third_party/WebKit/WebKit/chromium/public/WebSecurityPolicy.h" #include "third_party/WebKit/WebKit/chromium/public/WebURL.h" #include "third_party/WebKit/WebKit/chromium/public/WebURLError.h" #include "third_party/WebKit/WebKit/chromium/public/WebURLLoaderClient.h" @@ -32,7 +33,9 @@ using base::TimeDelta; using WebKit::WebData; using WebKit::WebHTTPBody; using WebKit::WebHTTPHeaderVisitor; +using WebKit::WebSecurityPolicy; using WebKit::WebString; +using WebKit::WebURL; using WebKit::WebURLError; using WebKit::WebURLLoader; using WebKit::WebURLLoaderClient; @@ -413,6 +416,12 @@ bool WebURLLoaderImpl::Context::OnReceivedRedirect( // request that resulted from the redirect. WebURLRequest new_request(new_url); new_request.setFirstPartyForCookies(request_.firstPartyForCookies()); + + WebString referrer_string = WebString::fromUTF8("Referer"); + WebString referrer = request_.httpHeaderField(referrer_string); + if (!WebSecurityPolicy::shouldHideReferrer(new_url, referrer)) + new_request.setHTTPHeaderField(referrer_string, referrer); + if (response.httpStatusCode() == 307) new_request.setHTTPMethod(request_.httpMethod()); |