Index: third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializer.h |
diff --git a/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializer.h b/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializer.h |
index d678ef67356b144a41ef66437aef80660e9bc38e..d2a970617fc140c777a7baba36000cf434a29808 100644 |
--- a/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializer.h |
+++ b/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializer.h |
@@ -25,8 +25,7 @@ class Transferables; |
// |
// A serializer cannot be used multiple times; it is expected that its serialize |
// method will be invoked exactly once. |
-class V8ScriptValueSerializer { |
- STACK_ALLOCATED(); |
+class V8ScriptValueSerializer : public v8::ValueSerializer::Delegate { |
WTF_MAKE_NONCOPYABLE(V8ScriptValueSerializer); |
public: |
explicit V8ScriptValueSerializer(RefPtr<ScriptState>); |
@@ -35,9 +34,13 @@ public: |
private: |
void transfer(Transferables*, ExceptionState&); |
+ // v8::ValueSerializer::Delegate |
+ void ThrowDataCloneError(v8::Local<v8::String> message) override; |
+ |
RefPtr<ScriptState> m_scriptState; |
RefPtr<SerializedScriptValue> m_serializedScriptValue; |
v8::ValueSerializer m_serializer; |
+ ExceptionState* m_exceptionState = nullptr; |
#if DCHECK_IS_ON() |
bool m_serializeInvoked = false; |
#endif |