Chromium Code Reviews| Index: content/public/browser/service_worker_context.h |
| diff --git a/content/public/browser/service_worker_context.h b/content/public/browser/service_worker_context.h |
| index 47f355c734ae46b1a5e17b04968f898a526901c0..a8b8ae98d8ef3c7a85c4111cfca9dc49452beb98 100644 |
| --- a/content/public/browser/service_worker_context.h |
| +++ b/content/public/browser/service_worker_context.h |
| @@ -33,6 +33,9 @@ class ServiceWorkerContext { |
| typedef base::Callback<void(bool has_service_worker)> |
| CheckHasServiceWorkerCallback; |
| + typedef base::Callback<void(size_t external_request_count)> |
| + CountExternalRequestsCallback; |
|
Avi (use Gerrit)
2016/10/07 21:33:11
Can we use the cool new
using CountExternalReques
lazyboy
2016/10/07 22:31:49
Done.
|
| + |
| // Registers the header name which should not be passed to the ServiceWorker. |
| // Must be called from the IO thread. |
| CONTENT_EXPORT static void AddExcludedHeadersForFetchEvent( |
| @@ -60,6 +63,21 @@ class ServiceWorkerContext { |
| const GURL& script_url, |
| const ResultCallback& callback) = 0; |
| + // Mechanism for embedder to increment/decrement ref count of a service |
| + // worker. |
| + // Embedders can call StartingExternalRequest() while it is performing some |
| + // work with the worker. The worker is considered to be working until embedder |
| + // calls FinishedExternalRequest(). This ensures that content/ does not |
| + // shut the worker down while embedder is expecting the worker to be kept |
| + // alive. |
| + // |
| + // Must be called from the IO thread. Returns whether or not changing the ref |
| + // count succeeded. |
| + virtual bool StartingExternalRequest(int64_t service_worker_version_id, |
| + const std::string& request_uuid) = 0; |
| + virtual bool FinishedExternalRequest(int64_t service_worker_version_id, |
| + const std::string& request_uuid) = 0; |
| + |
| // Equivalent to calling navigator.serviceWorker.unregister(pattern) from a |
| // renderer, except that |pattern| is an absolute URL instead of relative to |
| // some current origin. |callback| is passed true when the JS promise is |
| @@ -96,6 +114,12 @@ class ServiceWorkerContext { |
| const GURL& other_url, |
| const CheckHasServiceWorkerCallback& callback) = 0; |
| + // Returns the pending external request count for the worker with the |
| + // specified |origin| via |callback|. |
| + virtual void CountExternalRequestsForTest( |
| + const GURL& origin, |
| + const CountExternalRequestsCallback& callback) = 0; |
| + |
| // Stops all running workers on the given |origin|. |
| // |
| // This function can be called from any thread. |