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

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: 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 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698