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

Side by Side Diff: content/browser/service_worker/service_worker_storage.h

Issue 1945753002: Make Service Worker DB UserData methods accept multiple keys at once (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@iid6encrypt
Patch Set: Rebase Created 4 years, 7 months 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
OLDNEW
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
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 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 // Adds |resource_id| to the set of resources that are in the disk cache 161 // Adds |resource_id| to the set of resources that are in the disk cache
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.
171 // is deleted when the associated registraton is deleted. 172 // GetUserData responds OK only if all keys are found; otherwise NOT_FOUND,
173 // and the callback's data will be empty.
172 void GetUserData(int64_t registration_id, 174 void GetUserData(int64_t registration_id,
173 const std::string& key, 175 const std::vector<std::string>& keys,
174 const GetUserDataCallback& callback); 176 const GetUserDataCallback& callback);
175 void StoreUserData(int64_t registration_id, 177 // Stored data is deleted when the associated registraton is deleted.
176 const GURL& origin, 178 void StoreUserData(
177 const std::string& key, 179 int64_t registration_id,
178 const std::string& data, 180 const GURL& origin,
181 const std::vector<std::pair<std::string, std::string>>& key_value_pairs,
182 const StatusCallback& callback);
183 // Responds OK if all are successfully deleted or not found in the database.
184 void ClearUserData(int64_t registration_id,
185 const std::vector<std::string>& keys,
179 const StatusCallback& callback); 186 const StatusCallback& callback);
180 void ClearUserData(int64_t registration_id, 187 // Responds with all registrations that have user data with a particular key,
181 const std::string& key, 188 // as well as that user data.
182 const StatusCallback& callback);
183 // Returns all registrations that have user data with a particular key, as
184 // well as that user data.
185 void GetUserDataForAllRegistrations( 189 void GetUserDataForAllRegistrations(
186 const std::string& key, 190 const std::string& key,
187 const GetUserDataForAllRegistrationsCallback& callback); 191 const GetUserDataForAllRegistrationsCallback& callback);
188 192
189 // Returns true if any service workers at |origin| have registered for foreign 193 // Returns true if any service workers at |origin| have registered for foreign
190 // fetch. 194 // fetch.
191 bool OriginHasForeignFetchRegistrations(const GURL& origin); 195 bool OriginHasForeignFetchRegistrations(const GURL& origin);
192 196
193 // Deletes the storage and starts over. 197 // Deletes the storage and starts over.
194 void DeleteAndStartOver(const StatusCallback& callback); 198 void DeleteAndStartOver(const StatusCallback& callback);
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 ServiceWorkerDatabase::Status status)> WriteRegistrationCallback; 308 ServiceWorkerDatabase::Status status)> WriteRegistrationCallback;
305 typedef base::Callback<void( 309 typedef base::Callback<void(
306 OriginState origin_state, 310 OriginState origin_state,
307 const ServiceWorkerDatabase::RegistrationData& deleted_version_data, 311 const ServiceWorkerDatabase::RegistrationData& deleted_version_data,
308 const std::vector<int64_t>& newly_purgeable_resources, 312 const std::vector<int64_t>& newly_purgeable_resources,
309 ServiceWorkerDatabase::Status status)> DeleteRegistrationCallback; 313 ServiceWorkerDatabase::Status status)> DeleteRegistrationCallback;
310 typedef base::Callback<void( 314 typedef base::Callback<void(
311 const ServiceWorkerDatabase::RegistrationData& data, 315 const ServiceWorkerDatabase::RegistrationData& data,
312 const ResourceList& resources, 316 const ResourceList& resources,
313 ServiceWorkerDatabase::Status status)> FindInDBCallback; 317 ServiceWorkerDatabase::Status status)> FindInDBCallback;
314 typedef base::Callback<void( 318 typedef base::Callback<void(const std::vector<std::string>& data,
315 const std::string& data, 319 ServiceWorkerDatabase::Status)>
316 ServiceWorkerDatabase::Status)> GetUserDataInDBCallback; 320 GetUserDataInDBCallback;
317 typedef base::Callback<void( 321 typedef base::Callback<void(
318 const std::vector<std::pair<int64_t, std::string>>& user_data, 322 const std::vector<std::pair<int64_t, std::string>>& user_data,
319 ServiceWorkerDatabase::Status)> 323 ServiceWorkerDatabase::Status)>
320 GetUserDataForAllRegistrationsInDBCallback; 324 GetUserDataForAllRegistrationsInDBCallback;
321 typedef base::Callback<void(const std::vector<int64_t>& resource_ids, 325 typedef base::Callback<void(const std::vector<int64_t>& resource_ids,
322 ServiceWorkerDatabase::Status status)> 326 ServiceWorkerDatabase::Status status)>
323 GetResourcesCallback; 327 GetResourcesCallback;
324 328
325 ServiceWorkerStorage( 329 ServiceWorkerStorage(
326 const base::FilePath& path, 330 const base::FilePath& path,
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 OriginState origin_state, 383 OriginState origin_state,
380 const ServiceWorkerDatabase::RegistrationData& deleted_version, 384 const ServiceWorkerDatabase::RegistrationData& deleted_version,
381 const std::vector<int64_t>& newly_purgeable_resources, 385 const std::vector<int64_t>& newly_purgeable_resources,
382 ServiceWorkerDatabase::Status status); 386 ServiceWorkerDatabase::Status status);
383 void DidWriteUncommittedResourceIds(ServiceWorkerDatabase::Status status); 387 void DidWriteUncommittedResourceIds(ServiceWorkerDatabase::Status status);
384 void DidPurgeUncommittedResourceIds(const std::set<int64_t>& resource_ids, 388 void DidPurgeUncommittedResourceIds(const std::set<int64_t>& resource_ids,
385 ServiceWorkerDatabase::Status status); 389 ServiceWorkerDatabase::Status status);
386 void DidStoreUserData( 390 void DidStoreUserData(
387 const StatusCallback& callback, 391 const StatusCallback& callback,
388 ServiceWorkerDatabase::Status status); 392 ServiceWorkerDatabase::Status status);
389 void DidGetUserData( 393 void DidGetUserData(const GetUserDataCallback& callback,
390 const GetUserDataCallback& callback, 394 const std::vector<std::string>& data,
391 const std::string& data, 395 ServiceWorkerDatabase::Status status);
392 ServiceWorkerDatabase::Status status);
393 void DidDeleteUserData( 396 void DidDeleteUserData(
394 const StatusCallback& callback, 397 const StatusCallback& callback,
395 ServiceWorkerDatabase::Status status); 398 ServiceWorkerDatabase::Status status);
396 void DidGetUserDataForAllRegistrations( 399 void DidGetUserDataForAllRegistrations(
397 const GetUserDataForAllRegistrationsCallback& callback, 400 const GetUserDataForAllRegistrationsCallback& callback,
398 const std::vector<std::pair<int64_t, std::string>>& user_data, 401 const std::vector<std::pair<int64_t, std::string>>& user_data,
399 ServiceWorkerDatabase::Status status); 402 ServiceWorkerDatabase::Status status);
400 void ReturnFoundRegistration( 403 void ReturnFoundRegistration(
401 const FindRegistrationCallback& callback, 404 const FindRegistrationCallback& callback,
402 const ServiceWorkerDatabase::RegistrationData& data, 405 const ServiceWorkerDatabase::RegistrationData& data,
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 const FindInDBCallback& callback); 475 const FindInDBCallback& callback);
473 static void FindForIdOnlyInDB( 476 static void FindForIdOnlyInDB(
474 ServiceWorkerDatabase* database, 477 ServiceWorkerDatabase* database,
475 scoped_refptr<base::SequencedTaskRunner> original_task_runner, 478 scoped_refptr<base::SequencedTaskRunner> original_task_runner,
476 int64_t registration_id, 479 int64_t registration_id,
477 const FindInDBCallback& callback); 480 const FindInDBCallback& callback);
478 static void GetUserDataInDB( 481 static void GetUserDataInDB(
479 ServiceWorkerDatabase* database, 482 ServiceWorkerDatabase* database,
480 scoped_refptr<base::SequencedTaskRunner> original_task_runner, 483 scoped_refptr<base::SequencedTaskRunner> original_task_runner,
481 int64_t registration_id, 484 int64_t registration_id,
482 const std::string& key, 485 const std::vector<std::string>& keys,
483 const GetUserDataInDBCallback& callback); 486 const GetUserDataInDBCallback& callback);
484 static void GetUserDataForAllRegistrationsInDB( 487 static void GetUserDataForAllRegistrationsInDB(
485 ServiceWorkerDatabase* database, 488 ServiceWorkerDatabase* database,
486 scoped_refptr<base::SequencedTaskRunner> original_task_runner, 489 scoped_refptr<base::SequencedTaskRunner> original_task_runner,
487 const std::string& key, 490 const std::string& key,
488 const GetUserDataForAllRegistrationsInDBCallback& callback); 491 const GetUserDataForAllRegistrationsInDBCallback& callback);
489 static void DeleteAllDataForOriginsFromDB( 492 static void DeleteAllDataForOriginsFromDB(
490 ServiceWorkerDatabase* database, 493 ServiceWorkerDatabase* database,
491 const std::set<GURL>& origins); 494 const std::set<GURL>& origins);
492 495
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
543 std::set<int64_t> pending_deletions_; 546 std::set<int64_t> pending_deletions_;
544 547
545 base::WeakPtrFactory<ServiceWorkerStorage> weak_factory_; 548 base::WeakPtrFactory<ServiceWorkerStorage> weak_factory_;
546 549
547 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerStorage); 550 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerStorage);
548 }; 551 };
549 552
550 } // namespace content 553 } // namespace content
551 554
552 #endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_STORAGE_H_ 555 #endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_STORAGE_H_
OLDNEW
« no previous file with comments | « content/browser/service_worker/service_worker_registration.h ('k') | content/browser/service_worker/service_worker_storage.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698