| 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();
|
| }
|
|
|
|
|