blob: a687b6751b5e6e04ea6c0ac6be35e28afb0b0eeb [file] [log] [blame]
// Copyright 2015 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 ServicePortConnectEvent_h
#define ServicePortConnectEvent_h
#include "modules/EventModules.h"
#include "modules/ModulesExport.h"
#include "modules/serviceworkers/ExtendableEvent.h"
#include "platform/heap/Handle.h"
namespace blink {
class AcceptConnectionObserver;
class ExceptionState;
class ServicePortConnectEventInit;
// A connect event is dispatched by the client to a service worker's script.
// AcceptConnectionObserver can be used to notify the client about the service
// worker's response.
class MODULES_EXPORT ServicePortConnectEvent final : public ExtendableEvent {
DEFINE_WRAPPERTYPEINFO();
public:
static PassRefPtrWillBeRawPtr<ServicePortConnectEvent> create();
static PassRefPtrWillBeRawPtr<ServicePortConnectEvent> create(const AtomicString& type, const ServicePortConnectEventInit&);
static PassRefPtrWillBeRawPtr<ServicePortConnectEvent> create(const AtomicString& type, const ServicePortConnectEventInit&, AcceptConnectionObserver*);
// ServicePortConnectEvent.idl
String targetURL() const { return m_targetURL; }
String origin() const { return m_origin; }
ScriptPromise respondWith(ScriptState*, const ScriptPromise& response, ExceptionState&);
const AtomicString& interfaceName() const override;
DECLARE_VIRTUAL_TRACE();
protected:
ServicePortConnectEvent();
ServicePortConnectEvent(const AtomicString& type, const ServicePortConnectEventInit&, AcceptConnectionObserver*);
private:
PersistentWillBeMember<AcceptConnectionObserver> m_observer;
String m_targetURL;
String m_origin;
};
} // namespace blink
#endif // ServicePortConnectEvent_h