| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef IOS_NET_COOKIES_COOKIE_STORE_IOS_H_ | 5 #ifndef IOS_NET_COOKIES_COOKIE_STORE_IOS_H_ |
| 6 #define IOS_NET_COOKIES_COOKIE_STORE_IOS_H_ | 6 #define IOS_NET_COOKIES_COOKIE_STORE_IOS_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 23 matching lines...) Expand all Loading... |
| 34 // Observer for changes on |NSHTTPCookieStorge sharedHTTPCookieStorage|. | 34 // Observer for changes on |NSHTTPCookieStorge sharedHTTPCookieStorage|. |
| 35 class CookieNotificationObserver { | 35 class CookieNotificationObserver { |
| 36 public: | 36 public: |
| 37 // Called when any cookie is added, deleted or changed in | 37 // Called when any cookie is added, deleted or changed in |
| 38 // |NSHTTPCookieStorge sharedHTTPCookieStorage|. | 38 // |NSHTTPCookieStorge sharedHTTPCookieStorage|. |
| 39 virtual void OnSystemCookiesChanged() = 0; | 39 virtual void OnSystemCookiesChanged() = 0; |
| 40 }; | 40 }; |
| 41 | 41 |
| 42 // The CookieStoreIOS is an implementation of CookieStore relying on | 42 // The CookieStoreIOS is an implementation of CookieStore relying on |
| 43 // NSHTTPCookieStorage, ensuring that the cookies are consistent between the | 43 // NSHTTPCookieStorage, ensuring that the cookies are consistent between the |
| 44 // network stack and the UIWebViews. | 44 // network stack and NSHTTPCookieStorage. |
| 45 // On iOS, the Chrome CookieMonster is not used in conjunction with UIWebView, | |
| 46 // because UIWebView expects the cookies to be in the shared | |
| 47 // NSHTTPCookieStorage. In particular, javascript may read and write cookies | |
| 48 // there. | |
| 49 // CookieStoreIOS is not thread safe. | 45 // CookieStoreIOS is not thread safe. |
| 50 // | 46 // |
| 51 // At any given time, a CookieStoreIOS can either be synchronized with the | 47 // CookieStoreIOS can be created synchronized with the system cookie store (via |
| 52 // system cookie store or not. If a CookieStoreIOS is not synchronized with the | 48 // CreateCookieStore) or not (other constructors). If a CookieStoreIOS is not |
| 53 // system store, changes are written back to the backing CookieStore. If a | 49 // synchronized with the system store, changes are written back to the backing |
| 54 // CookieStoreIOS is synchronized with the system store, changes are written | 50 // CookieStore. If a CookieStoreIOS is synchronized with the system store, |
| 55 // directly to the system cookie store, then propagated to the backing store by | 51 // changes are written directly to the system cookie store, then propagated to |
| 56 // OnSystemCookiesChanged, which is called by the system store once the change | 52 // the backing store by OnSystemCookiesChanged, which is called by the system |
| 57 // to the system store is written back. | 53 // store once the change to the system store is written back. |
| 58 // | |
| 59 // To unsynchronize, CookieStoreIOS copies the system cookie store into its | |
| 60 // backing CookieStore. To synchronize, CookieStoreIOS clears the system cookie | |
| 61 // store, copies its backing CookieStore into the system cookie store. | |
| 62 class CookieStoreIOS : public net::CookieStore, | 54 class CookieStoreIOS : public net::CookieStore, |
| 63 public CookieNotificationObserver { | 55 public CookieNotificationObserver { |
| 64 public: | 56 public: |
| 65 // Creates a CookieStoreIOS with a default value of | 57 // Creates a CookieStoreIOS with a default value of |
| 66 // |NSHTTPCookieStorage sharedCookieStorage| as the system's cookie store. | 58 // |NSHTTPCookieStorage sharedCookieStorage| as the system's cookie store. |
| 67 explicit CookieStoreIOS( | 59 explicit CookieStoreIOS( |
| 68 net::CookieMonster::PersistentCookieStore* persistent_store); | 60 net::CookieMonster::PersistentCookieStore* persistent_store); |
| 69 | 61 |
| 70 explicit CookieStoreIOS( | 62 explicit CookieStoreIOS( |
| 71 net::CookieMonster::PersistentCookieStore* persistent_store, | 63 net::CookieMonster::PersistentCookieStore* persistent_store, |
| (...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 314 hook_map_; | 306 hook_map_; |
| 315 | 307 |
| 316 base::WeakPtrFactory<CookieStoreIOS> weak_factory_; | 308 base::WeakPtrFactory<CookieStoreIOS> weak_factory_; |
| 317 | 309 |
| 318 DISALLOW_COPY_AND_ASSIGN(CookieStoreIOS); | 310 DISALLOW_COPY_AND_ASSIGN(CookieStoreIOS); |
| 319 }; | 311 }; |
| 320 | 312 |
| 321 } // namespace net | 313 } // namespace net |
| 322 | 314 |
| 323 #endif // IOS_NET_COOKIES_COOKIE_STORE_IOS_H_ | 315 #endif // IOS_NET_COOKIES_COOKIE_STORE_IOS_H_ |
| OLD | NEW |