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 #ifndef CONTENT_BROWSER_IN_PROCESS_WEBKIT_INDEXED_DB_CONTEXT_IMPL_H_ | 5 #ifndef CONTENT_BROWSER_IN_PROCESS_WEBKIT_INDEXED_DB_CONTEXT_IMPL_H_ |
6 #define CONTENT_BROWSER_IN_PROCESS_WEBKIT_INDEXED_DB_CONTEXT_IMPL_H_ | 6 #define CONTENT_BROWSER_IN_PROCESS_WEBKIT_INDEXED_DB_CONTEXT_IMPL_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <map> | 9 #include <map> |
10 #include <set> | 10 #include <set> |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 base::MessageLoopProxy* webkit_thread_loop); | 43 base::MessageLoopProxy* webkit_thread_loop); |
44 | 44 |
45 WebKit::WebIDBFactory* GetIDBFactory(); | 45 WebKit::WebIDBFactory* GetIDBFactory(); |
46 | 46 |
47 // The indexed db directory. | 47 // The indexed db directory. |
48 static const FilePath::CharType kIndexedDBDirectory[]; | 48 static const FilePath::CharType kIndexedDBDirectory[]; |
49 | 49 |
50 // The indexed db file extension. | 50 // The indexed db file extension. |
51 static const FilePath::CharType kIndexedDBExtension[]; | 51 static const FilePath::CharType kIndexedDBExtension[]; |
52 | 52 |
53 void set_clear_local_state_on_exit(bool clear_local_state) { | 53 // Disables the exit-time deletion of session-only data. |
54 clear_local_state_on_exit_ = clear_local_state; | 54 void SetForceKeepSessionState() { |
55 } | 55 force_keep_session_state_ = true; |
56 | |
57 // Disables the exit-time deletion for all data (also session-only data). | |
58 void SaveSessionState() { | |
59 save_session_state_ = true; | |
60 } | 56 } |
61 | 57 |
62 // IndexedDBContext implementation: | 58 // IndexedDBContext implementation: |
63 virtual std::vector<GURL> GetAllOrigins() OVERRIDE; | 59 virtual std::vector<GURL> GetAllOrigins() OVERRIDE; |
64 virtual int64 GetOriginDiskUsage(const GURL& origin_url) OVERRIDE; | 60 virtual int64 GetOriginDiskUsage(const GURL& origin_url) OVERRIDE; |
65 virtual base::Time GetOriginLastModified(const GURL& origin_url) OVERRIDE; | 61 virtual base::Time GetOriginLastModified(const GURL& origin_url) OVERRIDE; |
66 virtual void DeleteForOrigin(const GURL& origin_url) OVERRIDE; | 62 virtual void DeleteForOrigin(const GURL& origin_url) OVERRIDE; |
67 virtual FilePath GetFilePathForTesting( | 63 virtual FilePath GetFilePathForTesting( |
68 const string16& origin_id) const OVERRIDE; | 64 const string16& origin_id) const OVERRIDE; |
69 | 65 |
(...skipping 12 matching lines...) Expand all Loading... |
82 void set_data_path_for_testing(const FilePath& data_path) { | 78 void set_data_path_for_testing(const FilePath& data_path) { |
83 data_path_ = data_path; | 79 data_path_ = data_path; |
84 } | 80 } |
85 | 81 |
86 protected: | 82 protected: |
87 virtual ~IndexedDBContextImpl(); | 83 virtual ~IndexedDBContextImpl(); |
88 | 84 |
89 private: | 85 private: |
90 FRIEND_TEST_ALL_PREFIXES(IndexedDBTest, ClearLocalState); | 86 FRIEND_TEST_ALL_PREFIXES(IndexedDBTest, ClearLocalState); |
91 FRIEND_TEST_ALL_PREFIXES(IndexedDBTest, ClearSessionOnlyDatabases); | 87 FRIEND_TEST_ALL_PREFIXES(IndexedDBTest, ClearSessionOnlyDatabases); |
92 FRIEND_TEST_ALL_PREFIXES(IndexedDBTest, SaveSessionState); | 88 FRIEND_TEST_ALL_PREFIXES(IndexedDBTest, SetForceKeepSessionState); |
93 friend class IndexedDBQuotaClientTest; | 89 friend class IndexedDBQuotaClientTest; |
94 | 90 |
95 typedef std::map<GURL, int64> OriginToSizeMap; | 91 typedef std::map<GURL, int64> OriginToSizeMap; |
96 class IndexedDBGetUsageAndQuotaCallback; | 92 class IndexedDBGetUsageAndQuotaCallback; |
97 | 93 |
98 FilePath GetIndexedDBFilePath(const string16& origin_id) const; | 94 FilePath GetIndexedDBFilePath(const string16& origin_id) const; |
99 int64 ReadUsageFromDisk(const GURL& origin_url) const; | 95 int64 ReadUsageFromDisk(const GURL& origin_url) const; |
100 void EnsureDiskUsageCacheInitialized(const GURL& origin_url); | 96 void EnsureDiskUsageCacheInitialized(const GURL& origin_url); |
101 void QueryDiskAndUpdateQuotaUsage(const GURL& origin_url); | 97 void QueryDiskAndUpdateQuotaUsage(const GURL& origin_url); |
102 void GotUsageAndQuota(const GURL& origin_url, quota::QuotaStatusCode, | 98 void GotUsageAndQuota(const GURL& origin_url, quota::QuotaStatusCode, |
(...skipping 11 matching lines...) Expand all Loading... |
114 bool IsInOriginSet(const GURL& origin_url) { | 110 bool IsInOriginSet(const GURL& origin_url) { |
115 std::set<GURL>* set = GetOriginSet(); | 111 std::set<GURL>* set = GetOriginSet(); |
116 return set->find(origin_url) != set->end(); | 112 return set->find(origin_url) != set->end(); |
117 } | 113 } |
118 | 114 |
119 // Only for testing. | 115 // Only for testing. |
120 void ResetCaches(); | 116 void ResetCaches(); |
121 | 117 |
122 scoped_ptr<WebKit::WebIDBFactory> idb_factory_; | 118 scoped_ptr<WebKit::WebIDBFactory> idb_factory_; |
123 FilePath data_path_; | 119 FilePath data_path_; |
124 bool clear_local_state_on_exit_; | |
125 // If true, nothing (not even session-only data) should be deleted on exit. | 120 // If true, nothing (not even session-only data) should be deleted on exit. |
126 bool save_session_state_; | 121 bool force_keep_session_state_; |
127 scoped_refptr<quota::SpecialStoragePolicy> special_storage_policy_; | 122 scoped_refptr<quota::SpecialStoragePolicy> special_storage_policy_; |
128 scoped_refptr<quota::QuotaManagerProxy> quota_manager_proxy_; | 123 scoped_refptr<quota::QuotaManagerProxy> quota_manager_proxy_; |
129 scoped_ptr<std::set<GURL> > origin_set_; | 124 scoped_ptr<std::set<GURL> > origin_set_; |
130 OriginToSizeMap origin_size_map_; | 125 OriginToSizeMap origin_size_map_; |
131 OriginToSizeMap space_available_map_; | 126 OriginToSizeMap space_available_map_; |
132 std::map<GURL, unsigned int> connection_count_; | 127 std::map<GURL, unsigned int> connection_count_; |
133 | 128 |
134 DISALLOW_COPY_AND_ASSIGN(IndexedDBContextImpl); | 129 DISALLOW_COPY_AND_ASSIGN(IndexedDBContextImpl); |
135 }; | 130 }; |
136 | 131 |
137 #endif // CONTENT_BROWSER_IN_PROCESS_WEBKIT_INDEXED_DB_CONTEXT_IMPL_H_ | 132 #endif // CONTENT_BROWSER_IN_PROCESS_WEBKIT_INDEXED_DB_CONTEXT_IMPL_H_ |
OLD | NEW |