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

Unified Diff: content/browser/service_worker/service_worker_database.cc

Issue 633873002: Service Worker: Respect the "clear on exit" content setting (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@contentsettings
Patch Set: sync Created 6 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/service_worker/service_worker_database.cc
diff --git a/content/browser/service_worker/service_worker_database.cc b/content/browser/service_worker/service_worker_database.cc
index 0bd5bbc09fd3012698773898a07a069ef2a458b5..9654d02f6fe616336fc749059ff904ef09311d3e 100644
--- a/content/browser/service_worker/service_worker_database.cc
+++ b/content/browser/service_worker/service_worker_database.cc
@@ -687,8 +687,8 @@ ServiceWorkerDatabase::PurgeUncommittedResourceIds(
return WriteBatch(&batch);
}
-ServiceWorkerDatabase::Status ServiceWorkerDatabase::DeleteAllDataForOrigin(
- const GURL& origin,
+ServiceWorkerDatabase::Status ServiceWorkerDatabase::DeleteAllDataForOrigins(
+ const std::set<GURL>& origins,
std::vector<int64>* newly_purgeable_resources) {
DCHECK(sequence_checker_.CalledOnValidSequencedThread());
Status status = LazyOpen(false);
@@ -696,27 +696,28 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::DeleteAllDataForOrigin(
return STATUS_OK;
if (status != STATUS_OK)
return status;
- if (!origin.is_valid())
- return STATUS_ERROR_FAILED;
-
leveldb::WriteBatch batch;
- // Delete from the unique origin list.
- batch.Delete(CreateUniqueOriginKey(origin));
+ for (const GURL& origin : origins) {
+ if (!origin.is_valid())
+ return STATUS_ERROR_FAILED;
- std::vector<RegistrationData> registrations;
- status = GetRegistrationsForOrigin(origin, &registrations);
- if (status != STATUS_OK)
- return status;
+ // Delete from the unique origin list.
+ batch.Delete(CreateUniqueOriginKey(origin));
- // Delete registrations and resource records.
- for (std::vector<RegistrationData>::const_iterator itr =
- registrations.begin(); itr != registrations.end(); ++itr) {
- batch.Delete(CreateRegistrationKey(itr->registration_id, origin));
- status = DeleteResourceRecords(
- itr->version_id, newly_purgeable_resources, &batch);
+ std::vector<RegistrationData> registrations;
+ status = GetRegistrationsForOrigin(origin, &registrations);
if (status != STATUS_OK)
return status;
+
+ // Delete registrations and resource records.
+ for (const RegistrationData& data : registrations) {
+ batch.Delete(CreateRegistrationKey(data.registration_id, origin));
+ status = DeleteResourceRecords(
+ data.version_id, newly_purgeable_resources, &batch);
+ if (status != STATUS_OK)
+ return status;
+ }
}
return WriteBatch(&batch);

Powered by Google App Engine
This is Rietveld 408576698