51 lines
2.3 KiB
C++
51 lines
2.3 KiB
C++
// Copyright 2020 The Chromium Authors
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#ifndef NET_URL_REQUEST_REFERRER_POLICY_H_
|
|
#define NET_URL_REQUEST_REFERRER_POLICY_H_
|
|
|
|
namespace net {
|
|
|
|
// A ReferrerPolicy controls the contents of the Referer header when URLRequest
|
|
// following HTTP redirects. Note that setting a ReferrerPolicy on the request
|
|
// has no effect on the Referer header of the initial leg of the request; the
|
|
// caller is responsible for setting the initial Referer, and the ReferrerPolicy
|
|
// only controls what happens to the Referer while following redirects.
|
|
//
|
|
// NOTE: This enum is persisted to histograms. Do not change or reorder values.
|
|
// TODO(~M89): Once the Net.URLRequest.ReferrerPolicyForRequest metric is
|
|
// retired.
|
|
enum class ReferrerPolicy {
|
|
// Clear the referrer header if the header value is HTTPS but the request
|
|
// destination is HTTP. This is the default behavior of URLRequest.
|
|
CLEAR_ON_TRANSITION_FROM_SECURE_TO_INSECURE = 0,
|
|
// A slight variant on CLEAR_ON_TRANSITION_FROM_SECURE_TO_INSECURE:
|
|
// If the request destination is HTTP, an HTTPS referrer will be cleared. If
|
|
// the request's destination is cross-origin with the referrer (but does not
|
|
// downgrade), the referrer's granularity will be stripped down to an origin
|
|
// rather than a full URL. Same-origin requests will send the full referrer.
|
|
REDUCE_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN = 1,
|
|
// Strip the referrer down to an origin when the origin of the referrer is
|
|
// different from the destination's origin.
|
|
ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN = 2,
|
|
// Never change the referrer.
|
|
NEVER_CLEAR = 3,
|
|
// Strip the referrer down to the origin regardless of the redirect
|
|
// location.
|
|
ORIGIN = 4,
|
|
// Clear the referrer when the request's referrer is cross-origin with
|
|
// the request's destination.
|
|
CLEAR_ON_TRANSITION_CROSS_ORIGIN = 5,
|
|
// Strip the referrer down to the origin, but clear it entirely if the
|
|
// referrer value is HTTPS and the destination is HTTP.
|
|
ORIGIN_CLEAR_ON_TRANSITION_FROM_SECURE_TO_INSECURE = 6,
|
|
// Always clear the referrer regardless of the request destination.
|
|
NO_REFERRER = 7,
|
|
MAX = NO_REFERRER,
|
|
};
|
|
|
|
} // namespace net
|
|
|
|
#endif // NET_URL_REQUEST_REFERRER_POLICY_H_
|