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 6c2d57ab5cfc1f8be429d8d3593a495c77b449b3..aa50909372fee55a70d885e324aa36f7c17b85b4 100644 |
--- a/content/browser/service_worker/service_worker_storage.cc |
+++ b/content/browser/service_worker/service_worker_storage.cc |
@@ -394,11 +394,15 @@ void ServiceWorkerStorage::StoreRegistration( |
return; |
} |
+ DCHECK_NE(version->fetch_handler_status(), |
+ ServiceWorkerVersion::FetchHandlerStatus::UNKNOWN); |
+ |
ServiceWorkerDatabase::RegistrationData data; |
data.registration_id = registration->id(); |
data.scope = registration->pattern(); |
data.script = version->script_url(); |
- data.has_fetch_handler = version->has_fetch_handler(); |
+ data.has_fetch_handler = version->fetch_handler_status() == |
+ ServiceWorkerVersion::FetchHandlerStatus::EXISTS; |
data.version_id = version->version_id(); |
data.last_update_check = registration->last_update_check(); |
data.is_active = (version == registration->active_version()); |
@@ -1243,12 +1247,15 @@ ServiceWorkerStorage::GetOrCreateRegistration( |
if (!version) { |
version = new ServiceWorkerVersion( |
registration.get(), data.script, data.version_id, context_); |
+ version->set_fetch_handler_status( |
+ data.has_fetch_handler |
+ ? ServiceWorkerVersion::FetchHandlerStatus::EXISTS |
+ : ServiceWorkerVersion::FetchHandlerStatus::DOES_NOT_EXIST); |
version->SetStatus(data.is_active ? |
ServiceWorkerVersion::ACTIVATED : ServiceWorkerVersion::INSTALLED); |
version->script_cache_map()->SetResources(resources); |
version->set_foreign_fetch_scopes(data.foreign_fetch_scopes); |
version->set_foreign_fetch_origins(data.foreign_fetch_origins); |
- version->set_has_fetch_handler(data.has_fetch_handler); |
} |
if (version->status() == ServiceWorkerVersion::ACTIVATED) |