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 10namespace blink { 11 12class ServiceWorker; 13 14// A proxy interface, passed via WebServiceWorker.setProxy() from blink to 15// the embedder, to talk to the ServiceWorker object from embedder. 16class WebServiceWorkerProxy { 17public: 18 WebServiceWorkerProxy() : m_private(0) { } 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(ServiceWorker*); 33 BLINK_PLATFORM_EXPORT ServiceWorker* unwrap() const; 34#endif 35 36protected: 37 ServiceWorker* m_private; 38}; 39 40} // namespace blink 41 42#endif // WebServiceWorkerProxy_h 43