Index: Source/web/WebDOMMessageEvent.cpp |
diff --git a/Source/web/WebDOMMessageEvent.cpp b/Source/web/WebDOMMessageEvent.cpp |
index f050e01a89842a2fbfb7d6f9a7eaa3cb14bb37cc..fb6f1066a6cfcf29d8c05bd4ea28e11dad74c811 100644 |
--- a/Source/web/WebDOMMessageEvent.cpp |
+++ b/Source/web/WebDOMMessageEvent.cpp |
@@ -55,6 +55,10 @@ void WebDOMMessageEvent::initMessageEvent(const WebString& type, bool canBubble, |
// TODO(alexmos): make ports work properly with OOPIF. |
if (sourceFrame && sourceFrame->isWebLocalFrame()) |
ports = MessagePort::toMessagePortArray(toLocalDOMWindow(window)->document(), webChannels); |
+ // Use an empty array for |ports| when it is null because this function |
+ // is used to implement postMessage(). |
+ if (!ports) |
+ ports = adoptPtrWillBeNoop(new MessagePortArray()); |
unwrap<MessageEvent>()->initMessageEvent(type, canBubble, cancelable, messageData, origin, lastEventId, window, ports.release()); |
} |