Chromium Code Reviews| Index: third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializer.cpp |
| diff --git a/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializer.cpp b/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializer.cpp |
| index 267a8ab5d524f53eef7a08b165e1bb09ee43be50..04bb0863400f593c813b542254479918bc0a3976 100644 |
| --- a/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializer.cpp |
| +++ b/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializer.cpp |
| @@ -49,7 +49,8 @@ V8ScriptValueSerializer::V8ScriptValueSerializer( |
| m_serializedScriptValue(SerializedScriptValue::create()), |
| m_serializer(m_scriptState->isolate(), this), |
| m_transferables(options.transferables), |
| - m_blobInfoArray(options.blobInfo) {} |
| + m_blobInfoArray(options.blobInfo), |
| + m_inlineWasm(options.writeWasmToStream) {} |
| RefPtr<SerializedScriptValue> V8ScriptValueSerializer::serialize( |
| v8::Local<v8::Value> value, |
| @@ -420,6 +421,22 @@ v8::Maybe<uint32_t> V8ScriptValueSerializer::GetSharedArrayBufferId( |
| return v8::Just<uint32_t>(index); |
| } |
| +v8::Maybe<uint32_t> V8ScriptValueSerializer::GetWasmModuleTransferId( |
| + v8::Isolate* isolate, |
| + v8::Local<v8::WasmCompiledModule> module) { |
| + if (m_inlineWasm) |
| + return v8::Nothing<uint32_t>(); |
|
jbroman
2017/03/27 18:50:52
nit: The usual expectation is that functions retur
Mircea Trofin
2017/03/27 20:52:33
See prev comment re. exceptions.
On the serializa
jbroman
2017/03/28 15:27:25
OK. Please add this to the documentation in includ
|
| + // We don't expect scenarios with numerous wasm modules being transferred |
| + // around. Most likely, we'll have one module. The vector approach is simple |
| + // and should perform sufficiently well under these expectations. |
| + this->m_serializedScriptValue->wasmModules().push_back( |
| + module->GetTransferrableModule()); |
| + uint32_t size = |
| + static_cast<uint32_t>(m_serializedScriptValue->wasmModules().size()); |
| + DCHECK_GE(size, 1u); |
| + return v8::Just(size - 1); |
| +} |
| + |
| void* V8ScriptValueSerializer::ReallocateBufferMemory(void* oldBuffer, |
| size_t size, |
| size_t* actualSize) { |