Index: ios/net/cookies/cookie_store_ios.h |
diff --git a/ios/net/cookies/cookie_store_ios.h b/ios/net/cookies/cookie_store_ios.h |
index ad56bb511a34a27687e19274414726082a23189a..2a4bfbe58600ee9568ca279060ffaeb5d50cc643 100644 |
--- a/ios/net/cookies/cookie_store_ios.h |
+++ b/ios/net/cookies/cookie_store_ios.h |
@@ -22,9 +22,11 @@ |
#if defined(__OBJC__) |
@class NSHTTPCookie; |
+@class NSHTTPCookieStorage; |
@class NSArray; |
#else |
class NSHTTPCookie; |
+class NSHTTPCookieStorage; |
class NSArray; |
#endif |
@@ -64,20 +66,26 @@ class CookieNotificationObserver { |
class CookieStoreIOS : public net::CookieStore, |
public CookieNotificationObserver { |
public: |
+ // Creates a CookieStoreIOS with a default value of |
+ // |NSHTTPCookieStorage sharedCookieStorage| as the system's cookie store. |
explicit CookieStoreIOS( |
net::CookieMonster::PersistentCookieStore* persistent_store); |
+ explicit CookieStoreIOS( |
+ net::CookieMonster::PersistentCookieStore* persistent_store, |
+ NSHTTPCookieStorage* system_store); |
+ |
enum CookiePolicy { ALLOW, BLOCK }; |
// Must be called on the thread where CookieStoreIOS instances live. |
static void SetCookiePolicy(CookiePolicy setting); |
// Create an instance of CookieStoreIOS that is generated from the cookies |
- // stored in the system NSHTTPCookieStorage. The caller is responsible for |
- // deleting the cookie store. |
- // Apple does not persist the cookies' creation dates in the system store, |
+ // stored in |cookie_storage|. The CookieStoreIOS uses the |cookie_storage| |
+ // as its default backend. |
+ // Apple does not persist the cookies' creation dates in NSHTTPCookieStorage, |
// so callers should not expect these values to be populated. |
- static CookieStoreIOS* CreateCookieStoreFromNSHTTPCookieStorage(); |
+ static CookieStoreIOS* CreateCookieStore(NSHTTPCookieStorage* cookie_storage); |
// As there is only one system store, only one CookieStoreIOS at a time may |
// be synchronized with it. |
@@ -175,6 +183,7 @@ class CookieStoreIOS : public net::CookieStore, |
const DeleteCallback& callback); |
scoped_refptr<net::CookieMonster> cookie_monster_; |
+ NSHTTPCookieStorage* system_store_; |
scoped_ptr<CookieCreationTimeManager> creation_time_manager_; |
bool metrics_enabled_; |
base::TimeDelta flush_delay_; |