Use multiline attribute to check for IA2_STATE_MULTILINE.
[chromium-blink-merge.git] / content / browser / dom_storage / dom_storage_context_wrapper.h
blobefd509148901aa729a4a0e8298111eb8553a19d0
1 // Copyright 2013 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 CONTENT_BROWSER_DOM_STORAGE_DOM_STORAGE_CONTEXT_WRAPPER_H_
6 #define CONTENT_BROWSER_DOM_STORAGE_DOM_STORAGE_CONTEXT_WRAPPER_H_
8 #include "base/memory/ref_counted.h"
9 #include "content/common/content_export.h"
10 #include "content/public/browser/dom_storage_context.h"
12 namespace base {
13 class FilePath;
16 namespace storage {
17 class SpecialStoragePolicy;
20 namespace content {
22 class DOMStorageContextImpl;
24 // This is owned by BrowserContext (aka Profile) and encapsulates all
25 // per-profile dom storage state.
26 class CONTENT_EXPORT DOMStorageContextWrapper :
27 NON_EXPORTED_BASE(public DOMStorageContext),
28 public base::RefCountedThreadSafe<DOMStorageContextWrapper> {
29 public:
30 // If |data_path| is empty, nothing will be saved to disk.
31 DOMStorageContextWrapper(
32 const base::FilePath& data_path,
33 storage::SpecialStoragePolicy* special_storage_policy);
35 // DOMStorageContext implementation.
36 void GetLocalStorageUsage(
37 const GetLocalStorageUsageCallback& callback) override;
38 void GetSessionStorageUsage(
39 const GetSessionStorageUsageCallback& callback) override;
40 void DeleteLocalStorage(const GURL& origin) override;
41 void DeleteSessionStorage(const SessionStorageUsageInfo& usage_info) override;
42 void SetSaveSessionStorageOnDisk() override;
43 scoped_refptr<SessionStorageNamespace> RecreateSessionStorage(
44 const std::string& persistent_id) override;
45 void StartScavengingUnusedSessionStorage() override;
47 // Used by content settings to alter the behavior around
48 // what data to keep and what data to discard at shutdown.
49 // The policy is not so straight forward to describe, see
50 // the implementation for details.
51 void SetForceKeepSessionState();
53 // Called when the BrowserContext/Profile is going away.
54 void Shutdown();
56 private:
57 friend class DOMStorageMessageFilter; // for access to context()
58 friend class SessionStorageNamespaceImpl; // ditto
59 friend class base::RefCountedThreadSafe<DOMStorageContextWrapper>;
61 ~DOMStorageContextWrapper() override;
62 DOMStorageContextImpl* context() const { return context_.get(); }
64 scoped_refptr<DOMStorageContextImpl> context_;
66 DISALLOW_IMPLICIT_CONSTRUCTORS(DOMStorageContextWrapper);
69 } // namespace content
71 #endif // CONTENT_BROWSER_DOM_STORAGE_DOM_STORAGE_CONTEXT_WRAPPER_H_