blob: 3500dfc231a6a68f31ebd43a068f5c856f842373 [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_PUBLIC_REFERRER_UTIL_H_
#define IOS_WEB_PUBLIC_REFERRER_UTIL_H_
#include <string>
#include "ios/web/public/referrer.h"
#include "net/url_request/url_request.h"
class GURL;
namespace web {
// Returns a sanitized version of |referrer| for use in a Referer header.
GURL ReferrerForHeader(const GURL& referrer);
// 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.
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
#endif // IOS_WEB_PUBLIC_REFERRER_UTIL_H_