Index: third_party/WebKit/Source/bindings/core/v8/custom/V8WindowCustom.cpp |
diff --git a/third_party/WebKit/Source/bindings/core/v8/custom/V8WindowCustom.cpp b/third_party/WebKit/Source/bindings/core/v8/custom/V8WindowCustom.cpp |
index c75d51b1c76c1653d30b15f8e06a61a6062530b7..4bcb14e579041b04bd6a8c110a3e0b374f3f36dd 100644 |
--- a/third_party/WebKit/Source/bindings/core/v8/custom/V8WindowCustom.cpp |
+++ b/third_party/WebKit/Source/bindings/core/v8/custom/V8WindowCustom.cpp |
@@ -37,7 +37,7 @@ |
#include "bindings/core/v8/ScriptSourceCode.h" |
#include "bindings/core/v8/SerializedScriptValue.h" |
#include "bindings/core/v8/SerializedScriptValueFactory.h" |
-#include "bindings/core/v8/TransferableMessagePort.h" |
+#include "bindings/core/v8/Transferables.h" |
#include "bindings/core/v8/V8Binding.h" |
#include "bindings/core/v8/V8EventListener.h" |
#include "bindings/core/v8/V8EventListenerList.h" |
@@ -193,7 +193,7 @@ void V8Window::postMessageMethodCustom(const v8::FunctionCallbackInfo<v8::Value> |
// postMessage(message, targetOrigin, {sequence of transferrables}) |
// Legacy non-standard implementations in webkit allowed: |
// postMessage(message, {sequence of transferrables}, targetOrigin); |
- TransferableArray* transferables = new TransferableArray; |
+ Transferables transferables; |
int targetOriginArgIndex = 1; |
if (info.Length() > 2) { |
int transferablesArgIndex = 2; |
@@ -202,23 +202,18 @@ void V8Window::postMessageMethodCustom(const v8::FunctionCallbackInfo<v8::Value> |
targetOriginArgIndex = 2; |
transferablesArgIndex = 1; |
} |
- if (!SerializedScriptValue::extractTransferables(info.GetIsolate(), info[transferablesArgIndex], transferablesArgIndex, *transferables, exceptionState)) { |
+ if (!SerializedScriptValue::extractTransferables(info.GetIsolate(), info[transferablesArgIndex], transferablesArgIndex, transferables, exceptionState)) { |
exceptionState.throwIfNeeded(); |
return; |
} |
} |
TOSTRING_VOID(V8StringResource<TreatNullAndUndefinedAsNullString>, targetOrigin, info[targetOriginArgIndex]); |
- RefPtr<SerializedScriptValue> message = SerializedScriptValueFactory::instance().create(info.GetIsolate(), info[0], transferables, exceptionState); |
+ RefPtr<SerializedScriptValue> message = SerializedScriptValueFactory::instance().create(info.GetIsolate(), info[0], &transferables, exceptionState); |
if (exceptionState.throwIfNeeded()) |
return; |
- MessagePortArray* portArray; |
- if (auto* messagePorts = TransferableMessagePort::get(*transferables)) |
- portArray = &(messagePorts->getArray()); |
- else |
- portArray = new MessagePortArray; |
- window->postMessage(message.release(), portArray, targetOrigin, source, exceptionState); |
+ window->postMessage(message.release(), transferables.messagePorts, targetOrigin, source, exceptionState); |
exceptionState.throwIfNeeded(); |
} |