Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(206)

Unified Diff: third_party/WebKit/Source/bindings/templates/methods.cpp

Issue 1893983002: Simplify handling of Transferable objects while (de)serializing. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove Transferable.cpp, not needed after all. Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/bindings/templates/methods.cpp
diff --git a/third_party/WebKit/Source/bindings/templates/methods.cpp b/third_party/WebKit/Source/bindings/templates/methods.cpp
index b9596505888cabb42b1751519a7984d0e83024a8..cac64f07fee5cdc6c7be5c8e52f4af89d0704ac3 100644
--- a/third_party/WebKit/Source/bindings/templates/methods.cpp
+++ b/third_party/WebKit/Source/bindings/templates/methods.cpp
@@ -464,25 +464,20 @@ void postMessageImpl(const char* interfaceName, {{cpp_class}}* instance, const v
exceptionState.throwIfNeeded();
return;
}
- TransferableArray* transferables = new TransferableArray;
+ Transferables transferables;
if (info.Length() > 1) {
const int 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;
}
}
- 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;
// FIXME: Only pass context/exceptionState if instance really requires it.
ExecutionContext* context = currentExecutionContext(info.GetIsolate());
- MessagePortArray* ports;
- if (auto* messagePorts = TransferableMessagePort::get(*transferables))
- ports = &(messagePorts->getArray());
- else
- ports = new MessagePortArray;
- instance->postMessage(context, message.release(), ports, exceptionState);
+ instance->postMessage(context, message.release(), transferables.messagePorts, exceptionState);
exceptionState.throwIfNeeded();
}
{% endmacro %}

Powered by Google App Engine
This is Rietveld 408576698