diff options
Diffstat (limited to 'WebCore/dom/MessageEvent.cpp')
-rw-r--r-- | WebCore/dom/MessageEvent.cpp | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/WebCore/dom/MessageEvent.cpp b/WebCore/dom/MessageEvent.cpp index a0af32d..3c84642 100644 --- a/WebCore/dom/MessageEvent.cpp +++ b/WebCore/dom/MessageEvent.cpp @@ -34,16 +34,17 @@ namespace WebCore { MessageEvent::MessageEvent() + : m_data(SerializedScriptValue::create()) { } -MessageEvent::MessageEvent(const String& data, const String& origin, const String& lastEventId, PassRefPtr<DOMWindow> source, PassRefPtr<MessagePort> messagePort) - : Event(eventNames().messageEvent, false, true) +MessageEvent::MessageEvent(PassRefPtr<SerializedScriptValue> data, const String& origin, const String& lastEventId, PassRefPtr<DOMWindow> source, PassOwnPtr<MessagePortArray> ports) + : Event(eventNames().messageEvent, false, false) , m_data(data) , m_origin(origin) , m_lastEventId(lastEventId) , m_source(source) - , m_messagePort(messagePort) + , m_ports(ports) { } @@ -51,7 +52,7 @@ MessageEvent::~MessageEvent() { } -void MessageEvent::initMessageEvent(const AtomicString& type, bool canBubble, bool cancelable, const String& data, const String& origin, const String& lastEventId, DOMWindow* source, MessagePort* messagePort) +void MessageEvent::initMessageEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtr<SerializedScriptValue> data, const String& origin, const String& lastEventId, DOMWindow* source, PassOwnPtr<MessagePortArray> ports) { if (dispatched()) return; @@ -62,7 +63,26 @@ void MessageEvent::initMessageEvent(const AtomicString& type, bool canBubble, bo m_origin = origin; m_lastEventId = lastEventId; m_source = source; - m_messagePort = messagePort; + m_ports = ports; +} + +// FIXME: remove this when we update the ObjC bindings (bug #28774). +MessagePort* MessageEvent::messagePort() +{ + if (!m_ports) + return 0; + ASSERT(m_ports->size() == 1); + return (*m_ports)[0].get(); +} + +void MessageEvent::initMessageEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtr<SerializedScriptValue> data, const String& origin, const String& lastEventId, DOMWindow* source, MessagePort* port) +{ + MessagePortArray* ports = 0; + if (port) { + ports = new MessagePortArray(); + ports->append(port); + } + initMessageEvent(type, canBubble, cancelable, data, origin, lastEventId, source, ports); } bool MessageEvent::isMessageEvent() const |