Commit fa0d2774 authored by Kenichi Ishibashi's avatar Kenichi Ishibashi Committed by Commit Bot

Add ServiceWorkerStorageControl::GetAllRegistrations()

This is a wrapper of ServiceWorkerStorage::GetAllRegistrations().

Bug: 1055677
Change-Id: I3c4155348c34f247b396d9312bb8b31ace7ffc42
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2319929Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Reviewed-by: default avatarMakoto Shimazu <shimazu@chromium.org>
Commit-Queue: Kenichi Ishibashi <bashi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#792473}
parent c2888fa9
...@@ -139,6 +139,13 @@ interface ServiceWorkerStorageControl { ...@@ -139,6 +139,13 @@ interface ServiceWorkerStorageControl {
GetUsageForOrigin(url.mojom.Origin origin) => GetUsageForOrigin(url.mojom.Origin origin) =>
(ServiceWorkerDatabaseStatus status, int64 usage); (ServiceWorkerDatabaseStatus status, int64 usage);
// Returns all stored registrations.
// NOTE: Don't use this method for new code. Reading all registrations
// from storage doesn't scale. See https://crbug.com/807440 for details.
GetAllRegistrationsDeprecated() =>
(ServiceWorkerDatabaseStatus status,
array<ServiceWorkerRegistrationData> registrations);
// Stores |registration_data| and |resources|. // Stores |registration_data| and |resources|.
StoreRegistration(ServiceWorkerRegistrationData registration, StoreRegistration(ServiceWorkerRegistrationData registration,
array<ServiceWorkerResourceRecord> resources) => array<ServiceWorkerResourceRecord> resources) =>
......
...@@ -306,7 +306,7 @@ void ServiceWorkerRegistry::GetStorageUsageForOrigin( ...@@ -306,7 +306,7 @@ void ServiceWorkerRegistry::GetStorageUsageForOrigin(
void ServiceWorkerRegistry::GetAllRegistrationsInfos( void ServiceWorkerRegistry::GetAllRegistrationsInfos(
GetRegistrationsInfosCallback callback) { GetRegistrationsInfosCallback callback) {
DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId()); DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId());
storage()->GetAllRegistrations( GetRemoteStorageControl()->GetAllRegistrationsDeprecated(
base::BindOnce(&ServiceWorkerRegistry::DidGetAllRegistrations, base::BindOnce(&ServiceWorkerRegistry::DidGetAllRegistrations,
weak_factory_.GetWeakPtr(), std::move(callback))); weak_factory_.GetWeakPtr(), std::move(callback)));
} }
...@@ -1043,7 +1043,7 @@ void ServiceWorkerRegistry::DidGetRegistrationsForOrigin( ...@@ -1043,7 +1043,7 @@ void ServiceWorkerRegistry::DidGetRegistrationsForOrigin(
void ServiceWorkerRegistry::DidGetAllRegistrations( void ServiceWorkerRegistry::DidGetAllRegistrations(
GetRegistrationsInfosCallback callback, GetRegistrationsInfosCallback callback,
storage::mojom::ServiceWorkerDatabaseStatus database_status, storage::mojom::ServiceWorkerDatabaseStatus database_status,
std::unique_ptr<RegistrationList> registration_data_list) { RegistrationList registration_data_list) {
DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId()); DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId());
blink::ServiceWorkerStatusCode status = blink::ServiceWorkerStatusCode status =
DatabaseStatusToStatusCode(database_status); DatabaseStatusToStatusCode(database_status);
...@@ -1056,12 +1056,10 @@ void ServiceWorkerRegistry::DidGetAllRegistrations( ...@@ -1056,12 +1056,10 @@ void ServiceWorkerRegistry::DidGetAllRegistrations(
return; return;
} }
DCHECK(registration_data_list);
// Add all stored registrations. // Add all stored registrations.
std::set<int64_t> pushed_registrations; std::set<int64_t> pushed_registrations;
std::vector<ServiceWorkerRegistrationInfo> infos; std::vector<ServiceWorkerRegistrationInfo> infos;
for (const auto& registration_data : *registration_data_list) { for (const auto& registration_data : registration_data_list) {
const bool inserted = const bool inserted =
pushed_registrations.insert(registration_data->registration_id).second; pushed_registrations.insert(registration_data->registration_id).second;
DCHECK(inserted); DCHECK(inserted);
......
...@@ -296,7 +296,7 @@ class CONTENT_EXPORT ServiceWorkerRegistry { ...@@ -296,7 +296,7 @@ class CONTENT_EXPORT ServiceWorkerRegistry {
void DidGetAllRegistrations( void DidGetAllRegistrations(
GetRegistrationsInfosCallback callback, GetRegistrationsInfosCallback callback,
storage::mojom::ServiceWorkerDatabaseStatus database_status, storage::mojom::ServiceWorkerDatabaseStatus database_status,
std::unique_ptr<RegistrationList> registration_data_list); RegistrationList registration_data_list);
void DidStoreRegistration( void DidStoreRegistration(
int64_t stored_registration_id, int64_t stored_registration_id,
......
...@@ -55,6 +55,19 @@ void DidGetUserDataForAllRegistrations( ...@@ -55,6 +55,19 @@ void DidGetUserDataForAllRegistrations(
std::move(callback).Run(status, std::move(values)); std::move(callback).Run(status, std::move(values));
} }
void DidGetAllRegistrations(
ServiceWorkerStorageControlImpl::GetAllRegistrationsDeprecatedCallback
callback,
storage::mojom::ServiceWorkerDatabaseStatus status,
std::unique_ptr<ServiceWorkerStorage::RegistrationList> registrations) {
if (status != storage::mojom::ServiceWorkerDatabaseStatus::kOk) {
std::move(callback).Run(status, ServiceWorkerStorage::RegistrationList());
return;
}
DCHECK(registrations);
std::move(callback).Run(status, std::move(*registrations));
}
} // namespace } // namespace
class ServiceWorkerLiveVersionRefImpl class ServiceWorkerLiveVersionRefImpl
...@@ -181,6 +194,12 @@ void ServiceWorkerStorageControlImpl::GetUsageForOrigin( ...@@ -181,6 +194,12 @@ void ServiceWorkerStorageControlImpl::GetUsageForOrigin(
storage_->GetUsageForOrigin(origin, std::move(callback)); storage_->GetUsageForOrigin(origin, std::move(callback));
} }
void ServiceWorkerStorageControlImpl::GetAllRegistrationsDeprecated(
GetAllRegistrationsDeprecatedCallback callback) {
storage_->GetAllRegistrations(
base::BindOnce(&DidGetAllRegistrations, std::move(callback)));
}
void ServiceWorkerStorageControlImpl::StoreRegistration( void ServiceWorkerStorageControlImpl::StoreRegistration(
storage::mojom::ServiceWorkerRegistrationDataPtr registration, storage::mojom::ServiceWorkerRegistrationDataPtr registration,
std::vector<storage::mojom::ServiceWorkerResourceRecordPtr> resources, std::vector<storage::mojom::ServiceWorkerResourceRecordPtr> resources,
......
...@@ -64,6 +64,8 @@ class CONTENT_EXPORT ServiceWorkerStorageControlImpl ...@@ -64,6 +64,8 @@ class CONTENT_EXPORT ServiceWorkerStorageControlImpl
GetRegistrationsForOriginCallback callback) override; GetRegistrationsForOriginCallback callback) override;
void GetUsageForOrigin(const url::Origin& origin, void GetUsageForOrigin(const url::Origin& origin,
GetUsageForOriginCallback callback) override; GetUsageForOriginCallback callback) override;
void GetAllRegistrationsDeprecated(
GetAllRegistrationsDeprecatedCallback calback) override;
void StoreRegistration( void StoreRegistration(
storage::mojom::ServiceWorkerRegistrationDataPtr registration, storage::mojom::ServiceWorkerRegistrationDataPtr registration,
std::vector<storage::mojom::ServiceWorkerResourceRecordPtr> resources, std::vector<storage::mojom::ServiceWorkerResourceRecordPtr> resources,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment