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

Side by Side Diff: net/url_request/url_request.h

Issue 2100583002: Apply Referrer-Policy header when following redirects (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: jochen suggestion Created 4 years, 5 months 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 unified diff | Download patch
« no previous file with comments | « net/url_request/redirect_info.cc ('k') | net/url_request/url_request.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef NET_URL_REQUEST_URL_REQUEST_H_ 5 #ifndef NET_URL_REQUEST_URL_REQUEST_H_
6 #define NET_URL_REQUEST_URL_REQUEST_H_ 6 #define NET_URL_REQUEST_URL_REQUEST_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 public base::SupportsUserData { 74 public base::SupportsUserData {
75 public: 75 public:
76 // Callback function implemented by protocol handlers to create new jobs. 76 // Callback function implemented by protocol handlers to create new jobs.
77 // The factory may return NULL to indicate an error, which will cause other 77 // The factory may return NULL to indicate an error, which will cause other
78 // factories to be queried. If no factory handles the request, then the 78 // factories to be queried. If no factory handles the request, then the
79 // default job will be used. 79 // default job will be used.
80 typedef URLRequestJob* (ProtocolFactory)(URLRequest* request, 80 typedef URLRequestJob* (ProtocolFactory)(URLRequest* request,
81 NetworkDelegate* network_delegate, 81 NetworkDelegate* network_delegate,
82 const std::string& scheme); 82 const std::string& scheme);
83 83
84 // Referrer policies (see set_referrer_policy): During server redirects, the 84 // A ReferrerPolicy for the request can be set with
85 // referrer header might be cleared, if the protocol changes from HTTPS to 85 // set_referrer_policy() and controls the contents of the Referer
86 // HTTP. This is the default behavior of URLRequest, corresponding to 86 // header when URLRequest follows server redirects.
87 // CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE. Alternatively, the
88 // referrer policy can be set to strip the referrer down to an origin upon
89 // cross-origin navigation (ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN), or
90 // never change the referrer header (NEVER_CLEAR_REFERRER). Embedders will
91 // want to use these options when implementing referrer policy support
92 // (https://w3c.github.io/webappsec/specs/referrer-policy/).
93 //
94 // REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN is a slight variant
95 // on CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE: If the request
96 // downgrades from HTTPS to HTTP, the referrer will be cleared. If the request
97 // transitions cross-origin (but does not downgrade), the referrer's
98 // granularity will be reduced (currently stripped down to an origin rather
99 // than a full URL). Same-origin requests will send the full referrer.
100 enum ReferrerPolicy { 87 enum ReferrerPolicy {
88 // Clear the referrer header if the protocol changes from HTTPS to
89 // HTTP. This is the default behavior of URLRequest.
101 CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE, 90 CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE,
91 // A slight variant on
92 // CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE: If the
93 // request downgrades from HTTPS to HTTP, the referrer will be
94 // cleared. If the request transitions cross-origin (but does not
95 // downgrade), the referrer's granularity will be reduced (currently
96 // stripped down to an origin rather than a full URL). Same-origin
97 // requests will send the full referrer.
102 REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN, 98 REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN,
99 // Strip the referrer down to an origin upon cross-origin navigation.
103 ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN, 100 ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN,
101 // Never change the referrer.
104 NEVER_CLEAR_REFERRER, 102 NEVER_CLEAR_REFERRER,
103 // Strip the referrer down to the origin regardless of the redirect
104 // location.
105 ORIGIN,
106 // Always clear the referrer regardless of the redirect location.
107 NO_REFERRER,
108 MAX_REFERRER_POLICY
105 }; 109 };
106 110
107 // First-party URL redirect policy: During server redirects, the first-party 111 // First-party URL redirect policy: During server redirects, the first-party
108 // URL for cookies normally doesn't change. However, if the request is a 112 // URL for cookies normally doesn't change. However, if the request is a
109 // top-level first-party request, the first-party URL should be updated to the 113 // top-level first-party request, the first-party URL should be updated to the
110 // URL on every redirect. 114 // URL on every redirect.
111 enum FirstPartyURLPolicy { 115 enum FirstPartyURLPolicy {
112 NEVER_CHANGE_FIRST_PARTY_URL, 116 NEVER_CHANGE_FIRST_PARTY_URL,
113 UPDATE_FIRST_PARTY_URL_ON_REDIRECT, 117 UPDATE_FIRST_PARTY_URL_ON_REDIRECT,
114 }; 118 };
(...skipping 741 matching lines...) Expand 10 before | Expand all | Expand 10 after
856 860
857 // The proxy server used for this request, if any. 861 // The proxy server used for this request, if any.
858 HostPortPair proxy_server_; 862 HostPortPair proxy_server_;
859 863
860 DISALLOW_COPY_AND_ASSIGN(URLRequest); 864 DISALLOW_COPY_AND_ASSIGN(URLRequest);
861 }; 865 };
862 866
863 } // namespace net 867 } // namespace net
864 868
865 #endif // NET_URL_REQUEST_URL_REQUEST_H_ 869 #endif // NET_URL_REQUEST_URL_REQUEST_H_
OLDNEW
« no previous file with comments | « net/url_request/redirect_info.cc ('k') | net/url_request/url_request.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698