blob: 94e5a74c3ca89f72ca92713dff8639adfade2068 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef WebServiceWorkerRegistrationProxy_h
#define WebServiceWorkerRegistrationProxy_h
#include "public/platform/WebCommon.h"
namespace blink {
class ServiceWorkerRegistration;
class WebServiceWorker;
// A proxy interface, passed via WebServiceWorkerRegistration.setProxy() from
// blink to the embedder, to talk to the ServiceWorkerRegistration object from
// embedder.
class WebServiceWorkerRegistrationProxy {
public:
WebServiceWorkerRegistrationProxy() : m_private(0) { }
virtual ~WebServiceWorkerRegistrationProxy() { }
// Notifies that the registration entered the installation process.
// The installing worker should be accessible via
// WebServiceWorkerRegistration.installing.
virtual void dispatchUpdateFoundEvent() = 0;
virtual void setInstalling(WebServiceWorker*) = 0;
virtual void setWaiting(WebServiceWorker*) = 0;
virtual void setActive(WebServiceWorker*) = 0;
#if INSIDE_BLINK
BLINK_PLATFORM_EXPORT WebServiceWorkerRegistrationProxy(ServiceWorkerRegistration*);
BLINK_PLATFORM_EXPORT operator ServiceWorkerRegistration*() const;
#endif
protected:
ServiceWorkerRegistration* m_private;
};
} // namespace blink
#endif // WebServiceWorkerRegistrationProxy_h