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