Title: [223905] trunk/Source/WebCore
Revision
223905
Author
[email protected]
Date
2017-10-24 11:50:54 -0700 (Tue, 24 Oct 2017)

Log Message

SerializedScriptValue::deserialize() should take ports as a const Vector&
https://bugs.webkit.org/show_bug.cgi?id=178727

Reviewed by Alex Christensen.

SerializedScriptValue::deserialize() should take ports as a const Vector&, not a Vector&.
It does not modify the input vector.

* bindings/js/JSMessageEventCustom.cpp:
(WebCore::JSMessageEvent::data const):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::deserialize):
(WebCore::CloneDeserializer::CloneDeserializer):
(WebCore::SerializedScriptValue::deserialize):
* bindings/js/SerializedScriptValue.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (223904 => 223905)


--- trunk/Source/WebCore/ChangeLog	2017-10-24 18:46:31 UTC (rev 223904)
+++ trunk/Source/WebCore/ChangeLog	2017-10-24 18:50:54 UTC (rev 223905)
@@ -1,3 +1,21 @@
+2017-10-24  Chris Dumez  <[email protected]>
+
+        SerializedScriptValue::deserialize() should take ports as a const Vector&
+        https://bugs.webkit.org/show_bug.cgi?id=178727
+
+        Reviewed by Alex Christensen.
+
+        SerializedScriptValue::deserialize() should take ports as a const Vector&, not a Vector&.
+        It does not modify the input vector.
+
+        * bindings/js/JSMessageEventCustom.cpp:
+        (WebCore::JSMessageEvent::data const):
+        * bindings/js/SerializedScriptValue.cpp:
+        (WebCore::CloneDeserializer::deserialize):
+        (WebCore::CloneDeserializer::CloneDeserializer):
+        (WebCore::SerializedScriptValue::deserialize):
+        * bindings/js/SerializedScriptValue.h:
+
 2017-10-24  Konstantin Tokarev  <[email protected]>
 
         [MediaFoundation] Videos are always autoplaying for local files

Modified: trunk/Source/WebCore/bindings/js/JSMessageEventCustom.cpp (223904 => 223905)


--- trunk/Source/WebCore/bindings/js/JSMessageEventCustom.cpp	2017-10-24 18:46:31 UTC (rev 223904)
+++ trunk/Source/WebCore/bindings/js/JSMessageEventCustom.cpp	2017-10-24 18:50:54 UTC (rev 223905)
@@ -79,9 +79,8 @@
 
     case MessageEvent::DataTypeSerializedScriptValue:
         if (RefPtr<SerializedScriptValue> serializedValue = event.dataAsSerializedScriptValue()) {
-            Vector<RefPtr<MessagePort>> ports = wrapped().ports();
             // FIXME: Why does this suppress exceptions?
-            result = serializedValue->deserialize(state, globalObject(), ports, SerializationErrorMode::NonThrowing);
+            result = serializedValue->deserialize(state, globalObject(), wrapped().ports(), SerializationErrorMode::NonThrowing);
         } else
             result = jsNull();
         break;

Modified: trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp (223904 => 223905)


--- trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp	2017-10-24 18:46:31 UTC (rev 223904)
+++ trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp	2017-10-24 18:50:54 UTC (rev 223905)
@@ -1716,7 +1716,7 @@
         return str;
     }
 
