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

Unified Diff: third_party/WebKit/Source/core/events/MessageEvent.h

Issue 2849373002: Stop storing ScriptValue in MessageEvent (Closed)
Patch Set: Created 3 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/core/events/MessageEvent.h
diff --git a/third_party/WebKit/Source/core/events/MessageEvent.h b/third_party/WebKit/Source/core/events/MessageEvent.h
index 734785f2746a1f6156dc390986b960e4a674c53a..b3759a43b6004d1470595e91d682b7161ffea6b4 100644
--- a/third_party/WebKit/Source/core/events/MessageEvent.h
+++ b/third_party/WebKit/Source/core/events/MessageEvent.h
@@ -31,6 +31,7 @@
#include <memory>
#include "bindings/core/v8/SerializedScriptValue.h"
+#include "bindings/core/v8/TraceWrapperV8Reference.h"
#include "core/CoreExport.h"
#include "core/dom/DOMArrayBuffer.h"
#include "core/dom/MessagePort.h"
@@ -129,17 +130,14 @@ class CORE_EXPORT MessageEvent final : public Event {
const AtomicString& InterfaceName() const override;
enum DataType {
- kDataTypeScriptValue,
+ kDataTypeV8Reference,
kDataTypeSerializedScriptValue,
kDataTypeString,
kDataTypeBlob,
kDataTypeArrayBuffer
};
DataType GetDataType() const { return data_type_; }
- ScriptValue DataAsScriptValue() const {
- DCHECK_EQ(data_type_, kDataTypeScriptValue);
- return data_as_script_value_;
- }
+ ScriptValue DataAsScriptValue(ScriptState*) const;
SerializedScriptValue* DataAsSerializedScriptValue() const {
DCHECK_EQ(data_type_, kDataTypeSerializedScriptValue);
return data_as_serialized_script_value_.Get();
@@ -166,6 +164,8 @@ class CORE_EXPORT MessageEvent final : public Event {
DECLARE_VIRTUAL_TRACE();
+ DECLARE_VIRTUAL_TRACE_WRAPPERS();
+
WARN_UNUSED_RESULT v8::Local<v8::Object> AssociateWithWrapper(
v8::Isolate*,
const WrapperTypeInfo*,
@@ -201,7 +201,7 @@ class CORE_EXPORT MessageEvent final : public Event {
const String& suborigin);
DataType data_type_;
- ScriptValue data_as_script_value_;
+ TraceWrapperV8Reference<v8::Value> data_as_v8_value_reference_;
haraken 2017/05/02 08:10:14 In a follow-up CL, I'd prefer introducing: Worl
bashi 2017/05/02 08:46:22 Agreed that we should have such class or mechanism
RefPtr<SerializedScriptValue> data_as_serialized_script_value_;
String data_as_string_;
Member<Blob> data_as_blob_;

Powered by Google App Engine
This is Rietveld 408576698