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

Unified Diff: third_party/WebKit/Source/bindings/modules/v8/SerializedScriptValueForModulesFactory.cpp

Issue 2684843005: Inline the V8BasedStructuredClone feature. (Closed)
Patch Set: Created 3 years, 10 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/modules/v8/SerializedScriptValueForModulesFactory.cpp
diff --git a/third_party/WebKit/Source/bindings/modules/v8/SerializedScriptValueForModulesFactory.cpp b/third_party/WebKit/Source/bindings/modules/v8/SerializedScriptValueForModulesFactory.cpp
index 621e899c68744066cf896cd41cedbf99b92b9c6f..adbf0630fb5501c2d170ef76158d784480b992ff 100644
--- a/third_party/WebKit/Source/bindings/modules/v8/SerializedScriptValueForModulesFactory.cpp
+++ b/third_party/WebKit/Source/bindings/modules/v8/SerializedScriptValueForModulesFactory.cpp
@@ -4,12 +4,8 @@
#include "bindings/modules/v8/SerializedScriptValueForModulesFactory.h"
-#include "bindings/core/v8/ExceptionState.h"
-#include "bindings/core/v8/SerializedScriptValue.h"
-#include "bindings/modules/v8/ScriptValueSerializerForModules.h"
#include "bindings/modules/v8/serialization/V8ScriptValueDeserializerForModules.h"
#include "bindings/modules/v8/serialization/V8ScriptValueSerializerForModules.h"
-#include "core/dom/ExceptionCode.h"
#include "platform/instrumentation/tracing/TraceEvent.h"
namespace blink {
@@ -21,14 +17,8 @@ SerializedScriptValueForModulesFactory::create(v8::Isolate* isolate,
WebBlobInfoArray* blobInfo,
ExceptionState& exceptionState) {
TRACE_EVENT0("blink", "SerializedScriptValueFactory::create");
- if (RuntimeEnabledFeatures::v8BasedStructuredCloneEnabled()) {
- V8ScriptValueSerializerForModules serializer(ScriptState::current(isolate));
- serializer.setBlobInfoArray(blobInfo);
- return serializer.serialize(value, transferables, exceptionState);
- }
- SerializedScriptValueWriterForModules writer;
- ScriptValueSerializerForModules serializer(writer, blobInfo,
- ScriptState::current(isolate));
+ V8ScriptValueSerializerForModules serializer(ScriptState::current(isolate));
+ serializer.setBlobInfoArray(blobInfo);
return serializer.serialize(value, transferables, exceptionState);
}
@@ -38,31 +28,10 @@ v8::Local<v8::Value> SerializedScriptValueForModulesFactory::deserialize(
MessagePortArray* messagePorts,
const WebBlobInfoArray* blobInfo) {
TRACE_EVENT0("blink", "SerializedScriptValueFactory::deserialize");
- if (RuntimeEnabledFeatures::v8BasedStructuredCloneEnabled()) {
- V8ScriptValueDeserializerForModules deserializer(
- ScriptState::current(isolate), value);
- deserializer.setTransferredMessagePorts(messagePorts);
- deserializer.setBlobInfoArray(blobInfo);
- return deserializer.deserialize();
- }
- // deserialize() can run arbitrary script (e.g., setters), which could result
- // in |this| being destroyed. Holding a RefPtr ensures we are alive (along
- // with our internal data) throughout the operation.
- RefPtr<SerializedScriptValue> protect(value);
- if (!value->dataLengthInBytes())
- return v8::Null(isolate);
- static_assert(sizeof(SerializedScriptValueWriter::BufferValueType) == 2,
- "BufferValueType should be 2 bytes");
- // FIXME: SerializedScriptValue shouldn't use String for its underlying
- // storage. Instead, it should use SharedBuffer or Vector<uint8_t>. The
- // information stored in m_data isn't even encoded in UTF-16. Instead,
- // unicode characters are encoded as UTF-8 with two code units per UChar.
- SerializedScriptValueReaderForModules reader(
- value->data(), value->dataLengthInBytes(), blobInfo,
- value->blobDataHandles(), ScriptState::current(isolate));
- ScriptValueDeserializerForModules deserializer(
- reader, messagePorts, value->getArrayBufferContentsArray(),
- value->getImageBitmapContentsArray());
+ V8ScriptValueDeserializerForModules deserializer(
+ ScriptState::current(isolate), value);
+ deserializer.setTransferredMessagePorts(messagePorts);
+ deserializer.setBlobInfoArray(blobInfo);
return deserializer.deserialize();
}

Powered by Google App Engine
This is Rietveld 408576698