1 // Copyright 2014 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.
5 #ifndef CONTENT_CHILD_SERVICE_WORKER_WEB_SERVICE_WORKER_REGISTRATION_IMPL_H_
6 #define CONTENT_CHILD_SERVICE_WORKER_WEB_SERVICE_WORKER_REGISTRATION_IMPL_H_
10 #include "base/compiler_specific.h"
11 #include "third_party/WebKit/public/platform/WebServiceWorkerRegistration.h"
14 class WebServiceWorker;
15 class WebServiceWorkerRegistrationProxy;
20 class ServiceWorkerRegistrationHandleReference;
21 class ThreadSafeSender;
22 struct ServiceWorkerObjectInfo;
24 class WebServiceWorkerRegistrationImpl
25 : NON_EXPORTED_BASE(public blink::WebServiceWorkerRegistration) {
27 explicit WebServiceWorkerRegistrationImpl(
28 scoped_ptr<ServiceWorkerRegistrationHandleReference> handle_ref);
29 virtual ~WebServiceWorkerRegistrationImpl();
31 void SetInstalling(blink::WebServiceWorker* service_worker);
32 void SetWaiting(blink::WebServiceWorker* service_worker);
33 void SetActive(blink::WebServiceWorker* service_worker);
37 // blink::WebServiceWorkerRegistration overrides.
38 virtual void setProxy(blink::WebServiceWorkerRegistrationProxy* proxy);
39 virtual blink::WebServiceWorkerRegistrationProxy* proxy();
40 virtual blink::WebURL scope() const;
51 QueuedTask(QueuedTaskType type,
52 blink::WebServiceWorker* worker);
54 blink::WebServiceWorker* worker;
57 void RunQueuedTasks();
58 void ClearQueuedTasks();
60 scoped_ptr<ServiceWorkerRegistrationHandleReference> handle_ref_;
61 blink::WebServiceWorkerRegistrationProxy* proxy_;
63 std::vector<QueuedTask> queued_tasks_;
65 DISALLOW_COPY_AND_ASSIGN(WebServiceWorkerRegistrationImpl);
68 } // namespace content
70 #endif // CONTENT_CHILD_SERVICE_WORKER_WEB_SERVICE_WORKER_REGISTRATION_IMPL_H_