|  | // 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 NET_COOKIES_COOKIE_CONSTANTS_H_ | 
|  | #define NET_COOKIES_COOKIE_CONSTANTS_H_ | 
|  |  | 
|  | #include <string> | 
|  |  | 
|  | #include "net/base/net_export.h" | 
|  |  | 
|  | namespace net { | 
|  |  | 
|  | enum CookiePriority { | 
|  | COOKIE_PRIORITY_LOW     = 0, | 
|  | COOKIE_PRIORITY_MEDIUM  = 1, | 
|  | COOKIE_PRIORITY_HIGH    = 2, | 
|  | COOKIE_PRIORITY_DEFAULT = COOKIE_PRIORITY_MEDIUM | 
|  | }; | 
|  |  | 
|  | // See https://tools.ietf.org/html/draft-ietf-httpbis-cookie-same-site-00 | 
|  | // and https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis for | 
|  | // information about same site cookie restrictions. | 
|  | enum class CookieSameSite { | 
|  | NO_RESTRICTION = 0, | 
|  | LAX_MODE = 1, | 
|  | STRICT_MODE = 2, | 
|  | DEFAULT_MODE = NO_RESTRICTION | 
|  | }; | 
|  |  | 
|  | // Returns the Set-Cookie header priority token corresponding to |priority|. | 
|  | // | 
|  | // TODO(mkwst): Remove this once its callsites are refactored. | 
|  | NET_EXPORT std::string CookiePriorityToString(CookiePriority priority); | 
|  |  | 
|  | // Converts the Set-Cookie header priority token |priority| to a CookiePriority. | 
|  | // Defaults to COOKIE_PRIORITY_DEFAULT for empty or unrecognized strings. | 
|  | NET_EXPORT CookiePriority StringToCookiePriority(const std::string& priority); | 
|  |  | 
|  | // Returns a string corresponding to the value of the |same_site| token. | 
|  | // Intended only for debugging/logging. | 
|  | NET_EXPORT std::string CookieSameSiteToString(CookieSameSite same_site); | 
|  |  | 
|  | // Converts the Set-Cookie header SameSite token |same_site| to a | 
|  | // CookieSameSite. Defaults to CookieSameSite::DEFAULT_MODE for empty or | 
|  | // unrecognized strings. | 
|  | NET_EXPORT CookieSameSite StringToCookieSameSite(const std::string& same_site); | 
|  |  | 
|  | }  // namespace net | 
|  |  | 
|  | #endif  // NET_COOKIES_COOKIE_CONSTANTS_H_ |