| 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 9b1dc4d9e3bcd77bb4785f6a358383239cf0a8bb..37bb74a94494f052ad8fc907c15f01e66a5404b9 100644
|
| --- a/content/browser/service_worker/service_worker_version.h
|
| +++ b/content/browser/service_worker/service_worker_version.h
|
| @@ -248,11 +248,15 @@ class CONTENT_EXPORT ServiceWorkerVersion
|
| void Doom();
|
| bool is_doomed() const { return is_doomed_; }
|
|
|
| + // If |keep_alive_mode| is set to true we don't run stop-worker-timer.
|
| + void SetKeepAliveMode(bool keep_alive);
|
| +
|
| private:
|
| friend class base::RefCounted<ServiceWorkerVersion>;
|
| FRIEND_TEST_ALL_PREFIXES(ServiceWorkerControlleeRequestHandlerTest,
|
| ActivateWaitingVersion);
|
| FRIEND_TEST_ALL_PREFIXES(ServiceWorkerVersionTest, ScheduleStopWorker);
|
| + FRIEND_TEST_ALL_PREFIXES(ServiceWorkerVersionTest, KeepAlive);
|
| FRIEND_TEST_ALL_PREFIXES(ServiceWorkerVersionTest, ListenerAvailability);
|
| typedef ServiceWorkerVersion self;
|
| typedef std::map<ServiceWorkerProviderHost*, int> ControlleeMap;
|
| @@ -304,6 +308,10 @@ class CONTENT_EXPORT ServiceWorkerVersion
|
| const std::vector<int>& sent_message_port_ids);
|
|
|
| void ScheduleStopWorker();
|
| + void CancelStopWorker();
|
| + void MaybeStopWorker();
|
| + bool HasInflightRequests() const;
|
| +
|
| void DoomInternal();
|
|
|
| const int64 version_id_;
|
| @@ -317,7 +325,8 @@ class CONTENT_EXPORT ServiceWorkerVersion
|
| std::vector<StatusCallback> stop_callbacks_;
|
| std::vector<base::Closure> status_change_callbacks_;
|
|
|
| - // Message callbacks.
|
| + // Message callbacks. (Update HasInflightRequests() too when you update this
|
| + // list.)
|
| IDMap<StatusCallback, IDMapOwnPointer> activate_callbacks_;
|
| IDMap<StatusCallback, IDMapOwnPointer> install_callbacks_;
|
| IDMap<FetchCallback, IDMapOwnPointer> fetch_callbacks_;
|
| @@ -334,6 +343,7 @@ class CONTENT_EXPORT ServiceWorkerVersion
|
| base::OneShotTimer<ServiceWorkerVersion> stop_worker_timer_;
|
| base::OneShotTimer<ServiceWorkerVersion> update_timer_;
|
| bool is_doomed_;
|
| + bool keep_alive_mode_;
|
|
|
| base::WeakPtrFactory<ServiceWorkerVersion> weak_factory_;
|
|
|
|
|