1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef NET_COOKIES_COOKIE_UTIL_H_ 6 #define NET_COOKIES_COOKIE_UTIL_H_ 7 8 #include <string> 9 10 #include "base/time/time.h" 11 #include "net/base/net_export.h" 12 13 class GURL; 14 15 namespace net { 16 namespace cookie_util { 17 18 // Returns the effective TLD+1 for a given host. This only makes sense for http 19 // and https schemes. For other schemes, the host will be returned unchanged 20 // (minus any leading period). 21 NET_EXPORT std::string GetEffectiveDomain(const std::string& scheme, 22 const std::string& host); 23 24 // Determine the actual cookie domain based on the domain string passed 25 // (if any) and the URL from which the cookie came. 26 // On success returns true, and sets cookie_domain to either a 27 // -host cookie domain (ex: "google.com") 28 // -domain cookie domain (ex: ".google.com") 29 NET_EXPORT bool GetCookieDomainWithString(const GURL& url, 30 const std::string& domain_string, 31 std::string* result); 32 33 // Returns true if a domain string represents a host-only cookie, 34 // i.e. it doesn't begin with a leading '.' character. 35 NET_EXPORT bool DomainIsHostOnly(const std::string& domain_string); 36 37 // Parses the string with the cookie time (very forgivingly). 38 NET_EXPORT base::Time ParseCookieTime(const std::string& time_string); 39 40 // Convenience for converting a cookie origin (domain and https pair) to a URL. 41 NET_EXPORT GURL CookieOriginToURL(const std::string& domain, bool is_https); 42 43 } // namspace cookie_util 44 } // namespace net 45 46 #endif // NET_COOKIES_COOKIE_UTIL_H_ 47