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 CHROME_BROWSER_NET_SQLITE_SERVER_BOUND_CERT_STORE_H_
6 #define CHROME_BROWSER_NET_SQLITE_SERVER_BOUND_CERT_STORE_H_
8 #include "base/callback_forward.h"
9 #include "base/compiler_specific.h"
10 #include "base/memory/ref_counted.h"
11 #include "net/ssl/default_server_bound_cert_store.h"
18 class SpecialStoragePolicy
;
21 // Implements the net::DefaultServerBoundCertStore::PersistentStore interface
22 // in terms of a SQLite database. For documentation about the actual member
23 // functions consult the documentation of the parent class
24 // |net::DefaultServerBoundCertStore::PersistentCertStore|.
25 // If provided, a |SpecialStoragePolicy| is consulted when the SQLite database
26 // is closed to decide which certificates to keep.
27 class SQLiteServerBoundCertStore
28 : public net::DefaultServerBoundCertStore::PersistentStore
{
30 SQLiteServerBoundCertStore(
31 const base::FilePath
& path
,
32 quota::SpecialStoragePolicy
* special_storage_policy
);
34 // net::DefaultServerBoundCertStore::PersistentStore:
35 virtual void Load(const LoadedCallback
& loaded_callback
) OVERRIDE
;
36 virtual void AddServerBoundCert(
37 const net::DefaultServerBoundCertStore::ServerBoundCert
& cert
) OVERRIDE
;
38 virtual void DeleteServerBoundCert(
39 const net::DefaultServerBoundCertStore::ServerBoundCert
& cert
) OVERRIDE
;
40 virtual void SetForceKeepSessionState() OVERRIDE
;
43 virtual ~SQLiteServerBoundCertStore();
48 scoped_refptr
<Backend
> backend_
;
50 DISALLOW_COPY_AND_ASSIGN(SQLiteServerBoundCertStore
);
53 #endif // CHROME_BROWSER_NET_SQLITE_SERVER_BOUND_CERT_STORE_H_