Index: content/child/service_worker/service_worker_dispatcher.h |
diff --git a/content/child/service_worker/service_worker_dispatcher.h b/content/child/service_worker/service_worker_dispatcher.h |
index a3a1abce6e1c9d8b4117ef0b76e4987f073507c2..f32432cb945a2c07a0af9532ab99b8a1537bc898 100644 |
--- a/content/child/service_worker/service_worker_dispatcher.h |
+++ b/content/child/service_worker/service_worker_dispatcher.h |
@@ -5,6 +5,8 @@ |
#ifndef CONTENT_CHILD_SERVICE_WORKER_SERVICE_WORKER_DISPATCHER_H_ |
#define CONTENT_CHILD_SERVICE_WORKER_SERVICE_WORKER_DISPATCHER_H_ |
+#include <map> |
+ |
#include "base/id_map.h" |
#include "base/memory/ref_counted.h" |
#include "base/strings/string16.h" |
@@ -38,22 +40,30 @@ class ServiceWorkerDispatcher : public WorkerTaskRunner::Observer { |
void OnMessageReceived(const IPC::Message& msg); |
bool Send(IPC::Message* msg); |
- // Corresponds to navigator.registerServiceWorker() |
+ // Corresponds to navigator.serviceWorker.register() |
void RegisterServiceWorker( |
const GURL& pattern, |
const GURL& script_url, |
blink::WebServiceWorkerProvider::WebServiceWorkerCallbacks* callbacks); |
- // Corresponds to navigator.unregisterServiceWorker() |
+ // Corresponds to navigator.serviceWorker.unregister() |
void UnregisterServiceWorker( |
const GURL& pattern, |
blink::WebServiceWorkerProvider::WebServiceWorkerCallbacks* callbacks); |
+ // Called when navigator.serviceWorker is instantiated or detached |
+ // for a document whose provider can be identified by |provider_id|. |
+ void AddScriptClient(int provider_id, |
+ blink::WebServiceWorkerProviderClient* client); |
+ void RemoveScriptClient(int provider_id); |
+ |
// |thread_safe_sender| needs to be passed in because if the call leads to |
// construction it will be needed. |
static ServiceWorkerDispatcher* ThreadSpecificInstance( |
ThreadSafeSender* thread_safe_sender); |
private: |
+ typedef std::map<int, blink::WebServiceWorkerProviderClient*> ScriptClientMap; |
+ |
// WorkerTaskRunner::Observer implementation. |
virtual void OnWorkerRunLoopStopped() OVERRIDE; |
@@ -69,6 +79,7 @@ class ServiceWorkerDispatcher : public WorkerTaskRunner::Observer { |
IDMap<blink::WebServiceWorkerProvider::WebServiceWorkerCallbacks, |
IDMapOwnPointer> pending_callbacks_; |
+ ScriptClientMap script_clients_; |
scoped_refptr<ThreadSafeSender> thread_safe_sender_; |