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 WebServiceWorkerRegistrationProxy_h 6 #define WebServiceWorkerRegistrationProxy_h 7 8 #if INSIDE_BLINK 9 #include "platform/heap/Handle.h" 10 #endif 11 #include "public/platform/WebCommon.h" 12 13 namespace blink { 14 15 class ServiceWorkerRegistration; 16 class WebServiceWorker; 17 18 // A proxy interface, passed via WebServiceWorkerRegistration.setProxy() from 19 // blink to the embedder, to talk to the ServiceWorkerRegistration object from 20 // embedder. 21 class WebServiceWorkerRegistrationProxy { 22 public: WebServiceWorkerRegistrationProxy()23 WebServiceWorkerRegistrationProxy() : m_private(0) { } ~WebServiceWorkerRegistrationProxy()24 virtual ~WebServiceWorkerRegistrationProxy() { } 25 26 // Notifies that the registration entered the installation process. 27 // The installing worker should be accessible via 28 // WebServiceWorkerRegistration.installing. 29 virtual void dispatchUpdateFoundEvent() = 0; 30 31 virtual void setInstalling(WebServiceWorker*) = 0; 32 virtual void setWaiting(WebServiceWorker*) = 0; 33 virtual void setActive(WebServiceWorker*) = 0; 34 35 #if INSIDE_BLINK 36 BLINK_PLATFORM_EXPORT WebServiceWorkerRegistrationProxy(ServiceWorkerRegistration*); 37 BLINK_PLATFORM_EXPORT operator ServiceWorkerRegistration*() const; 38 #endif 39 40 protected: 41 #if INSIDE_BLINK 42 // This is a back pointer to |this| object. 43 // The ServiceWorkerRegistration inherits from this WebServiceWorkerRegistrationProxy. 44 GC_PLUGIN_IGNORE("crbug.com/410257") 45 #endif 46 ServiceWorkerRegistration* m_private; 47 }; 48 49 } // namespace blink 50 51 #endif // WebServiceWorkerRegistrationProxy_h 52