Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(627)

Side by Side Diff: content/browser/in_process_webkit/indexed_db_context.h

Issue 8820009: Appcache, local storage, indexed db, databases: skip exit-time deletion when restarting. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Code review. Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_H_ 5 #ifndef CONTENT_BROWSER_IN_PROCESS_WEBKIT_INDEXED_DB_CONTEXT_H_
6 #define CONTENT_BROWSER_IN_PROCESS_WEBKIT_INDEXED_DB_CONTEXT_H_ 6 #define CONTENT_BROWSER_IN_PROCESS_WEBKIT_INDEXED_DB_CONTEXT_H_
7 #pragma once 7 #pragma once
8 8
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 // The indexed db directory. 52 // The indexed db directory.
53 static const FilePath::CharType kIndexedDBDirectory[]; 53 static const FilePath::CharType kIndexedDBDirectory[];
54 54
55 // The indexed db file extension. 55 // The indexed db file extension.
56 static const FilePath::CharType kIndexedDBExtension[]; 56 static const FilePath::CharType kIndexedDBExtension[];
57 57
58 void set_clear_local_state_on_exit(bool clear_local_state) { 58 void set_clear_local_state_on_exit(bool clear_local_state) {
59 clear_local_state_on_exit_ = clear_local_state; 59 clear_local_state_on_exit_ = clear_local_state;
60 } 60 }
61 61
62 // Disables the exit-time deletion for all data (also session-only data).
63 void SaveSessionState() {
64 save_session_state_ = true;
65 }
66
62 // Deletes all indexed db files for the given origin. 67 // Deletes all indexed db files for the given origin.
63 void DeleteIndexedDBForOrigin(const GURL& origin_url); 68 void DeleteIndexedDBForOrigin(const GURL& origin_url);
64 69
65 // Methods used in response to QuotaManager requests. 70 // Methods used in response to QuotaManager requests.
66 void GetAllOrigins(std::vector<GURL>* origins); 71 void GetAllOrigins(std::vector<GURL>* origins);
67 int64 GetOriginDiskUsage(const GURL& origin_url); 72 int64 GetOriginDiskUsage(const GURL& origin_url);
68 base::Time GetOriginLastModified(const GURL& origin_url); 73 base::Time GetOriginLastModified(const GURL& origin_url);
69 74
70 // Methods called by IndexedDBDispatcherHost for quota support. 75 // Methods called by IndexedDBDispatcherHost for quota support.
71 void ConnectionOpened(const GURL& origin_url); 76 void ConnectionOpened(const GURL& origin_url);
72 void ConnectionClosed(const GURL& origin_url); 77 void ConnectionClosed(const GURL& origin_url);
73 void TransactionComplete(const GURL& origin_url); 78 void TransactionComplete(const GURL& origin_url);
74 bool WouldBeOverQuota(const GURL& origin_url, int64 additional_bytes); 79 bool WouldBeOverQuota(const GURL& origin_url, int64 additional_bytes);
75 bool IsOverQuota(const GURL& origin_url); 80 bool IsOverQuota(const GURL& origin_url);
76 81
77 quota::QuotaManagerProxy* quota_manager_proxy(); 82 quota::QuotaManagerProxy* quota_manager_proxy();
78 83
79 // For unit tests allow to override the |data_path_|. 84 // For unit tests allow to override the |data_path_|.
80 void set_data_path_for_testing(const FilePath& data_path) { 85 void set_data_path_for_testing(const FilePath& data_path) {
81 data_path_ = data_path; 86 data_path_ = data_path;
82 } 87 }
83 88
84 private: 89 private:
85 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest, ClearExtensionData); 90 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest, ClearExtensionData);
86 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest, ClearAppData); 91 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest, ClearAppData);
87 FRIEND_TEST_ALL_PREFIXES(IndexedDBBrowserTest, ClearLocalState); 92 FRIEND_TEST_ALL_PREFIXES(IndexedDBBrowserTest, ClearLocalState);
88 FRIEND_TEST_ALL_PREFIXES(IndexedDBBrowserTest, ClearSessionOnlyDatabases); 93 FRIEND_TEST_ALL_PREFIXES(IndexedDBBrowserTest, ClearSessionOnlyDatabases);
94 FRIEND_TEST_ALL_PREFIXES(IndexedDBBrowserTest, SaveSessionState);
89 friend class IndexedDBQuotaClientTest; 95 friend class IndexedDBQuotaClientTest;
90 96
91 typedef std::map<GURL, int64> OriginToSizeMap; 97 typedef std::map<GURL, int64> OriginToSizeMap;
92 class IndexedDBGetUsageAndQuotaCallback; 98 class IndexedDBGetUsageAndQuotaCallback;
93 99
94 FilePath GetIndexedDBFilePath(const string16& origin_id) const; 100 FilePath GetIndexedDBFilePath(const string16& origin_id) const;
95 int64 ReadUsageFromDisk(const GURL& origin_url) const; 101 int64 ReadUsageFromDisk(const GURL& origin_url) const;
96 void EnsureDiskUsageCacheInitialized(const GURL& origin_url); 102 void EnsureDiskUsageCacheInitialized(const GURL& origin_url);
97 void QueryDiskAndUpdateQuotaUsage(const GURL& origin_url); 103 void QueryDiskAndUpdateQuotaUsage(const GURL& origin_url);
98 void GotUsageAndQuota(const GURL& origin_url, quota::QuotaStatusCode, 104 void GotUsageAndQuota(const GURL& origin_url, quota::QuotaStatusCode,
(...skipping 12 matching lines...) Expand all
111 std::set<GURL>* set = GetOriginSet(); 117 std::set<GURL>* set = GetOriginSet();
112 return set->find(origin_url) != set->end(); 118 return set->find(origin_url) != set->end();
113 } 119 }
114 120
115 // Only for testing. 121 // Only for testing.
116 void ResetCaches(); 122 void ResetCaches();
117 123
118 scoped_ptr<WebKit::WebIDBFactory> idb_factory_; 124 scoped_ptr<WebKit::WebIDBFactory> idb_factory_;
119 FilePath data_path_; 125 FilePath data_path_;
120 bool clear_local_state_on_exit_; 126 bool clear_local_state_on_exit_;
127 // If true, nothing (not even session-only data) should be deleted on exit.
128 bool save_session_state_;
121 scoped_refptr<quota::SpecialStoragePolicy> special_storage_policy_; 129 scoped_refptr<quota::SpecialStoragePolicy> special_storage_policy_;
122 scoped_refptr<quota::QuotaManagerProxy> quota_manager_proxy_; 130 scoped_refptr<quota::QuotaManagerProxy> quota_manager_proxy_;
123 scoped_ptr<std::set<GURL> > origin_set_; 131 scoped_ptr<std::set<GURL> > origin_set_;
124 OriginToSizeMap origin_size_map_; 132 OriginToSizeMap origin_size_map_;
125 OriginToSizeMap space_available_map_; 133 OriginToSizeMap space_available_map_;
126 std::map<GURL, unsigned int> connection_count_; 134 std::map<GURL, unsigned int> connection_count_;
127 135
128 DISALLOW_COPY_AND_ASSIGN(IndexedDBContext); 136 DISALLOW_COPY_AND_ASSIGN(IndexedDBContext);
129 }; 137 };
130 138
131 #endif // CONTENT_BROWSER_IN_PROCESS_WEBKIT_INDEXED_DB_CONTEXT_H_ 139 #endif // CONTENT_BROWSER_IN_PROCESS_WEBKIT_INDEXED_DB_CONTEXT_H_
OLDNEW
« no previous file with comments | « content/browser/in_process_webkit/indexed_db_browsertest.cc ('k') | content/browser/in_process_webkit/indexed_db_context.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698