| Index: Source/core/events/MessageEvent.h
|
| diff --git a/Source/core/events/MessageEvent.h b/Source/core/events/MessageEvent.h
|
| index b64fe2fa3a5e903e4dbc39f4e78954c570713cd0..8e45acb9c525050e17e2f865a06b143905a0f521 100644
|
| --- a/Source/core/events/MessageEvent.h
|
| +++ b/Source/core/events/MessageEvent.h
|
| @@ -61,6 +61,10 @@ public:
|
| {
|
| return adoptRef(new MessageEvent(data, origin, lastEventId, source, ports));
|
| }
|
| + static PassRefPtr<MessageEvent> create(PassOwnPtr<MessagePortChannelArray> channels, PassRefPtr<SerializedScriptValue> data, const String& origin = String(), const String& lastEventId = String(), PassRefPtr<EventTarget> source = 0)
|
| + {
|
| + return adoptRef(new MessageEvent(data, origin, lastEventId, source, channels));
|
| + }
|
| static PassRefPtr<MessageEvent> create(const String& data, const String& origin = String())
|
| {
|
| return adoptRef(new MessageEvent(data, origin));
|
| @@ -86,6 +90,7 @@ public:
|
| const String& lastEventId() const { return m_lastEventId; }
|
| EventTarget* source() const { return m_source.get(); }
|
| MessagePortArray ports() const { return m_ports ? *m_ports : MessagePortArray(); }
|
| + MessagePortChannelArray channels() const { return m_channels ? *m_channels : MessagePortChannelArray(); }
|
|
|
| virtual const AtomicString& interfaceName() const;
|
|
|
| @@ -108,11 +113,14 @@ public:
|
| m_dataAsSerializedScriptValue = data;
|
| }
|
|
|
| + void entangleMessagePorts(ExecutionContext*);
|
| +
|
| private:
|
| MessageEvent();
|
| MessageEvent(const AtomicString&, const MessageEventInit&);
|
| MessageEvent(const String& origin, const String& lastEventId, PassRefPtr<EventTarget> source, PassOwnPtr<MessagePortArray>);
|
| MessageEvent(PassRefPtr<SerializedScriptValue> data, const String& origin, const String& lastEventId, PassRefPtr<EventTarget> source, PassOwnPtr<MessagePortArray>);
|
| + MessageEvent(PassRefPtr<SerializedScriptValue> data, const String& origin, const String& lastEventId, PassRefPtr<EventTarget> source, PassOwnPtr<MessagePortChannelArray>);
|
|
|
| explicit MessageEvent(const String& data, const String& origin);
|
| explicit MessageEvent(PassRefPtr<Blob> data, const String& origin);
|
| @@ -126,7 +134,11 @@ private:
|
| String m_origin;
|
| String m_lastEventId;
|
| RefPtr<EventTarget> m_source;
|
| + // m_ports are the MessagePorts in an engtangled state, and m_channels are
|
| + // the MessageChannels in a disentangled state. Only one of them can be
|
| + // non-empty at a time. entangleMessagePorts() moves between the states.
|
| OwnPtr<MessagePortArray> m_ports;
|
| + OwnPtr<MessagePortChannelArray> m_channels;
|
| };
|
|
|
| } // namespace WebCore
|
|
|