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