- add sources.
[platform/framework/web/crosswalk.git] / src / content / child / service_worker / web_service_worker_provider_impl.h
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 #ifndef CONTENT_CHILD_SERVICE_WORKER_WEB_SERVICE_WORKER_PROVIDER_IMPL_H_
6 #define CONTENT_CHILD_SERVICE_WORKER_WEB_SERVICE_WORKER_PROVIDER_IMPL_H_
7
8 #include "base/compiler_specific.h"
9 #include "base/memory/ref_counted.h"
10 #include "third_party/WebKit/public/platform/WebServiceWorkerProvider.h"
11 #include "third_party/WebKit/public/platform/WebServiceWorkerProviderClient.h"
12 #include "third_party/WebKit/public/web/WebFrame.h"
13 #include "third_party/WebKit/public/web/WebSecurityOrigin.h"
14
15 namespace WebKit {
16 class WebString;
17 class WebURL;
18 }
19
20 namespace IPC {
21 class Sender;
22 }
23
24 namespace content {
25
26 class ThreadSafeSender;
27 class ServiceWorkerMessageFilter;
28
29 class WebServiceWorkerProviderImpl
30     : NON_EXPORTED_BASE(public WebKit::WebServiceWorkerProvider) {
31  public:
32   WebServiceWorkerProviderImpl(
33       ThreadSafeSender* thread_safe_sender,
34       ServiceWorkerMessageFilter* message_filter,
35       const WebKit::WebURL& origin,
36       scoped_ptr<WebKit::WebServiceWorkerProviderClient> client);
37   virtual ~WebServiceWorkerProviderImpl();
38
39   virtual void registerServiceWorker(const WebKit::WebURL& pattern,
40                                      const WebKit::WebURL& script_url,
41                                      WebServiceWorkerCallbacks*);
42
43   virtual void unregisterServiceWorker(const WebKit::WebURL& pattern,
44                                        WebServiceWorkerCallbacks*);
45
46  private:
47   scoped_refptr<ThreadSafeSender> thread_safe_sender_;
48   scoped_ptr<WebKit::WebServiceWorkerProviderClient> client_;
49
50   DISALLOW_COPY_AND_ASSIGN(WebServiceWorkerProviderImpl);
51 };
52
53 }  // namespace content
54
55 #endif  // CONTENT_CHILD_SERVICE_WORKER_WEB_SERVICE_WORKER_PROVIDER_IMPL_H_