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 c095f9d1314c7fe028441bb19479c2f73d4fc99e..90c3d93ad587025b5c88774716313c632e1a94e7 100644 |
--- a/content/public/browser/service_worker_context.h |
+++ b/content/public/browser/service_worker_context.h |
@@ -18,6 +18,12 @@ enum class WebNavigationHintType; |
namespace content { |
+enum class ServiceWorkerCapability { |
+ NO_SERVICE_WORKER, |
+ SERVICE_WORKER_NO_FETCH_HANDLER, |
+ SERVICE_WORKER_WITH_FETCH_HANDLER, |
+}; |
+ |
// Represents the per-StoragePartition ServiceWorker data. |
class ServiceWorkerContext { |
public: |
@@ -31,7 +37,7 @@ class ServiceWorkerContext { |
const std::vector<ServiceWorkerUsageInfo>& usage_info)>; |
using CheckHasServiceWorkerCallback = |
- base::Callback<void(bool has_service_worker)>; |
+ base::Callback<void(ServiceWorkerCapability capability)>; |
using CountExternalRequestsCallback = |
base::Callback<void(size_t external_request_count)>; |
@@ -102,10 +108,14 @@ class ServiceWorkerContext { |
virtual void DeleteForOrigin(const GURL& origin_url, |
const ResultCallback& callback) = 0; |
- // Returns true if a Service Worker registration exists that matches |url|, |
- // and if |other_url| falls inside the scope of the same registration. Note |
- // this still returns true even if there is a Service Worker registration |
- // which has a longer match for |other_url|. |
+ // Returns ServiceWorkerCapability describing existence and properties of a |
+ // Service Worker registration matching |url|. Found service worker |
+ // registration must also encompass the |other_url|, otherwise it will be |
+ // considered non existent by this method. Note that the longest matching |
+ // registration for |url| is described, which is not necessarily the longest |
+ // matching registration for |other_url|. In case the service worker is being |
+ // installed as of calling this method, it will wait for the installation to |
+ // finish before coming back with the result. |
// |
// This function can be called from any thread, but the callback will always |
// be called on the UI thread. |