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

Side by Side Diff: third_party/WebKit/Source/bindings/modules/v8/ScriptValueSerializerForModules.h

Issue 1862033002: Make OffscreenCanvas Transferable (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: no need to register, taking the same approach as extractTransferables Created 4 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 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 ScriptValueSerializerForModules_h 5 #ifndef ScriptValueSerializerForModules_h
6 #define ScriptValueSerializerForModules_h 6 #define ScriptValueSerializerForModules_h
7 7
8 #include "bindings/core/v8/ScriptValueSerializer.h" 8 #include "bindings/core/v8/ScriptValueSerializer.h"
9 #include "public/platform/WebCrypto.h" 9 #include "public/platform/WebCrypto.h"
10 #include "public/platform/WebCryptoKey.h" 10 #include "public/platform/WebCryptoKey.h"
11 #include "public/platform/WebCryptoKeyAlgorithm.h" 11 #include "public/platform/WebCryptoKeyAlgorithm.h"
12 #include <v8.h> 12 #include <v8.h>
13 13
14 namespace blink { 14 namespace blink {
15 15
16 class SerializedScriptValueWriterForModules final : public SerializedScriptValue Writer { 16 class SerializedScriptValueWriterForModules final : public SerializedScriptValue Writer {
17 STACK_ALLOCATED(); 17 STACK_ALLOCATED();
18 WTF_MAKE_NONCOPYABLE(SerializedScriptValueWriterForModules); 18 WTF_MAKE_NONCOPYABLE(SerializedScriptValueWriterForModules);
19 public: 19 public:
20 SerializedScriptValueWriterForModules() 20 SerializedScriptValueWriterForModules()
21 : SerializedScriptValueWriter() 21 : SerializedScriptValueWriter()
22 { 22 {
23 } 23 }
24 24
25 void writeDOMFileSystem(int type, const String& name, const String& url); 25 void writeDOMFileSystem(int type, const String& name, const String& url);
26 void writeTransferredOffscreenCanvas(uint32_t index, uint32_t width, uint32_ t height, uint32_t id);
26 bool writeCryptoKey(const WebCryptoKey&); 27 bool writeCryptoKey(const WebCryptoKey&);
27 28
28 private: 29 private:
29 void doWriteHmacKey(const WebCryptoKey&); 30 void doWriteHmacKey(const WebCryptoKey&);
30 void doWriteAesKey(const WebCryptoKey&); 31 void doWriteAesKey(const WebCryptoKey&);
31 void doWriteRsaHashedKey(const WebCryptoKey&); 32 void doWriteRsaHashedKey(const WebCryptoKey&);
32 void doWriteEcKey(const WebCryptoKey&); 33 void doWriteEcKey(const WebCryptoKey&);
33 void doWriteKeyWithoutParams(const WebCryptoKey&); 34 void doWriteKeyWithoutParams(const WebCryptoKey&);
34 void doWriteAlgorithmId(WebCryptoAlgorithmId); 35 void doWriteAlgorithmId(WebCryptoAlgorithmId);
35 void doWriteAsymmetricKeyType(WebCryptoKeyType); 36 void doWriteAsymmetricKeyType(WebCryptoKeyType);
(...skipping 27 matching lines...) Expand all
63 bool doReadNamedCurve(WebCryptoNamedCurve&); 64 bool doReadNamedCurve(WebCryptoNamedCurve&);
64 bool doReadKeyUsages(WebCryptoKeyUsageMask& usages, bool& extractable); 65 bool doReadKeyUsages(WebCryptoKeyUsageMask& usages, bool& extractable);
65 }; 66 };
66 67
67 DEFINE_TYPE_CASTS(SerializedScriptValueReaderForModules, SerializedScriptValueRe ader, reader, true, true); 68 DEFINE_TYPE_CASTS(SerializedScriptValueReaderForModules, SerializedScriptValueRe ader, reader, true, true);
68 69
69 class ScriptValueSerializerForModules final : public ScriptValueSerializer { 70 class ScriptValueSerializerForModules final : public ScriptValueSerializer {
70 STACK_ALLOCATED(); 71 STACK_ALLOCATED();
71 WTF_MAKE_NONCOPYABLE(ScriptValueSerializerForModules); 72 WTF_MAKE_NONCOPYABLE(ScriptValueSerializerForModules);
72 public: 73 public:
73 ScriptValueSerializerForModules(SerializedScriptValueWriter&, const Transfer ables*, WebBlobInfoArray*, BlobDataHandleMap&, v8::TryCatch&, ScriptState*); 74 ScriptValueSerializerForModules(SerializedScriptValueWriter&, Transferables* , WebBlobInfoArray*, BlobDataHandleMap&, v8::TryCatch&, ScriptState*);
74 75
75 private: 76 private:
76 ScriptValueSerializer::StateBase* doSerializeValue(v8::Local<v8::Value>, Scr iptValueSerializer::StateBase* next) override; 77 ScriptValueSerializer::StateBase* doSerializeValue(v8::Local<v8::Value>, Scr iptValueSerializer::StateBase* next) override;
77 78
78 ScriptValueSerializer::StateBase* writeDOMFileSystem(v8::Local<v8::Value>, S criptValueSerializer::StateBase* next); 79 ScriptValueSerializer::StateBase* writeDOMFileSystem(v8::Local<v8::Value>, S criptValueSerializer::StateBase* next);
80 ScriptValueSerializer::StateBase* writeTransferredOffscreenCanvas(v8::Local< v8::Value>, uint32_t index, ScriptValueSerializer::StateBase* next);
79 bool writeCryptoKey(v8::Local<v8::Value>); 81 bool writeCryptoKey(v8::Local<v8::Value>);
82 typedef V8ObjectMap<v8::Object, uint32_t> ObjectPool;
83 ObjectPool m_transferredOffscreenCanvas;
84 SerializedScriptValueWriter& m_writer;
80 }; 85 };
81 86
82 class ScriptValueDeserializerForModules final : public ScriptValueDeserializer { 87 class ScriptValueDeserializerForModules final : public ScriptValueDeserializer {
83 STACK_ALLOCATED(); 88 STACK_ALLOCATED();
84 WTF_MAKE_NONCOPYABLE(ScriptValueDeserializerForModules); 89 WTF_MAKE_NONCOPYABLE(ScriptValueDeserializerForModules);
85 public: 90 public:
86 ScriptValueDeserializerForModules(SerializedScriptValueReaderForModules&, Me ssagePortArray* messagePorts, ArrayBufferContentsArray*, ImageBitmapContentsArra y*); 91 ScriptValueDeserializerForModules(SerializedScriptValueReaderForModules&, Me ssagePortArray* messagePorts, ArrayBufferContentsArray*, ImageBitmapContentsArra y*);
92 bool tryGetTransferredOffscreenCanvas(uint32_t index, uint32_t width, uint32 _t height, uint32_t id, v8::Local<v8::Value>*) override;
87 93
88 private: 94 private:
89 bool read(v8::Local<v8::Value>*) override; 95 bool read(v8::Local<v8::Value>*) override;
96 SerializedScriptValueReader& m_reader;
90 }; 97 };
91 98
92 } // namespace blink 99 } // namespace blink
93 100
94 #endif // ScriptValueSerializerForModules_h 101 #endif // ScriptValueSerializerForModules_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698