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 bbebd9e8c9f5036bf0000d6b7aa74389f5fb10ab..8c7c6ee124cec798e372821dec0d77ccdf8c170f 100644 |
--- a/content/browser/service_worker/service_worker_version.h |
+++ b/content/browser/service_worker/service_worker_version.h |
@@ -413,6 +413,12 @@ class CONTENT_EXPORT ServiceWorkerVersion |
return external_request_uuid_to_request_id_.size(); |
} |
+ // Returns the amount of time left until the request with the latest |
+ // expiration time expires. |
+ base::TimeDelta remaining_timeout() const { |
+ return max_request_expiration_time_ - tick_clock_->NowTicks(); |
+ } |
+ |
private: |
friend class base::RefCounted<ServiceWorkerVersion>; |
friend class ServiceWorkerMetrics; |
@@ -455,6 +461,7 @@ class CONTENT_EXPORT ServiceWorkerVersion |
FRIEND_TEST_ALL_PREFIXES(ServiceWorkerActivationTest, SkipWaiting); |
FRIEND_TEST_ALL_PREFIXES(ServiceWorkerActivationTest, |
SkipWaitingWithInflightRequest); |
+ FRIEND_TEST_ALL_PREFIXES(ServiceWorkerVersionBrowserTest, MessageSelf); |
class Metrics; |
class PingController; |
@@ -588,6 +595,8 @@ class CONTENT_EXPORT ServiceWorkerVersion |
static const int kRequestTimeoutMinutes; |
// Timeout for the worker to stop. |
static const int kStopWorkerTimeoutSeconds; |
+ // Time to wait until stopping an idle worker. |
+ static const int kIdleWorkerTimeoutSeconds; |
~ServiceWorkerVersion() override; |
@@ -795,6 +804,8 @@ class CONTENT_EXPORT ServiceWorkerVersion |
// long. |
base::TimeTicks stale_time_; |
+ base::TimeTicks max_request_expiration_time_; |
falken
2016/11/21 08:01:48
nit: All these times are hard to keep track off so
Marijn Kruisselbrink
2016/12/01 19:54:30
Done
|
+ |
// Keeps track of requests for timeout purposes. Requests are sorted by |
// their expiration time (soonest to expire on top of the priority queue). The |
// timeout timer periodically checks |timeout_queue_| for entries that should |