Chromium Code Reviews| 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 |