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

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

Issue 457903002: After 24 hours, bust the browser cache when checking for ServiceWorker updates (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 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_storage.cc
diff --git a/content/browser/service_worker/service_worker_storage.cc b/content/browser/service_worker/service_worker_storage.cc
index 6c25698b94080e101d9c8236cf62f501486c8e4c..38e8c621a098128a3013ce97ce5134329ce16bae 100644
--- a/content/browser/service_worker/service_worker_storage.cc
+++ b/content/browser/service_worker/service_worker_storage.cc
@@ -433,7 +433,7 @@ void ServiceWorkerStorage::StoreRegistration(
data.script = registration->script_url();
data.has_fetch_handler = true;
data.version_id = version->version_id();
- data.last_update_check = base::Time::Now();
+ data.last_update_check = registration->last_update_check();
data.is_active = (version == registration->active_version());
ResourceList resources;
@@ -478,6 +478,24 @@ void ServiceWorkerStorage::UpdateToActiveState(
callback));
}
+void ServiceWorkerStorage::UpdateLastUpdateCheckTime(
+ ServiceWorkerRegistration* registration) {
+ DCHECK(registration);
+
+ DCHECK(state_ == INITIALIZED || state_ == DISABLED) << state_;
+ if (IsDisabled() || !context_)
+ return;
+
+ database_task_runner_->PostTask(
+ FROM_HERE,
+ base::Bind(
+ base::IgnoreResult(&ServiceWorkerDatabase::UpdateLastCheckTime),
+ base::Unretained(database_.get()),
+ registration->id(),
+ registration->script_url().GetOrigin(),
+ registration->last_update_check()));
+}
+
void ServiceWorkerStorage::DeleteRegistration(
int64 registration_id,
const GURL& origin,
@@ -954,6 +972,7 @@ ServiceWorkerStorage::GetOrCreateRegistration(
registration = new ServiceWorkerRegistration(
data.scope, data.script, data.registration_id, context_);
+ registration->set_last_update_check(data.last_update_check);
if (pending_deletions_.find(data.registration_id) !=
pending_deletions_.end()) {
registration->set_is_deleted(true);

Powered by Google App Engine
This is Rietveld 408576698