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

Unified Diff: webkit/glue/weburlloader_impl.cc

Issue 8616006: Implement meta referrer (part 1/2) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix Created 9 years, 1 month 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
« no previous file with comments | « webkit/glue/webkit_glue.gypi ('k') | webkit/glue/weburlrequest_extradata_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/glue/weburlloader_impl.cc
diff --git a/webkit/glue/weburlloader_impl.cc b/webkit/glue/weburlloader_impl.cc
index 871f5a39986db5f0479823de0cc2c34514fed329..930651597ff9fd9ab44dc6be17295b7470332831 100644
--- a/webkit/glue/weburlloader_impl.cc
+++ b/webkit/glue/weburlloader_impl.cc
@@ -31,6 +31,7 @@
#include "webkit/glue/multipart_response_delegate.h"
#include "webkit/glue/resource_loader_bridge.h"
#include "webkit/glue/webkit_glue.h"
+#include "webkit/glue/weburlrequest_extradata_impl.h"
using base::Time;
using base::TimeDelta;
@@ -38,6 +39,7 @@ using WebKit::WebData;
using WebKit::WebHTTPBody;
using WebKit::WebHTTPHeaderVisitor;
using WebKit::WebHTTPLoadInfo;
+using WebKit::WebReferrerPolicy;
using WebKit::WebSecurityPolicy;
using WebKit::WebString;
using WebKit::WebURL;
@@ -292,6 +294,7 @@ class WebURLLoaderImpl::Context : public base::RefCounted<Context>,
WebURLLoaderImpl* loader_;
WebURLRequest request_;
WebURLLoaderClient* client_;
+ WebReferrerPolicy referrer_policy_;
scoped_ptr<ResourceLoaderBridge> bridge_;
scoped_ptr<FtpDirectoryListingResponseDelegate> ftp_listing_delegate_;
scoped_ptr<MultipartResponseDelegate> multipart_delegate_;
@@ -300,7 +303,8 @@ class WebURLLoaderImpl::Context : public base::RefCounted<Context>,
WebURLLoaderImpl::Context::Context(WebURLLoaderImpl* loader)
: loader_(loader),
- client_(NULL) {
+ client_(NULL),
+ referrer_policy_(WebKit::WebReferrerPolicyDefault) {
}
void WebURLLoaderImpl::Context::Cancel() {
@@ -414,6 +418,9 @@ void WebURLLoaderImpl::Context::Start(
request_info.extra_data = request.extraData();
bridge_.reset(ResourceLoaderBridge::Create(request_info));
+ referrer_policy_ = static_cast<WebURLRequestExtraDataImpl*>(
darin (slow to review) 2011/11/21 22:44:37 should you null check request.extraData() here? o
jochen (gone - plz use gerrit) 2011/11/22 10:38:28 I've added both the null check, and code to the te
+ request.extraData())->referrer_policy();
+
if (!request.httpBody().isNull()) {
// GET and HEAD requests shouldn't have http bodies.
DCHECK(method != "GET" && method != "HEAD");
@@ -488,8 +495,11 @@ bool WebURLLoaderImpl::Context::OnReceivedRedirect(
new_request.setDownloadToFile(request_.downloadToFile());
WebString referrer_string = WebString::fromUTF8("Referer");
- WebString referrer = request_.httpHeaderField(referrer_string);
- if (!WebSecurityPolicy::shouldHideReferrer(new_url, referrer))
+ WebString referrer = WebSecurityPolicy::generateReferrerHeader(
+ referrer_policy_,
+ new_url,
+ request_.httpHeaderField(referrer_string));
+ if (!referrer.isEmpty())
new_request.setHTTPHeaderField(referrer_string, referrer);
if (response.httpStatusCode() == 307)
« no previous file with comments | « webkit/glue/webkit_glue.gypi ('k') | webkit/glue/weburlrequest_extradata_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698