blob: bcbdcbef293206a79e5b752fedd4b74359d213fd [file] [log] [blame]
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <string>
#include "ios/web/public/referrer.h"
#include "net/url_request/url_request.h"
class GURL;
namespace web {
// Returns the string that should be sent as the Referer header value for
// navigating to |destination| from the given referrer, taking the referrer
// policy into account. Returns an empty string if no Referer should be sent.
std::string ReferrerHeaderValueForNavigation(
const GURL& destination,
const web::Referrer& referrer);
// Returns the policy that should be used to process subsequent forwards, if
// any.
// TODO(stuartmorgan): Replace this with ReferrerForNavigation, since it should
// always be used with ReferrerHeaderValueForNavigation anyway.
net::URLRequest::ReferrerPolicy PolicyForNavigation(
const GURL& destination,
const web::Referrer& referrer);
// Returns the WebReferrerPolicy corresponding to the given policy string
// (e.g., 'always', 'never', 'origin', 'default'). The string is assumed to
// be lowercase already. Unrecognized values will be treated as Default.
ReferrerPolicy ReferrerPolicyFromString(const std::string& policy);
} // namespace web