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

Unified Diff: content/browser/service_worker/service_worker_version.h

Issue 2506263005: Prevent a service worker from keeping itself alive by self postMessage. (Closed)
Patch Set: rebase Created 4 years 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_version.h
diff --git a/content/browser/service_worker/service_worker_version.h b/content/browser/service_worker/service_worker_version.h
index 44079ce1a513ea159ebfc56c3ed4a1eeba30b32c..10956169469f873cf9a5d31adb2d426dc022e5f7 100644
--- a/content/browser/service_worker/service_worker_version.h
+++ b/content/browser/service_worker/service_worker_version.h
@@ -410,6 +410,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;
@@ -787,6 +793,11 @@ class CONTENT_EXPORT ServiceWorkerVersion
// to update once the worker stops, but will also update if it stays alive too
// long.
base::TimeTicks stale_time_;
+ // The latest expiration time of all requests that have ever been started. In
+ // particular this is not just the maximum of the expiration times of all
+ // currently existing requests, but also takes into account the former
+ // expiration times of finished requests.
falken 2016/12/05 02:31:51 Thanks for the precise comment.
+ base::TimeTicks max_request_expiration_time_;
// Keeps track of requests for timeout purposes. Requests are sorted by
// their expiration time (soonest to expire on top of the priority queue). The

Powered by Google App Engine
This is Rietveld 408576698