Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 // Brought to you by the letter D and the number 2. | 5 // Brought to you by the letter D and the number 2. |
| 6 | 6 |
| 7 #ifndef NET_COOKIES_COOKIE_MONSTER_H_ | 7 #ifndef NET_COOKIES_COOKIE_MONSTER_H_ |
| 8 #define NET_COOKIES_COOKIE_MONSTER_H_ | 8 #define NET_COOKIES_COOKIE_MONSTER_H_ |
| 9 | 9 |
| 10 #include <stddef.h> | 10 #include <stddef.h> |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 31 #include "net/cookies/cookie_constants.h" | 31 #include "net/cookies/cookie_constants.h" |
| 32 #include "net/cookies/cookie_store.h" | 32 #include "net/cookies/cookie_store.h" |
| 33 #include "url/gurl.h" | 33 #include "url/gurl.h" |
| 34 | 34 |
| 35 namespace base { | 35 namespace base { |
| 36 class HistogramBase; | 36 class HistogramBase; |
| 37 } // namespace base | 37 } // namespace base |
| 38 | 38 |
| 39 namespace net { | 39 namespace net { |
| 40 | 40 |
| 41 class ChannelIDService; | |
| 41 class CookieMonsterDelegate; | 42 class CookieMonsterDelegate; |
| 42 | 43 |
| 43 // The cookie monster is the system for storing and retrieving cookies. It has | 44 // The cookie monster is the system for storing and retrieving cookies. It has |
| 44 // an in-memory list of all cookies, and synchronizes non-session cookies to an | 45 // an in-memory list of all cookies, and synchronizes non-session cookies to an |
| 45 // optional permanent storage that implements the PersistentCookieStore | 46 // optional permanent storage that implements the PersistentCookieStore |
| 46 // interface. | 47 // interface. |
| 47 // | 48 // |
| 48 // Tasks may be deferred if all affected cookies are not yet loaded from the | 49 // Tasks may be deferred if all affected cookies are not yet loaded from the |
| 49 // backing store. Otherwise, callbacks may be invoked immediately. | 50 // backing store. Otherwise, callbacks may be invoked immediately. |
| 50 // | 51 // |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 127 static const size_t kDomainCookiesQuotaHigh; | 128 static const size_t kDomainCookiesQuotaHigh; |
| 128 | 129 |
| 129 // The store passed in should not have had Init() called on it yet. This | 130 // The store passed in should not have had Init() called on it yet. This |
| 130 // class will take care of initializing it. The backing store is NOT owned by | 131 // class will take care of initializing it. The backing store is NOT owned by |
| 131 // this class, but it must remain valid for the duration of the cookie | 132 // this class, but it must remain valid for the duration of the cookie |
| 132 // monster's existence. If |store| is NULL, then no backing store will be | 133 // monster's existence. If |store| is NULL, then no backing store will be |
| 133 // updated. If |delegate| is non-NULL, it will be notified on | 134 // updated. If |delegate| is non-NULL, it will be notified on |
| 134 // creation/deletion of cookies. | 135 // creation/deletion of cookies. |
| 135 CookieMonster(PersistentCookieStore* store, CookieMonsterDelegate* delegate); | 136 CookieMonster(PersistentCookieStore* store, CookieMonsterDelegate* delegate); |
| 136 | 137 |
| 138 // Like above, but includes a non-owning pointer |channel_id_service| for the | |
| 139 // corresponding ChannelIDService used with this CookieStore. | |
|
mattm
2017/05/12 00:02:47
add note about |channel_id_service| lifetime
nharper
2017/05/12 02:47:23
Done.
| |
| 140 CookieMonster(PersistentCookieStore* store, | |
| 141 CookieMonsterDelegate* delegate, | |
| 142 ChannelIDService* channel_id_service); | |
| 143 | |
| 137 // Only used during unit testing. | 144 // Only used during unit testing. |
| 138 CookieMonster(PersistentCookieStore* store, | 145 CookieMonster(PersistentCookieStore* store, |
| 139 CookieMonsterDelegate* delegate, | 146 CookieMonsterDelegate* delegate, |
| 140 base::TimeDelta last_access_threshold); | 147 base::TimeDelta last_access_threshold); |
| 141 | 148 |
| 142 ~CookieMonster() override; | 149 ~CookieMonster() override; |
| 143 | 150 |
| 144 // Replaces all the cookies by |list|. This method does not flush the backend. | 151 // Replaces all the cookies by |list|. This method does not flush the backend. |
| 145 // This method does not support setting secure cookies, which need source | 152 // This method does not support setting secure cookies, which need source |
| 146 // URLs. | 153 // URLs. |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 210 static const int kDefaultCookieableSchemesCount; | 217 static const int kDefaultCookieableSchemesCount; |
| 211 | 218 |
| 212 std::unique_ptr<CookieChangedSubscription> AddCallbackForCookie( | 219 std::unique_ptr<CookieChangedSubscription> AddCallbackForCookie( |
| 213 const GURL& url, | 220 const GURL& url, |
| 214 const std::string& name, | 221 const std::string& name, |
| 215 const CookieChangedCallback& callback) override; | 222 const CookieChangedCallback& callback) override; |
| 216 | 223 |
| 217 bool IsEphemeral() override; | 224 bool IsEphemeral() override; |
| 218 | 225 |
| 219 private: | 226 private: |
| 227 CookieMonster(PersistentCookieStore* store, | |
| 228 CookieMonsterDelegate* delegate, | |
| 229 ChannelIDService* channel_id_service, | |
| 230 base::TimeDelta last_access_threshold); | |
| 231 | |
| 220 // For queueing the cookie monster calls. | 232 // For queueing the cookie monster calls. |
| 221 class CookieMonsterTask; | 233 class CookieMonsterTask; |
| 222 template <typename Result> | 234 template <typename Result> |
| 223 class DeleteTask; | 235 class DeleteTask; |
| 224 class DeleteAllCreatedBetweenTask; | 236 class DeleteAllCreatedBetweenTask; |
| 225 class DeleteAllCreatedBetweenWithPredicateTask; | 237 class DeleteAllCreatedBetweenWithPredicateTask; |
| 226 class DeleteCookieTask; | 238 class DeleteCookieTask; |
| 227 class DeleteCanonicalCookieTask; | 239 class DeleteCanonicalCookieTask; |
| 228 class GetCookieListForURLWithOptionsTask; | 240 class GetCookieListForURLWithOptionsTask; |
| 229 class GetAllCookiesTask; | 241 class GetAllCookiesTask; |
| (...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 709 | 721 |
| 710 // During loading, holds the set of all loaded cookie creation times. Used to | 722 // During loading, holds the set of all loaded cookie creation times. Used to |
| 711 // avoid ever letting cookies with duplicate creation times into the store; | 723 // avoid ever letting cookies with duplicate creation times into the store; |
| 712 // that way we don't have to worry about what sections of code are safe | 724 // that way we don't have to worry about what sections of code are safe |
| 713 // to call while it's in that state. | 725 // to call while it's in that state. |
| 714 std::set<int64_t> creation_times_; | 726 std::set<int64_t> creation_times_; |
| 715 | 727 |
| 716 std::vector<std::string> cookieable_schemes_; | 728 std::vector<std::string> cookieable_schemes_; |
| 717 | 729 |
| 718 scoped_refptr<CookieMonsterDelegate> delegate_; | 730 scoped_refptr<CookieMonsterDelegate> delegate_; |
| 731 ChannelIDService* channel_id_service_; | |
| 719 | 732 |
| 720 base::Time last_statistic_record_time_; | 733 base::Time last_statistic_record_time_; |
| 721 | 734 |
| 722 bool persist_session_cookies_; | 735 bool persist_session_cookies_; |
| 723 | 736 |
| 724 using CookieChangedHookMap = | 737 using CookieChangedHookMap = |
| 725 std::map<std::pair<GURL, std::string>, | 738 std::map<std::pair<GURL, std::string>, |
| 726 std::unique_ptr<CookieChangedCallbackList>>; | 739 std::unique_ptr<CookieChangedCallbackList>>; |
| 727 CookieChangedHookMap hook_map_; | 740 CookieChangedHookMap hook_map_; |
| 728 | 741 |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 802 virtual ~PersistentCookieStore() {} | 815 virtual ~PersistentCookieStore() {} |
| 803 | 816 |
| 804 private: | 817 private: |
| 805 friend class base::RefCountedThreadSafe<PersistentCookieStore>; | 818 friend class base::RefCountedThreadSafe<PersistentCookieStore>; |
| 806 DISALLOW_COPY_AND_ASSIGN(PersistentCookieStore); | 819 DISALLOW_COPY_AND_ASSIGN(PersistentCookieStore); |
| 807 }; | 820 }; |
| 808 | 821 |
| 809 } // namespace net | 822 } // namespace net |
| 810 | 823 |
| 811 #endif // NET_COOKIES_COOKIE_MONSTER_H_ | 824 #endif // NET_COOKIES_COOKIE_MONSTER_H_ |
| OLD | NEW |