-    static DeserializationResult deserialize(ExecState* exec, JSGlobalObject* globalObject, Vector<RefPtr<MessagePort>>& messagePorts, ArrayBufferContentsArray* arrayBufferContentsArray, const Vector<uint8_t>& buffer, const Vector<String>& blobURLs, const Vector<String> blobFilePaths, ArrayBufferContentsArray* sharedBuffers
+    static DeserializationResult deserialize(ExecState* exec, JSGlobalObject* globalObject, const Vector<RefPtr<MessagePort>>& messagePorts, ArrayBufferContentsArray* arrayBufferContentsArray, const Vector<uint8_t>& buffer, const Vector<String>& blobURLs, const Vector<String> blobFilePaths, ArrayBufferContentsArray* sharedBuffers
 #if ENABLE(WEBASSEMBLY)
         , WasmModuleArray* wasmModules
 #endif
@@ -1773,7 +1773,7 @@
         size_t m_index;
     };
 
-    CloneDeserializer(ExecState* exec, JSGlobalObject* globalObject, Vector<RefPtr<MessagePort>>& messagePorts, ArrayBufferContentsArray* arrayBufferContents,
+    CloneDeserializer(ExecState* exec, JSGlobalObject* globalObject, const Vector<RefPtr<MessagePort>>& messagePorts, ArrayBufferContentsArray* arrayBufferContents,
 #if ENABLE(WEBASSEMBLY)
         WasmModuleArray* wasmModules,
 #endif
@@ -1795,7 +1795,7 @@
             m_version = 0xFFFFFFFF;
     }
 
-    CloneDeserializer(ExecState* exec, JSGlobalObject* globalObject, Vector<RefPtr<MessagePort>>& messagePorts, ArrayBufferContentsArray* arrayBufferContents, const Vector<uint8_t>& buffer, const Vector<String>& blobURLs, const Vector<String> blobFilePaths, ArrayBufferContentsArray* sharedBuffers
+    CloneDeserializer(ExecState* exec, JSGlobalObject* globalObject, const Vector<RefPtr<MessagePort>>& messagePorts, ArrayBufferContentsArray* arrayBufferContents, const Vector<uint8_t>& buffer, const Vector<String>& blobURLs, const Vector<String> blobFilePaths, ArrayBufferContentsArray* sharedBuffers
 #if ENABLE(WEBASSEMBLY)
         , WasmModuleArray* wasmModules
 #endif
@@ -2935,7 +2935,7 @@
     const uint8_t* m_end;
     unsigned m_version;
     Vector<CachedString> m_constantPool;
-    Vector<RefPtr<MessagePort>>& m_messagePorts;
+    const Vector<RefPtr<MessagePort>>& m_messagePorts;
     ArrayBufferContentsArray* m_arrayBufferContents;
     Vector<RefPtr<JSC::ArrayBuffer>> m_arrayBuffers;
     Vector<String> m_blobURLs;
@@ -3358,11 +3358,10 @@
 
 JSValue SerializedScriptValue::deserialize(ExecState& exec, JSGlobalObject* globalObject, SerializationErrorMode throwExceptions)
 {
-    Vector<RefPtr<MessagePort>> dummyMessagePorts;
-    return deserialize(exec, globalObject, dummyMessagePorts, throwExceptions);
+    return deserialize(exec, globalObject, { }, throwExceptions);
 }
 
-JSValue SerializedScriptValue::deserialize(ExecState& exec, JSGlobalObject* globalObject, Vector<RefPtr<MessagePort>>& messagePorts, SerializationErrorMode throwExceptions)
+JSValue SerializedScriptValue::deserialize(ExecState& exec, JSGlobalObject* globalObject, const Vector<RefPtr<MessagePort>>& messagePorts, SerializationErrorMode throwExceptions)
 {
     Vector<String> dummyBlobs;
     Vector<String> dummyPaths;
@@ -3369,7 +3368,7 @@
     return deserialize(exec, globalObject, messagePorts, dummyBlobs, dummyPaths, throwExceptions);
 }
 
-JSValue SerializedScriptValue::deserialize(ExecState& exec, JSGlobalObject* globalObject, Vector<RefPtr<MessagePort>>& messagePorts, const Vector<String>& blobURLs, const Vector<String>& blobFilePaths, SerializationErrorMode throwExceptions)
+JSValue SerializedScriptValue::deserialize(ExecState& exec, JSGlobalObject* globalObject, const Vector<RefPtr<MessagePort>>& messagePorts, const Vector<String>& blobURLs, const Vector<String>& blobFilePaths, SerializationErrorMode throwExceptions)
 {
     DeserializationResult result = CloneDeserializer::deserialize(&exec, globalObject, messagePorts, m_arrayBufferContentsArray.get(), m_data, blobURLs, blobFilePaths, m_sharedBufferContentsArray.get()
 #if ENABLE(WEBASSEMBLY)

Modified: trunk/Source/WebCore/bindings/js/SerializedScriptValue.h (223904 => 223905)


--- trunk/Source/WebCore/bindings/js/SerializedScriptValue.h	2017-10-24 18:46:31 UTC (rev 223904)
+++ trunk/Source/WebCore/bindings/js/SerializedScriptValue.h	2017-10-24 18:50:54 UTC (rev 223905)
@@ -73,8 +73,8 @@
     static Ref<SerializedScriptValue> nullValue();
 
     WEBCORE_EXPORT JSC::JSValue deserialize(JSC::ExecState&, JSC::JSGlobalObject*, SerializationErrorMode = SerializationErrorMode::Throwing);
-    WEBCORE_EXPORT JSC::JSValue deserialize(JSC::ExecState&, JSC::JSGlobalObject*, Vector<RefPtr<MessagePort>>&, SerializationErrorMode = SerializationErrorMode::Throwing);
-    JSC::JSValue deserialize(JSC::ExecState&, JSC::JSGlobalObject*, Vector<RefPtr<MessagePort>>&, const Vector<String>& blobURLs, const Vector<String>& blobFilePaths, SerializationErrorMode = SerializationErrorMode::Throwing);
+    WEBCORE_EXPORT JSC::JSValue deserialize(JSC::ExecState&, JSC::JSGlobalObject*, const Vector<RefPtr<MessagePort>>&, SerializationErrorMode = SerializationErrorMode::Throwing);
+    JSC::JSValue deserialize(JSC::ExecState&, JSC::JSGlobalObject*, const Vector<RefPtr<MessagePort>>&, const Vector<String>& blobURLs, const Vector<String>& blobFilePaths, SerializationErrorMode = SerializationErrorMode::Throwing);
 
     static uint32_t wireFormatVersion();
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to