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.
5 #ifndef NET_EXTRAS_SQLITE_SQLITE_PERSISTENT_COOKIE_STORE_H_
6 #define NET_EXTRAS_SQLITE_SQLITE_PERSISTENT_COOKIE_STORE_H_
13 #include "base/callback_forward.h"
14 #include "base/memory/ref_counted.h"
15 #include "net/cookies/cookie_monster.h"
21 class SequencedTaskRunner
;
25 class CanonicalCookie
;
26 class CookieCryptoDelegate
;
28 // Implements the PersistentCookieStore interface in terms of a SQLite database.
29 // For documentation about the actual member functions consult the documentation
30 // of the parent class |CookieMonster::PersistentCookieStore|.
31 class SQLitePersistentCookieStore
32 : public CookieMonster::PersistentCookieStore
{
34 // Contains the origin and a bool indicating whether or not the
36 typedef std::pair
<std::string
, bool> CookieOrigin
;
38 // All blocking database accesses will be performed on
39 // |background_task_runner|, while |client_task_runner| is used to invoke
41 SQLitePersistentCookieStore(
42 const base::FilePath
& path
,
43 const scoped_refptr
<base::SequencedTaskRunner
>& client_task_runner
,
44 const scoped_refptr
<base::SequencedTaskRunner
>& background_task_runner
,
45 bool restore_old_session_cookies
,
46 CookieCryptoDelegate
* crypto_delegate
);
48 // Deletes the cookies whose origins match those given in |cookies|.
49 void DeleteAllInList(const std::list
<CookieOrigin
>& cookies
);
51 // CookieMonster::PersistentCookieStore:
52 void Load(const LoadedCallback
& loaded_callback
) override
;
53 void LoadCookiesForKey(const std::string
& key
,
54 const LoadedCallback
& callback
) override
;
55 void AddCookie(const CanonicalCookie
& cc
) override
;
56 void UpdateCookieAccessTime(const CanonicalCookie
& cc
) override
;
57 void DeleteCookie(const CanonicalCookie
& cc
) override
;
58 void SetForceKeepSessionState() override
;
59 void Flush(const base::Closure
& callback
) override
;
62 ~SQLitePersistentCookieStore() override
;
66 scoped_refptr
<Backend
> backend_
;
68 DISALLOW_COPY_AND_ASSIGN(SQLitePersistentCookieStore
);
73 #endif // NET_EXTRAS_SQLITE_SQLITE_PERSISTENT_COOKIE_STORE_H_