Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 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_STORAGE_H_ | 5 #ifndef CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_STORAGE_H_ |
| 6 #define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_STORAGE_H_ | 6 #define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_STORAGE_H_ |
| 7 | 7 |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <deque> | 10 #include <deque> |
| 11 #include <map> | 11 #include <map> |
| 12 #include <set> | 12 #include <set> |
| 13 #include <string> | 13 #include <string> |
| 14 #include <utility> | |
| 14 #include <vector> | 15 #include <vector> |
| 15 | 16 |
| 16 #include "base/bind.h" | 17 #include "base/bind.h" |
| 17 #include "base/files/file_path.h" | 18 #include "base/files/file_path.h" |
| 18 #include "base/gtest_prod_util.h" | 19 #include "base/gtest_prod_util.h" |
| 19 #include "base/macros.h" | 20 #include "base/macros.h" |
| 20 #include "base/memory/weak_ptr.h" | 21 #include "base/memory/weak_ptr.h" |
| 21 #include "content/browser/service_worker/service_worker_database.h" | 22 #include "content/browser/service_worker/service_worker_database.h" |
| 22 #include "content/browser/service_worker/service_worker_database_task_manager.h" | 23 #include "content/browser/service_worker/service_worker_database_task_manager.h" |
| 23 #include "content/browser/service_worker/service_worker_metrics.h" | 24 #include "content/browser/service_worker/service_worker_metrics.h" |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 61 registration)> FindRegistrationCallback; | 62 registration)> FindRegistrationCallback; |
| 62 typedef base::Callback<void( | 63 typedef base::Callback<void( |
| 63 ServiceWorkerStatusCode status, | 64 ServiceWorkerStatusCode status, |
| 64 const std::vector<scoped_refptr<ServiceWorkerRegistration>>& | 65 const std::vector<scoped_refptr<ServiceWorkerRegistration>>& |
| 65 registrations)> | 66 registrations)> |
| 66 GetRegistrationsCallback; | 67 GetRegistrationsCallback; |
| 67 typedef base::Callback<void( | 68 typedef base::Callback<void( |
| 68 ServiceWorkerStatusCode status, | 69 ServiceWorkerStatusCode status, |
| 69 const std::vector<ServiceWorkerRegistrationInfo>& registrations)> | 70 const std::vector<ServiceWorkerRegistrationInfo>& registrations)> |
| 70 GetRegistrationsInfosCallback; | 71 GetRegistrationsInfosCallback; |
| 71 typedef base::Callback< | 72 using GetUserDataCallback = |
| 72 void(const std::string& data, ServiceWorkerStatusCode status)> | 73 base::Callback<void(const std::vector<std::string>& data, |
| 73 GetUserDataCallback; | 74 ServiceWorkerStatusCode status)>; |
| 74 typedef base::Callback<void( | 75 typedef base::Callback<void( |
| 75 const std::vector<std::pair<int64_t, std::string>>& user_data, | 76 const std::vector<std::pair<int64_t, std::string>>& user_data, |
| 76 ServiceWorkerStatusCode status)> GetUserDataForAllRegistrationsCallback; | 77 ServiceWorkerStatusCode status)> GetUserDataForAllRegistrationsCallback; |
| 77 | 78 |
| 78 ~ServiceWorkerStorage() override; | 79 ~ServiceWorkerStorage() override; |
| 79 | 80 |
| 80 static std::unique_ptr<ServiceWorkerStorage> Create( | 81 static std::unique_ptr<ServiceWorkerStorage> Create( |
| 81 const base::FilePath& path, | 82 const base::FilePath& path, |
| 82 const base::WeakPtr<ServiceWorkerContextCore>& context, | 83 const base::WeakPtr<ServiceWorkerContextCore>& context, |
| 83 std::unique_ptr<ServiceWorkerDatabaseTaskManager> database_task_manager, | 84 std::unique_ptr<ServiceWorkerDatabaseTaskManager> database_task_manager, |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 161 // but not yet stored with a registration. | 162 // but not yet stored with a registration. |
| 162 void StoreUncommittedResourceId(int64_t resource_id); | 163 void StoreUncommittedResourceId(int64_t resource_id); |
| 163 | 164 |
| 164 // Removes resource ids from uncommitted list, adds them to the purgeable list | 165 // Removes resource ids from uncommitted list, adds them to the purgeable list |
| 165 // and purges them. | 166 // and purges them. |
| 166 void DoomUncommittedResource(int64_t resource_id); | 167 void DoomUncommittedResource(int64_t resource_id); |
| 167 void DoomUncommittedResources(const std::set<int64_t>& resource_ids); | 168 void DoomUncommittedResources(const std::set<int64_t>& resource_ids); |
| 168 | 169 |
| 169 // Provide a storage mechanism to read/write arbitrary data associated with | 170 // Provide a storage mechanism to read/write arbitrary data associated with |
| 170 // a registration. Each registration has its own key namespace. Stored data | 171 // a registration. Each registration has its own key namespace. Stored data |
| 171 // is deleted when the associated registraton is deleted. | 172 // is deleted when the associated registraton is deleted. |
|
michaeln
2016/05/03 19:38:06
Can you document what happens when some keys are f
johnme
2016/05/05 10:54:04
Done.
| |
| 172 void GetUserData(int64_t registration_id, | 173 void GetUserData(int64_t registration_id, |
| 173 const std::string& key, | 174 const std::vector<std::string>& keys, |
| 174 const GetUserDataCallback& callback); | 175 const GetUserDataCallback& callback); |
| 175 void StoreUserData(int64_t registration_id, | 176 void StoreUserData( |
| 176 const GURL& origin, | 177 int64_t registration_id, |
| 177 const std::string& key, | 178 const GURL& origin, |
| 178 const std::string& data, | 179 const std::vector<std::pair<std::string, std::string>>& key_value_pairs, |
| 179 const StatusCallback& callback); | 180 const StatusCallback& callback); |
| 180 void ClearUserData(int64_t registration_id, | 181 void ClearUserData(int64_t registration_id, |
| 181 const std::string& key, | 182 const std::vector<std::string>& keys, |
| 182 const StatusCallback& callback); | 183 const StatusCallback& callback); |
| 183 // Returns all registrations that have user data with a particular key, as | 184 // Returns all registrations that have user data with a particular key, as |
| 184 // well as that user data. | 185 // well as that user data. |
| 185 void GetUserDataForAllRegistrations( | 186 void GetUserDataForAllRegistrations( |
| 186 const std::string& key, | 187 const std::string& key, |
| 187 const GetUserDataForAllRegistrationsCallback& callback); | 188 const GetUserDataForAllRegistrationsCallback& callback); |
| 188 | 189 |
| 189 // Returns true if any service workers at |origin| have registered for foreign | 190 // Returns true if any service workers at |origin| have registered for foreign |
| 190 // fetch. | 191 // fetch. |
| 191 bool OriginHasForeignFetchRegistrations(const GURL& origin); | 192 bool OriginHasForeignFetchRegistrations(const GURL& origin); |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 304 ServiceWorkerDatabase::Status status)> WriteRegistrationCallback; | 305 ServiceWorkerDatabase::Status status)> WriteRegistrationCallback; |
| 305 typedef base::Callback<void( | 306 typedef base::Callback<void( |
| 306 OriginState origin_state, | 307 OriginState origin_state, |
| 307 const ServiceWorkerDatabase::RegistrationData& deleted_version_data, | 308 const ServiceWorkerDatabase::RegistrationData& deleted_version_data, |
| 308 const std::vector<int64_t>& newly_purgeable_resources, | 309 const std::vector<int64_t>& newly_purgeable_resources, |
| 309 ServiceWorkerDatabase::Status status)> DeleteRegistrationCallback; | 310 ServiceWorkerDatabase::Status status)> DeleteRegistrationCallback; |
| 310 typedef base::Callback<void( | 311 typedef base::Callback<void( |
| 311 const ServiceWorkerDatabase::RegistrationData& data, | 312 const ServiceWorkerDatabase::RegistrationData& data, |
| 312 const ResourceList& resources, | 313 const ResourceList& resources, |
| 313 ServiceWorkerDatabase::Status status)> FindInDBCallback; | 314 ServiceWorkerDatabase::Status status)> FindInDBCallback; |
| 314 typedef base::Callback<void( | 315 typedef base::Callback<void(const std::vector<std::string>& data, |
| 315 const std::string& data, | 316 ServiceWorkerDatabase::Status)> |
| 316 ServiceWorkerDatabase::Status)> GetUserDataInDBCallback; | 317 GetUserDataInDBCallback; |
| 317 typedef base::Callback<void( | 318 typedef base::Callback<void( |
| 318 const std::vector<std::pair<int64_t, std::string>>& user_data, | 319 const std::vector<std::pair<int64_t, std::string>>& user_data, |
| 319 ServiceWorkerDatabase::Status)> | 320 ServiceWorkerDatabase::Status)> |
| 320 GetUserDataForAllRegistrationsInDBCallback; | 321 GetUserDataForAllRegistrationsInDBCallback; |
| 321 typedef base::Callback<void(const std::vector<int64_t>& resource_ids, | 322 typedef base::Callback<void(const std::vector<int64_t>& resource_ids, |
| 322 ServiceWorkerDatabase::Status status)> | 323 ServiceWorkerDatabase::Status status)> |
| 323 GetResourcesCallback; | 324 GetResourcesCallback; |
| 324 | 325 |
| 325 ServiceWorkerStorage( | 326 ServiceWorkerStorage( |
| 326 const base::FilePath& path, | 327 const base::FilePath& path, |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 379 OriginState origin_state, | 380 OriginState origin_state, |
| 380 const ServiceWorkerDatabase::RegistrationData& deleted_version, | 381 const ServiceWorkerDatabase::RegistrationData& deleted_version, |
| 381 const std::vector<int64_t>& newly_purgeable_resources, | 382 const std::vector<int64_t>& newly_purgeable_resources, |
| 382 ServiceWorkerDatabase::Status status); | 383 ServiceWorkerDatabase::Status status); |
| 383 void DidWriteUncommittedResourceIds(ServiceWorkerDatabase::Status status); | 384 void DidWriteUncommittedResourceIds(ServiceWorkerDatabase::Status status); |
| 384 void DidPurgeUncommittedResourceIds(const std::set<int64_t>& resource_ids, | 385 void DidPurgeUncommittedResourceIds(const std::set<int64_t>& resource_ids, |
| 385 ServiceWorkerDatabase::Status status); | 386 ServiceWorkerDatabase::Status status); |
| 386 void DidStoreUserData( | 387 void DidStoreUserData( |
| 387 const StatusCallback& callback, | 388 const StatusCallback& callback, |
| 388 ServiceWorkerDatabase::Status status); | 389 ServiceWorkerDatabase::Status status); |
| 389 void DidGetUserData( | 390 void DidGetUserData(const GetUserDataCallback& callback, |
| 390 const GetUserDataCallback& callback, | 391 const std::vector<std::string>& data, |
| 391 const std::string& data, | 392 ServiceWorkerDatabase::Status status); |
| 392 ServiceWorkerDatabase::Status status); | |
| 393 void DidDeleteUserData( | 393 void DidDeleteUserData( |
| 394 const StatusCallback& callback, | 394 const StatusCallback& callback, |
| 395 ServiceWorkerDatabase::Status status); | 395 ServiceWorkerDatabase::Status status); |
| 396 void DidGetUserDataForAllRegistrations( | 396 void DidGetUserDataForAllRegistrations( |
| 397 const GetUserDataForAllRegistrationsCallback& callback, | 397 const GetUserDataForAllRegistrationsCallback& callback, |
| 398 const std::vector<std::pair<int64_t, std::string>>& user_data, | 398 const std::vector<std::pair<int64_t, std::string>>& user_data, |
| 399 ServiceWorkerDatabase::Status status); | 399 ServiceWorkerDatabase::Status status); |
| 400 void ReturnFoundRegistration( | 400 void ReturnFoundRegistration( |
| 401 const FindRegistrationCallback& callback, | 401 const FindRegistrationCallback& callback, |
| 402 const ServiceWorkerDatabase::RegistrationData& data, | 402 const ServiceWorkerDatabase::RegistrationData& data, |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 472 const FindInDBCallback& callback); | 472 const FindInDBCallback& callback); |
| 473 static void FindForIdOnlyInDB( | 473 static void FindForIdOnlyInDB( |
| 474 ServiceWorkerDatabase* database, | 474 ServiceWorkerDatabase* database, |
| 475 scoped_refptr<base::SequencedTaskRunner> original_task_runner, | 475 scoped_refptr<base::SequencedTaskRunner> original_task_runner, |
| 476 int64_t registration_id, | 476 int64_t registration_id, |
| 477 const FindInDBCallback& callback); | 477 const FindInDBCallback& callback); |
| 478 static void GetUserDataInDB( | 478 static void GetUserDataInDB( |
| 479 ServiceWorkerDatabase* database, | 479 ServiceWorkerDatabase* database, |
| 480 scoped_refptr<base::SequencedTaskRunner> original_task_runner, | 480 scoped_refptr<base::SequencedTaskRunner> original_task_runner, |
| 481 int64_t registration_id, | 481 int64_t registration_id, |
| 482 const std::string& key, | 482 const std::vector<std::string>& keys, |
| 483 const GetUserDataInDBCallback& callback); | 483 const GetUserDataInDBCallback& callback); |
| 484 static void GetUserDataForAllRegistrationsInDB( | 484 static void GetUserDataForAllRegistrationsInDB( |
| 485 ServiceWorkerDatabase* database, | 485 ServiceWorkerDatabase* database, |
| 486 scoped_refptr<base::SequencedTaskRunner> original_task_runner, | 486 scoped_refptr<base::SequencedTaskRunner> original_task_runner, |
| 487 const std::string& key, | 487 const std::string& key, |
| 488 const GetUserDataForAllRegistrationsInDBCallback& callback); | 488 const GetUserDataForAllRegistrationsInDBCallback& callback); |
| 489 static void DeleteAllDataForOriginsFromDB( | 489 static void DeleteAllDataForOriginsFromDB( |
| 490 ServiceWorkerDatabase* database, | 490 ServiceWorkerDatabase* database, |
| 491 const std::set<GURL>& origins); | 491 const std::set<GURL>& origins); |
| 492 | 492 |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 543 std::set<int64_t> pending_deletions_; | 543 std::set<int64_t> pending_deletions_; |
| 544 | 544 |
| 545 base::WeakPtrFactory<ServiceWorkerStorage> weak_factory_; | 545 base::WeakPtrFactory<ServiceWorkerStorage> weak_factory_; |
| 546 | 546 |
| 547 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerStorage); | 547 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerStorage); |
| 548 }; | 548 }; |
| 549 | 549 |
| 550 } // namespace content | 550 } // namespace content |
| 551 | 551 |
| 552 #endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_STORAGE_H_ | 552 #endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_STORAGE_H_ |
| OLD | NEW |