| Index: third_party/WebKit/Source/bindings/core/v8/SerializedScriptValue.h
|
| diff --git a/third_party/WebKit/Source/bindings/core/v8/SerializedScriptValue.h b/third_party/WebKit/Source/bindings/core/v8/SerializedScriptValue.h
|
| index 77658e791ca7533c423bbe245392c66d65752c7f..61ebf720ef2c458cc762dca065309b845d3cd2b4 100644
|
| --- a/third_party/WebKit/Source/bindings/core/v8/SerializedScriptValue.h
|
| +++ b/third_party/WebKit/Source/bindings/core/v8/SerializedScriptValue.h
|
| @@ -33,6 +33,7 @@
|
|
|
| #include "bindings/core/v8/ScriptValue.h"
|
| #include "core/CoreExport.h"
|
| +#include "third_party/skia/include/core/SkImage.h"
|
| #include "wtf/HashMap.h"
|
| #include "wtf/ThreadSafeRefCounted.h"
|
| #include <v8.h>
|
| @@ -48,6 +49,7 @@ namespace blink {
|
| class BlobDataHandle;
|
| class DOMArrayBufferBase;
|
| class ExceptionState;
|
| +class ImageBitmap;
|
| class MessagePort;
|
| class WebBlobInfo;
|
|
|
| @@ -55,6 +57,7 @@ typedef HeapVector<Member<MessagePort>, 1> MessagePortArray;
|
| typedef Vector<RefPtr<DOMArrayBufferBase>, 1> ArrayBufferArray;
|
| typedef HashMap<String, RefPtr<BlobDataHandle>> BlobDataHandleMap;
|
| typedef Vector<WebBlobInfo> WebBlobInfoArray;
|
| +typedef WillBeHeapVector<RefPtrWillBeMember<ImageBitmap>, 1> ImageBitmapArray;
|
|
|
| class CORE_EXPORT SerializedScriptValue : public ThreadSafeRefCounted<SerializedScriptValue> {
|
| public:
|
| @@ -89,7 +92,7 @@ public:
|
| // Also validates the elements per sections 4.1.13 and 4.1.15 of the WebIDL spec and section 8.3.3
|
| // of the HTML5 spec and generates exceptions as appropriate.
|
| // Returns true if the array was filled, or false if the passed value was not of an appropriate type.
|
| - static bool extractTransferables(v8::Isolate*, v8::Local<v8::Value>, int, MessagePortArray&, ArrayBufferArray&, ExceptionState&);
|
| + static bool extractTransferables(v8::Isolate*, v8::Local<v8::Value>, int, MessagePortArray&, ArrayBufferArray&, ImageBitmapArray&, ExceptionState&);
|
|
|
| // Informs the V8 about external memory allocated and owned by this object. Large values should contribute
|
| // to GC counters to eventually trigger a GC, otherwise flood of postMessage() can cause OOM.
|
| @@ -107,6 +110,7 @@ private:
|
| WireData
|
| };
|
| typedef Vector<WTF::ArrayBufferContents, 1> ArrayBufferContentsArray;
|
| + typedef Vector<RefPtr<SkImage>, 1> ImageBitmapContentsArray;
|
|
|
| SerializedScriptValue();
|
| explicit SerializedScriptValue(const String& wireData);
|
| @@ -115,13 +119,17 @@ private:
|
| String& data() { return m_data; }
|
| void setData(const String& data) { m_data = data; }
|
| void transferArrayBuffers(v8::Isolate*, ArrayBufferArray&, ExceptionState&);
|
| + void transferImageBitmaps(v8::Isolate*, ImageBitmapArray&, ExceptionState&);
|
| ArrayBufferContentsArray* arrayBufferContentsArray() { return m_arrayBufferContentsArray.get(); }
|
| + ImageBitmapContentsArray* imageBitmapContentsArray() { return m_imageBitmapContentsArray.get(); }
|
|
|
| static PassOwnPtr<ArrayBufferContentsArray> createArrayBuffers(v8::Isolate*, ArrayBufferArray&, ExceptionState&);
|
| + static PassOwnPtr<ImageBitmapContentsArray> createImageBitmaps(v8::Isolate*, ImageBitmapArray&, ExceptionState&);
|
|
|
| private:
|
| String m_data;
|
| OwnPtr<ArrayBufferContentsArray> m_arrayBufferContentsArray;
|
| + OwnPtr<ImageBitmapContentsArray> m_imageBitmapContentsArray;
|
| BlobDataHandleMap m_blobDataHandles;
|
| intptr_t m_externallyAllocatedMemory;
|
|
|
|
|