diff options
-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()); |