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 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
137 // monster's existence. If |store| is NULL, then no backing store will be | 137 // monster's existence. If |store| is NULL, then no backing store will be |
138 // updated. If |delegate| is non-NULL, it will be notified on | 138 // updated. If |delegate| is non-NULL, it will be notified on |
139 // creation/deletion of cookies. | 139 // creation/deletion of cookies. |
140 CookieMonster(PersistentCookieStore* store, CookieMonsterDelegate* delegate); | 140 CookieMonster(PersistentCookieStore* store, CookieMonsterDelegate* delegate); |
141 | 141 |
142 // Only used during unit testing. | 142 // Only used during unit testing. |
143 CookieMonster(PersistentCookieStore* store, | 143 CookieMonster(PersistentCookieStore* store, |
144 CookieMonsterDelegate* delegate, | 144 CookieMonsterDelegate* delegate, |
145 int last_access_threshold_milliseconds); | 145 int last_access_threshold_milliseconds); |
146 | 146 |
147 ~CookieMonster() override; | |
148 | |
147 // Replaces all the cookies by |list|. This method does not flush the backend. | 149 // Replaces all the cookies by |list|. This method does not flush the backend. |
148 void SetAllCookiesAsync(const CookieList& list, | 150 void SetAllCookiesAsync(const CookieList& list, |
149 const SetCookiesCallback& callback); | 151 const SetCookiesCallback& callback); |
150 | 152 |
151 // CookieStore implementation. | 153 // CookieStore implementation. |
152 void SetCookieWithOptionsAsync(const GURL& url, | 154 void SetCookieWithOptionsAsync(const GURL& url, |
153 const std::string& cookie_line, | 155 const std::string& cookie_line, |
154 const CookieOptions& options, | 156 const CookieOptions& options, |
155 const SetCookiesCallback& callback) override; | 157 const SetCookiesCallback& callback) override; |
156 void SetCookieWithDetailsAsync(const GURL& url, | 158 void SetCookieWithDetailsAsync(const GURL& url, |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
374 kUnknownFetch, | 376 kUnknownFetch, |
375 }; | 377 }; |
376 | 378 |
377 // The number of days since last access that cookies will not be subject | 379 // The number of days since last access that cookies will not be subject |
378 // to global garbage collection. | 380 // to global garbage collection. |
379 static const int kSafeFromGlobalPurgeDays; | 381 static const int kSafeFromGlobalPurgeDays; |
380 | 382 |
381 // Record statistics every kRecordStatisticsIntervalSeconds of uptime. | 383 // Record statistics every kRecordStatisticsIntervalSeconds of uptime. |
382 static const int kRecordStatisticsIntervalSeconds = 10 * 60; | 384 static const int kRecordStatisticsIntervalSeconds = 10 * 60; |
383 | 385 |
384 ~CookieMonster() override; | |
385 | |
386 // The following are synchronous calls to which the asynchronous methods | 386 // The following are synchronous calls to which the asynchronous methods |
387 // delegate either immediately (if the store is loaded) or through a deferred | 387 // delegate either immediately (if the store is loaded) or through a deferred |
388 // task (if the store is not yet loaded). | 388 // task (if the store is not yet loaded). |
389 bool SetCookieWithDetails(const GURL& url, | 389 bool SetCookieWithDetails(const GURL& url, |
390 const std::string& name, | 390 const std::string& name, |
391 const std::string& value, | 391 const std::string& value, |
392 const std::string& domain, | 392 const std::string& domain, |
393 const std::string& path, | 393 const std::string& path, |
394 base::Time creation_time, | 394 base::Time creation_time, |
395 base::Time expiration_time, | 395 base::Time expiration_time, |
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
672 // Map of domain keys to their associated task queues. These tasks are blocked | 672 // Map of domain keys to their associated task queues. These tasks are blocked |
673 // until all cookies for the associated domain key eTLD+1 are loaded from the | 673 // until all cookies for the associated domain key eTLD+1 are loaded from the |
674 // backend store. | 674 // backend store. |
675 std::map<std::string, std::deque<scoped_refptr<CookieMonsterTask>>> | 675 std::map<std::string, std::deque<scoped_refptr<CookieMonsterTask>>> |
676 tasks_pending_for_key_; | 676 tasks_pending_for_key_; |
677 | 677 |
678 // Queues tasks that are blocked until all cookies are loaded from the backend | 678 // Queues tasks that are blocked until all cookies are loaded from the backend |
679 // store. | 679 // store. |
680 std::queue<scoped_refptr<CookieMonsterTask>> tasks_pending_; | 680 std::queue<scoped_refptr<CookieMonsterTask>> tasks_pending_; |
681 | 681 |
682 scoped_refptr<PersistentCookieStore> store_; | 682 scoped_refptr<PersistentCookieStore> store_; |
Randy Smith (Not in Mondays)
2016/02/29 22:37:45
Is there a bug somewhere to make this scoped_ptr<>
mmenke
2016/02/29 23:00:29
I don't think there's much value in making it non-
| |
683 | 683 |
684 base::Time last_time_seen_; | 684 base::Time last_time_seen_; |
685 | 685 |
686 // Minimum delay after updating a cookie's LastAccessDate before we will | 686 // Minimum delay after updating a cookie's LastAccessDate before we will |
687 // update it again. | 687 // update it again. |
688 const base::TimeDelta last_access_threshold_; | 688 const base::TimeDelta last_access_threshold_; |
689 | 689 |
690 // Approximate date of access time of least recently accessed cookie | 690 // Approximate date of access time of least recently accessed cookie |
691 // in |cookies_|. Note that this is not guaranteed to be accurate, only a) | 691 // in |cookies_|. Note that this is not guaranteed to be accurate, only a) |
692 // to be before or equal to the actual time, and b) to be accurate | 692 // to be before or equal to the actual time, and b) to be accurate |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
806 virtual ~PersistentCookieStore() {} | 806 virtual ~PersistentCookieStore() {} |
807 | 807 |
808 private: | 808 private: |
809 friend class base::RefCountedThreadSafe<PersistentCookieStore>; | 809 friend class base::RefCountedThreadSafe<PersistentCookieStore>; |
810 DISALLOW_COPY_AND_ASSIGN(PersistentCookieStore); | 810 DISALLOW_COPY_AND_ASSIGN(PersistentCookieStore); |
811 }; | 811 }; |
812 | 812 |
813 } // namespace net | 813 } // namespace net |
814 | 814 |
815 #endif // NET_COOKIES_COOKIE_MONSTER_H_ | 815 #endif // NET_COOKIES_COOKIE_MONSTER_H_ |
OLD | NEW |