OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_SERVICE_WORKER_SERVICE_WORKER_DATABASE_H_ | 5 #ifndef CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_DATABASE_H_ |
6 #define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_DATABASE_H_ | 6 #define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_DATABASE_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <set> | 9 #include <set> |
10 #include <string> | 10 #include <string> |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 }; | 85 }; |
86 | 86 |
87 // Reads next available ids from the database. Returns OK if they are | 87 // Reads next available ids from the database. Returns OK if they are |
88 // successfully read. Fills the arguments with an initial value and returns | 88 // successfully read. Fills the arguments with an initial value and returns |
89 // OK if they are not found in the database. Otherwise, returns an error. | 89 // OK if they are not found in the database. Otherwise, returns an error. |
90 Status GetNextAvailableIds( | 90 Status GetNextAvailableIds( |
91 int64* next_avail_registration_id, | 91 int64* next_avail_registration_id, |
92 int64* next_avail_version_id, | 92 int64* next_avail_version_id, |
93 int64* next_avail_resource_id); | 93 int64* next_avail_resource_id); |
94 | 94 |
| 95 // Reads the current diskcache version from the database. If the database |
| 96 // hasn't been written anything yet, sets |disk_cache_version| to 0 and |
| 97 // returns OK. |
| 98 Status ReadDiskCacheVersion(int64* disk_cache_version); |
| 99 |
| 100 // Writes the current diskcache version into the database. |
| 101 Status WriteDiskCacheVersion(int64 disk_cache_version); |
| 102 |
95 // Reads origins that have one or more than one registration from the | 103 // Reads origins that have one or more than one registration from the |
96 // database. Returns OK if they are successfully read or not found. | 104 // database. Returns OK if they are successfully read or not found. |
97 // Otherwise, returns an error. | 105 // Otherwise, returns an error. |
98 Status GetOriginsWithRegistrations(std::set<GURL>* origins); | 106 Status GetOriginsWithRegistrations(std::set<GURL>* origins); |
99 | 107 |
100 // Reads registrations for |origin| from the database. Returns OK if they are | 108 // Reads registrations for |origin| from the database. Returns OK if they are |
101 // successfully read or not found. Otherwise, returns an error. | 109 // successfully read or not found. Otherwise, returns an error. |
102 Status GetRegistrationsForOrigin( | 110 Status GetRegistrationsForOrigin( |
103 const GURL& origin, | 111 const GURL& origin, |
104 std::vector<RegistrationData>* registrations); | 112 std::vector<RegistrationData>* registrations); |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
217 Status WritePurgeableResourceIds(const std::set<int64>& ids); | 225 Status WritePurgeableResourceIds(const std::set<int64>& ids); |
218 | 226 |
219 // Deletes purgeable resource ids specified by |ids| from the database. | 227 // Deletes purgeable resource ids specified by |ids| from the database. |
220 // Returns OK on success. Otherwise deletes nothing and returns an error. | 228 // Returns OK on success. Otherwise deletes nothing and returns an error. |
221 Status ClearPurgeableResourceIds(const std::set<int64>& ids); | 229 Status ClearPurgeableResourceIds(const std::set<int64>& ids); |
222 | 230 |
223 // Moves |ids| from the uncommitted list to the purgeable list. | 231 // Moves |ids| from the uncommitted list to the purgeable list. |
224 // Returns OK on success. Otherwise deletes nothing and returns an error. | 232 // Returns OK on success. Otherwise deletes nothing and returns an error. |
225 Status PurgeUncommittedResourceIds(const std::set<int64>& ids); | 233 Status PurgeUncommittedResourceIds(const std::set<int64>& ids); |
226 | 234 |
| 235 // These *PurgeableFile functions are used for tracking purgeable files placed |
| 236 // under the service worker directory (ie. kServiceWorkerDirectory defined in |
| 237 // ServiceWorkerContextCore). The files should be deletable on the diskcache |
| 238 // thread. |
| 239 |
| 240 // Reads filenames of purgeable files from the database. Returns OK on success |
| 241 // even if there are no purgeable files in the database. |
| 242 Status GetPurgeableFiles(std::vector<std::string>* filenames); |
| 243 |
| 244 // Writes |filename| into the database as a purgeable file. Returns OK on |
| 245 // success. |
| 246 Status WritePurgeableFile(const std::string& filename); |
| 247 |
| 248 // Deletes a purgeable file specified by |filename| from the database. Returns |
| 249 // OK on success. |
| 250 Status ClearPurgeableFile(const std::string& filename); |
| 251 |
227 // Deletes all data for |origins|, namely, unique origin, registrations and | 252 // Deletes all data for |origins|, namely, unique origin, registrations and |
228 // resource records. Resources are moved to the purgeable list. Returns OK if | 253 // resource records. Resources are moved to the purgeable list. Returns OK if |
229 // they are successfully deleted or not found in the database. Otherwise, | 254 // they are successfully deleted or not found in the database. Otherwise, |
230 // returns an error. | 255 // returns an error. |
231 Status DeleteAllDataForOrigins(const std::set<GURL>& origins, | 256 Status DeleteAllDataForOrigins(const std::set<GURL>& origins, |
232 std::vector<int64>* newly_purgeable_resources); | 257 std::vector<int64>* newly_purgeable_resources); |
233 | 258 |
234 // Completely deletes the contents of the database. | 259 // Completely deletes the contents of the database. |
235 // Be careful using this function. | 260 // Be careful using this function. |
236 Status DestroyDatabase(); | 261 Status DestroyDatabase(); |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
363 INITIALIZED, | 388 INITIALIZED, |
364 DISABLED, | 389 DISABLED, |
365 }; | 390 }; |
366 State state_; | 391 State state_; |
367 | 392 |
368 base::SequenceChecker sequence_checker_; | 393 base::SequenceChecker sequence_checker_; |
369 | 394 |
370 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerDatabaseTest, OpenDatabase); | 395 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerDatabaseTest, OpenDatabase); |
371 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerDatabaseTest, OpenDatabase_InMemory); | 396 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerDatabaseTest, OpenDatabase_InMemory); |
372 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerDatabaseTest, DatabaseVersion); | 397 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerDatabaseTest, DatabaseVersion); |
| 398 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerDatabaseTest, DiskCacheVersion); |
373 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerDatabaseTest, GetNextAvailableIds); | 399 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerDatabaseTest, GetNextAvailableIds); |
374 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerDatabaseTest, | 400 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerDatabaseTest, |
375 Registration_UninitializedDatabase); | 401 Registration_UninitializedDatabase); |
376 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerDatabaseTest, | 402 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerDatabaseTest, |
377 UserData_UninitializedDatabase); | 403 UserData_UninitializedDatabase); |
378 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerDatabaseTest, DestroyDatabase); | 404 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerDatabaseTest, DestroyDatabase); |
379 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerDatabaseTest, UpgradeSchemaToVersion2); | 405 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerDatabaseTest, UpgradeSchemaToVersion2); |
380 | 406 |
381 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerDatabase); | 407 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerDatabase); |
382 }; | 408 }; |
383 | 409 |
384 } // namespace content | 410 } // namespace content |
385 | 411 |
386 #endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_DATABASE_H_ | 412 #endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_DATABASE_H_ |
OLD | NEW |