Index: Source/web/WebDOMMessageEvent.cpp |
diff --git a/Source/web/WebDOMMessageEvent.cpp b/Source/web/WebDOMMessageEvent.cpp |
index 452f70e5a1667948809dc47361ef52f5ca142863..bbb9554976848582f73294c15c64c37567dc4d08 100644 |
--- a/Source/web/WebDOMMessageEvent.cpp |
+++ b/Source/web/WebDOMMessageEvent.cpp |
@@ -45,7 +45,7 @@ using namespace WebCore; |
namespace WebKit { |
-void WebDOMMessageEvent::initMessageEvent(const WebString& type, bool canBubble, bool cancelable, const WebSerializedScriptValue& messageData, const WebString& origin, const WebFrame* sourceFrame, const WebString& lastEventId) |
+void WebDOMMessageEvent::initMessageEvent(const WebString& type, bool canBubble, bool cancelable, const WebSerializedScriptValue& messageData, const WebString& origin, const WebFrame* sourceFrame, const WebString& lastEventId, const WebMessagePortChannelArray& webChannels) |
{ |
ASSERT(m_private.get()); |
ASSERT(isMessageEvent()); |
@@ -53,6 +53,12 @@ void WebDOMMessageEvent::initMessageEvent(const WebString& type, bool canBubble, |
if (sourceFrame) |
window = toWebFrameImpl(sourceFrame)->frame()->domWindow(); |
OwnPtr<MessagePortArray> ports; |
+ if (webChannels.size() > 0 && sourceFrame) { |
jochen (gone - plz use gerrit)
2013/10/16 00:03:20
nit. !webChannels.isEmpty()
marja
2013/10/16 08:19:04
Done.
|
+ OwnPtr<MessagePortChannelArray> channels = adoptPtr(new MessagePortChannelArray(webChannels.size())); |
+ for (size_t i = 0; i < webChannels.size(); ++i) |
+ (*channels)[i] = MessagePortChannel::create(webChannels[i]); |
+ ports = MessagePort::entanglePorts(*window->document(), channels.release()); |
+ } |
unwrap<MessageEvent>()->initMessageEvent(type, canBubble, cancelable, messageData, origin, lastEventId, window, ports.release()); |
} |
@@ -66,4 +72,13 @@ WebString WebDOMMessageEvent::origin() const |
return WebString(constUnwrap<MessageEvent>()->origin()); |
} |
+WebMessagePortChannelArray WebDOMMessageEvent::releaseChannels() |
+{ |
+ MessagePortChannelArray channels = constUnwrap<MessageEvent>()->channels(); |
+ WebMessagePortChannelArray webChannels(channels.size()); |
+ for (size_t i = 0; i < channels.size(); ++i) |
+ webChannels[i] = channels[i]->webChannelRelease(); |
+ return webChannels; |
+} |
+ |
} // namespace WebKit |