web_service_worker_provider_impl.cc revision a1401311d1ab56c4ed0a474bd38c108f75cb0cd9
1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "content/child/service_worker/web_service_worker_provider_impl.h" 6 7#include "base/atomic_sequence_num.h" 8#include "base/logging.h" 9#include "content/child/child_thread.h" 10#include "content/child/service_worker/service_worker_dispatcher.h" 11#include "content/child/thread_safe_sender.h" 12#include "third_party/WebKit/public/platform/WebURL.h" 13 14using blink::WebURL; 15 16namespace content { 17 18WebServiceWorkerProviderImpl::WebServiceWorkerProviderImpl( 19 ThreadSafeSender* thread_safe_sender, 20 int provider_id) 21 : thread_safe_sender_(thread_safe_sender), 22 provider_id_(provider_id) { 23} 24 25WebServiceWorkerProviderImpl::~WebServiceWorkerProviderImpl() { 26 // Make sure the script client is removed. 27 GetDispatcher()->RemoveScriptClient(provider_id_); 28} 29 30void WebServiceWorkerProviderImpl::setClient( 31 blink::WebServiceWorkerProviderClient* client) { 32 if (client) 33 GetDispatcher()->AddScriptClient(provider_id_, client); 34 else 35 GetDispatcher()->RemoveScriptClient(provider_id_); 36} 37 38void WebServiceWorkerProviderImpl::registerServiceWorker( 39 const WebURL& pattern, 40 const WebURL& script_url, 41 WebServiceWorkerCallbacks* callbacks) { 42 GetDispatcher()->RegisterServiceWorker(pattern, script_url, callbacks); 43} 44 45void WebServiceWorkerProviderImpl::unregisterServiceWorker( 46 const WebURL& pattern, 47 WebServiceWorkerCallbacks* callbacks) { 48 GetDispatcher()->UnregisterServiceWorker(pattern, callbacks); 49} 50 51ServiceWorkerDispatcher* WebServiceWorkerProviderImpl::GetDispatcher() { 52 return ServiceWorkerDispatcher::ThreadSpecificInstance(thread_safe_sender_); 53} 54 55} // namespace content 56