blob: edb698b3328f9c3ecb21e915a5c983f976eb081c [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.
#ifndef IOS_WEB_COMMON_REFERRER_UTIL_H_
#define IOS_WEB_COMMON_REFERRER_UTIL_H_
#include <string>
#include "ios/web/public/navigation/referrer.h"
#include "net/url_request/referrer_policy.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::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
#endif // IOS_WEB_COMMON_REFERRER_UTIL_H_