Chromium Code Reviews| 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..e773252b2256ffdbf037ce9dce34cf5c25e755ad 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,8 +79,10 @@ class ServiceWorkerDispatcher : public WorkerTaskRunner::Observer { |
| IDMap<blink::WebServiceWorkerProvider::WebServiceWorkerCallbacks, |
| IDMapOwnPointer> pending_callbacks_; |
| + ScriptClientMap script_clients_; |
| scoped_refptr<ThreadSafeSender> thread_safe_sender_; |
| + blink::WebServiceWorkerProviderClient* client_; |
|
michaeln
2014/03/07 02:24:09
stale line to be deleted
kinuko
2014/03/07 02:37:13
Done.
|
| DISALLOW_COPY_AND_ASSIGN(ServiceWorkerDispatcher); |
| }; |