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

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

Issue 345583002: ServiceWorker: Add a function to abort all pending jobs in SWJobCoordinator (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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_job_coordinator.cc
diff --git a/content/browser/service_worker/service_worker_job_coordinator.cc b/content/browser/service_worker/service_worker_job_coordinator.cc
index f2b54389d1175e19292c0a9ed8ef78fad7ddf458..6da772c54efae2411676d3bfbc8721754c03da05 100644
--- a/content/browser/service_worker/service_worker_job_coordinator.cc
+++ b/content/browser/service_worker/service_worker_job_coordinator.cc
@@ -41,6 +41,14 @@ void ServiceWorkerJobCoordinator::JobQueue::Pop(
jobs_.front()->Start();
}
+void ServiceWorkerJobCoordinator::JobQueue::AbortAll() {
+ for (std::deque<ServiceWorkerRegisterJobBase*>::iterator it = jobs_.begin();
+ it != jobs_.end(); ++it) {
+ (*it)->Abort();
+ }
+ STLDeleteElements(&jobs_);
+}
+
void ServiceWorkerJobCoordinator::JobQueue::ClearForShutdown() {
STLDeleteElements(&jobs_);
}
@@ -84,6 +92,14 @@ void ServiceWorkerJobCoordinator::Unregister(
queued_job->AddCallback(callback);
}
+void ServiceWorkerJobCoordinator::AbortAll() {
+ for (RegistrationJobMap::iterator it = jobs_.begin();
+ it != jobs_.end(); ++it) {
+ it->second.AbortAll();
+ }
+ jobs_.clear();
+}
+
void ServiceWorkerJobCoordinator::FinishJob(const GURL& pattern,
ServiceWorkerRegisterJobBase* job) {
RegistrationJobMap::iterator pending_jobs = jobs_.find(pattern);

Powered by Google App Engine
This is Rietveld 408576698