| Index: content/child/service_worker/web_service_worker_provider_impl.cc
|
| diff --git a/content/child/service_worker/web_service_worker_provider_impl.cc b/content/child/service_worker/web_service_worker_provider_impl.cc
|
| index 8b375adf31cc63baee5d88d9a956b5a2e019c68c..af8c9c99cda43f65d40de4d77108a3fc32d20d8f 100644
|
| --- a/content/child/service_worker/web_service_worker_provider_impl.cc
|
| +++ b/content/child/service_worker/web_service_worker_provider_impl.cc
|
| @@ -9,8 +9,6 @@
|
| #include "content/child/child_thread.h"
|
| #include "content/child/service_worker/service_worker_dispatcher.h"
|
| #include "content/child/thread_safe_sender.h"
|
| -#include "content/common/service_worker/service_worker_messages.h"
|
| -#include "third_party/WebKit/public/platform/WebServiceWorkerProviderClient.h"
|
| #include "third_party/WebKit/public/platform/WebURL.h"
|
|
|
| using blink::WebURL;
|
| @@ -18,34 +16,40 @@ using blink::WebURL;
|
| namespace content {
|
|
|
| WebServiceWorkerProviderImpl::WebServiceWorkerProviderImpl(
|
| - ThreadSafeSender* thread_safe_sender)
|
| + ThreadSafeSender* thread_safe_sender,
|
| + int provider_id)
|
| : thread_safe_sender_(thread_safe_sender),
|
| - client_(NULL) {
|
| + provider_id_(provider_id) {
|
| }
|
|
|
| WebServiceWorkerProviderImpl::~WebServiceWorkerProviderImpl() {
|
| + // Make sure the script client is removed.
|
| + GetDispatcher()->RemoveScriptClient(provider_id_);
|
| }
|
|
|
| void WebServiceWorkerProviderImpl::setClient(
|
| blink::WebServiceWorkerProviderClient* client) {
|
| - // TODO(kinuko): We should register the client with provider_id
|
| - // so that the client can start listening events for the provider.
|
| - client_ = client;
|
| + if (client)
|
| + GetDispatcher()->AddScriptClient(provider_id_, client);
|
| + else
|
| + GetDispatcher()->RemoveScriptClient(provider_id_);
|
| }
|
|
|
| void WebServiceWorkerProviderImpl::registerServiceWorker(
|
| const WebURL& pattern,
|
| const WebURL& script_url,
|
| WebServiceWorkerCallbacks* callbacks) {
|
| - ServiceWorkerDispatcher::ThreadSpecificInstance(thread_safe_sender_)
|
| - ->RegisterServiceWorker(pattern, script_url, callbacks);
|
| + GetDispatcher()->RegisterServiceWorker(pattern, script_url, callbacks);
|
| }
|
|
|
| void WebServiceWorkerProviderImpl::unregisterServiceWorker(
|
| const WebURL& pattern,
|
| WebServiceWorkerCallbacks* callbacks) {
|
| - ServiceWorkerDispatcher::ThreadSpecificInstance(thread_safe_sender_)
|
| - ->UnregisterServiceWorker(pattern, callbacks);
|
| + GetDispatcher()->UnregisterServiceWorker(pattern, callbacks);
|
| +}
|
| +
|
| +ServiceWorkerDispatcher* WebServiceWorkerProviderImpl::GetDispatcher() {
|
| + return ServiceWorkerDispatcher::ThreadSpecificInstance(thread_safe_sender_);
|
| }
|
|
|
| } // namespace content
|
|
|