Index: content/browser/service_worker/service_worker_version.h |
diff --git a/content/browser/service_worker/service_worker_version.h b/content/browser/service_worker/service_worker_version.h |
index 0e368ab3c619bd97a8834f44dbbe84ff16382f78..c6dc1eb91de3f5298969696b782c7c78c823a57b 100644 |
--- a/content/browser/service_worker/service_worker_version.h |
+++ b/content/browser/service_worker/service_worker_version.h |
@@ -134,8 +134,13 @@ class CONTENT_EXPORT ServiceWorkerVersion |
} |
ServiceWorkerVersionInfo GetInfo(); |
Status status() const { return status_; } |
- bool has_fetch_handler() const { return has_fetch_handler_; } |
+ |
+ // This flag is set when the install event has been executed in a new version |
+ // or when an installed version is loaded from the storage. When a new version |
+ // is not installed yet, returns base::nullopt. |
+ base::Optional<bool> has_fetch_handler() const { return has_fetch_handler_; } |
void set_has_fetch_handler(bool has_fetch_handler) { |
+ DCHECK(!has_fetch_handler_); |
has_fetch_handler_ = has_fetch_handler; |
} |
@@ -663,7 +668,7 @@ class CONTENT_EXPORT ServiceWorkerVersion |
const GURL scope_; |
std::vector<GURL> foreign_fetch_scopes_; |
std::vector<url::Origin> foreign_fetch_origins_; |
- bool has_fetch_handler_ = true; |
+ base::Optional<bool> has_fetch_handler_; |
Status status_ = NEW; |
std::unique_ptr<EmbeddedWorkerInstance> embedded_worker_; |