// 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_
