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

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

Issue 1098083003: Evict Service Worker when reading it from disk cache fails. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rm friend Created 5 years, 8 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_read_from_cache_job.cc
diff --git a/content/browser/service_worker/service_worker_read_from_cache_job.cc b/content/browser/service_worker/service_worker_read_from_cache_job.cc
index 094bd73d35b3c596278a9cd7268aa98fcd294b38..3f269a941ec5199985acedd5dfca7aff402ba3c1 100644
--- a/content/browser/service_worker/service_worker_read_from_cache_job.cc
+++ b/content/browser/service_worker/service_worker_read_from_cache_job.cc
@@ -11,6 +11,7 @@
#include "content/browser/service_worker/service_worker_context_core.h"
#include "content/browser/service_worker/service_worker_disk_cache.h"
#include "content/browser/service_worker/service_worker_metrics.h"
+#include "content/public/browser/browser_thread.h"
#include "net/base/io_buffer.h"
#include "net/base/net_errors.h"
#include "net/http/http_request_headers.h"
@@ -195,7 +196,15 @@ void ServiceWorkerReadFromCacheJob::SetupRangeResponse(int resource_size) {
void ServiceWorkerReadFromCacheJob::Done(const net::URLRequestStatus& status) {
if (!status.is_success()) {
version_->SetStartWorkerStatusCode(SERVICE_WORKER_ERROR_DISK_CACHE);
- // TODO(falken): Retry and evict the SW if it fails again.
+ // TODO(falken): Retry before evicting.
+ if (context_) {
+ ServiceWorkerRegistration* registration =
+ context_->GetLiveRegistration(version_->registration_id());
+ BrowserThread::PostTask(
+ BrowserThread::IO, FROM_HERE,
+ base::Bind(&ServiceWorkerRegistration::DeleteVersion,
+ make_scoped_refptr(registration), version_));
+ }
}
NotifyDone(status);
}

Powered by Google App Engine
This is Rietveld 408576698