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. 4 5 #ifndef WebServiceWorkerProxy_h 6 #define WebServiceWorkerProxy_h 7 8 #include "WebCommon.h" 9 10 namespace WebCore { class ServiceWorker; } 11 12 namespace blink { 13 14 // A proxy interface, passed via WebServiceWorker.setProxy() from blink to 15 // the embedder, to talk to the ServiceWorker object from embedder. 16 class WebServiceWorkerProxy { 17 public: WebServiceWorkerProxy()18 WebServiceWorkerProxy() : m_private(0) { } ~WebServiceWorkerProxy()19 virtual ~WebServiceWorkerProxy() { } 20 21 // Returns true if the proxy is ready to be notified of service worker state 22 // changes. It may not be if it's waiting for the registration promise to 23 // resolve, while the browser side has registered and is proceeding to 24 // install and activate the worker. 25 virtual bool isReady() = 0; 26 27 // Notifies the proxy that the service worker state changed. The new state 28 // should be accessible via WebServiceWorker.state(). 29 virtual void dispatchStateChangeEvent() = 0; 30 31 #if INSIDE_BLINK 32 BLINK_PLATFORM_EXPORT WebServiceWorkerProxy(WebCore::ServiceWorker*); 33 BLINK_PLATFORM_EXPORT WebCore::ServiceWorker* unwrap() const; 34 #endif 35 36 protected: 37 WebCore::ServiceWorker* m_private; 38 }; 39 40 } // namespace blink 41 42 #endif // WebServiceWorkerProxy_h 43