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

Side by Side Diff: Source/bindings/core/v8/SerializedScriptValueFactory.h

Issue 1097773004: Sharing of SharedArrayBuffer via PostMessage transfer (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: update for non-split typedarray hierarchy Created 5 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef SerializedScriptValueFactory_h 5 #ifndef SerializedScriptValueFactory_h
6 #define SerializedScriptValueFactory_h 6 #define SerializedScriptValueFactory_h
7 7
8 #include "bindings/core/v8/ScriptValueSerializer.h" 8 #include "bindings/core/v8/ScriptValueSerializer.h"
9 #include "bindings/core/v8/SerializedScriptValue.h" 9 #include "bindings/core/v8/SerializedScriptValue.h"
10 #include "core/CoreExport.h" 10 #include "core/CoreExport.h"
11 #include "wtf/Noncopyable.h" 11 #include "wtf/Noncopyable.h"
12 12
13 namespace blink { 13 namespace blink {
14 14
15 class CORE_EXPORT SerializedScriptValueFactory { 15 class CORE_EXPORT SerializedScriptValueFactory {
16 WTF_MAKE_NONCOPYABLE(SerializedScriptValueFactory); 16 WTF_MAKE_NONCOPYABLE(SerializedScriptValueFactory);
17 public: 17 public:
18 SerializedScriptValueFactory() { } 18 SerializedScriptValueFactory() { }
19 19
20 // If a serialization error occurs (e.g., cyclic input value) this 20 // If a serialization error occurs (e.g., cyclic input value) this
21 // function returns an empty representation, schedules a V8 exception to 21 // function returns an empty representation, schedules a V8 exception to
22 // be thrown using v8::ThrowException(), and sets |didThrow|. In this case 22 // be thrown using v8::ThrowException(), and sets |didThrow|. In this case
23 // the caller must not invoke any V8 operations until control returns to 23 // the caller must not invoke any V8 operations until control returns to
24 // V8. When serialization is successful, |didThrow| is false. 24 // V8. When serialization is successful, |didThrow| is false.
25 virtual PassRefPtr<SerializedScriptValue> create(v8::Isolate*, v8::Local<v8: :Value>, MessagePortArray*, ArrayBufferArray*, WebBlobInfoArray*, ExceptionState &); 25 virtual PassRefPtr<SerializedScriptValue> create(v8::Isolate*, v8::Local<v8: :Value>, MessagePortArray*, ArrayBufferArray*, SharedArrayBufferArray*, WebBlobI nfoArray*, ExceptionState&);
26 PassRefPtr<SerializedScriptValue> create(v8::Isolate*, v8::Local<v8::Value>, MessagePortArray*, ArrayBufferArray*, ExceptionState&); 26 PassRefPtr<SerializedScriptValue> create(v8::Isolate*, v8::Local<v8::Value>, MessagePortArray*, ArrayBufferArray*, SharedArrayBufferArray*, ExceptionState&) ;
27 PassRefPtr<SerializedScriptValue> createFromWire(const String&); 27 PassRefPtr<SerializedScriptValue> createFromWire(const String&);
28 PassRefPtr<SerializedScriptValue> createFromWireBytes(const char* data, size _t length); 28 PassRefPtr<SerializedScriptValue> createFromWireBytes(const char* data, size _t length);
29 PassRefPtr<SerializedScriptValue> create(const String&); 29 PassRefPtr<SerializedScriptValue> create(const String&);
30 virtual PassRefPtr<SerializedScriptValue> create(v8::Isolate*, const String& ); 30 virtual PassRefPtr<SerializedScriptValue> create(v8::Isolate*, const String& );
31 PassRefPtr<SerializedScriptValue> create(); 31 PassRefPtr<SerializedScriptValue> create();
32 PassRefPtr<SerializedScriptValue> create(v8::Isolate*, const ScriptValue&, W ebBlobInfoArray*, ExceptionState&); 32 PassRefPtr<SerializedScriptValue> create(v8::Isolate*, const ScriptValue&, W ebBlobInfoArray*, ExceptionState&);
33 33
34 // Never throws exceptions. 34 // Never throws exceptions.
35 PassRefPtr<SerializedScriptValue> createAndSwallowExceptions(v8::Isolate*, v 8::Local<v8::Value>); 35 PassRefPtr<SerializedScriptValue> createAndSwallowExceptions(v8::Isolate*, v 8::Local<v8::Value>);
36 36
(...skipping 10 matching lines...) Expand all
47 47
48 // SerializedScriptValueFactory::initialize() should be invoked when Blink i s initialized, 48 // SerializedScriptValueFactory::initialize() should be invoked when Blink i s initialized,
49 // i.e. initializeWithoutV8() in WebKit.cpp. 49 // i.e. initializeWithoutV8() in WebKit.cpp.
50 static void initialize(SerializedScriptValueFactory* newFactory) 50 static void initialize(SerializedScriptValueFactory* newFactory)
51 { 51 {
52 ASSERT(!m_instance); 52 ASSERT(!m_instance);
53 m_instance = newFactory; 53 m_instance = newFactory;
54 } 54 }
55 55
56 protected: 56 protected:
57 ScriptValueSerializer::Status doSerialize(v8::Local<v8::Value>, SerializedSc riptValueWriter&, MessagePortArray*, ArrayBufferArray*, WebBlobInfoArray*, Seria lizedScriptValue*, v8::TryCatch&, String& errorMessage, v8::Isolate*); 57 ScriptValueSerializer::Status doSerialize(v8::Local<v8::Value>, SerializedSc riptValueWriter&, MessagePortArray*, ArrayBufferArray*, SharedArrayBufferArray*, WebBlobInfoArray*, SerializedScriptValue*, v8::TryCatch&, String& errorMessage, v8::Isolate*);
58 virtual ScriptValueSerializer::Status doSerialize(v8::Local<v8::Value>, Seri alizedScriptValueWriter&, MessagePortArray*, ArrayBufferArray*, WebBlobInfoArray *, BlobDataHandleMap&, v8::TryCatch&, String& errorMessage, v8::Isolate*); 58 virtual ScriptValueSerializer::Status doSerialize(v8::Local<v8::Value>, Seri alizedScriptValueWriter&, MessagePortArray*, ArrayBufferArray*, SharedArrayBuffe rArray*, WebBlobInfoArray*, BlobDataHandleMap&, v8::TryCatch&, String& errorMess age, v8::Isolate*);
59 void transferData(SerializedScriptValue*, SerializedScriptValueWriter&, Arra yBufferArray*, ExceptionState&, v8::Isolate*); 59 void transferData(SerializedScriptValue*, SerializedScriptValueWriter&, Arra yBufferArray*, SharedArrayBufferArray*, ExceptionState&, v8::Isolate*);
60 60
61 virtual v8::Local<v8::Value> deserialize(String& data, BlobDataHandleMap& bl obDataHandles, ArrayBufferContentsArray*, v8::Isolate*, MessagePortArray* messag ePorts, const WebBlobInfoArray*); 61 virtual v8::Local<v8::Value> deserialize(String& data, BlobDataHandleMap& bl obDataHandles, ArrayBufferContentsArray*, v8::Isolate*, MessagePortArray* messag ePorts, const WebBlobInfoArray*);
62 62
63 private: 63 private:
64 static SerializedScriptValueFactory* m_instance; 64 static SerializedScriptValueFactory* m_instance;
65 }; 65 };
66 66
67 } // namespace blink 67 } // namespace blink
68 68
69 #endif // SerializedScriptValueFactory_h 69 #endif // SerializedScriptValueFactory_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698