Index: third_party/WebKit/Source/bindings/modules/v8/TransferableOffscreenCanvas.h |
diff --git a/third_party/WebKit/Source/bindings/modules/v8/TransferableOffscreenCanvas.h b/third_party/WebKit/Source/bindings/modules/v8/TransferableOffscreenCanvas.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c4daccc2e840bbe0438a2652edb7f10f4ce2007f |
--- /dev/null |
+++ b/third_party/WebKit/Source/bindings/modules/v8/TransferableOffscreenCanvas.h |
@@ -0,0 +1,56 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef TransferableOffscreenCanvas_h |
+#define TransferableOffscreenCanvas_h |
+ |
+#include "bindings/core/v8/ScriptValueSerializer.h" |
+#include "bindings/core/v8/SerializedScriptValue.h" |
+#include "bindings/core/v8/Transferable.h" |
+#include "modules/ModulesExport.h" |
+#include "modules/offscreencanvas/OffscreenCanvas.h" |
+ |
+namespace blink { |
+ |
+class MODULES_EXPORT TransferableOffscreenCanvas : public Transferable { |
+public: |
+ ~TransferableOffscreenCanvas() override { } |
+ void append(OffscreenCanvas* offscreenCanvas) |
+ { |
+ m_offscreenCanvasArray.append(offscreenCanvas); |
+ } |
+ bool contains(OffscreenCanvas* offscreenCanvas) |
+ { |
+ return m_offscreenCanvasArray.contains(offscreenCanvas); |
+ } |
+ static TransferableOffscreenCanvas* ensure(TransferableArray& transferables) |
+ { |
+ if (transferables.size() <= ScriptValueSerializer::TransferableOffscreenCanvasType) { |
+ transferables.resize(ScriptValueSerializer::TransferableOffscreenCanvasType + 1); |
+ transferables[ScriptValueSerializer::TransferableOffscreenCanvasType] = new TransferableOffscreenCanvas(); |
+ } |
+ return static_cast<TransferableOffscreenCanvas*>(transferables[ScriptValueSerializer::TransferableOffscreenCanvasType].get()); |
+ } |
+ static TransferableOffscreenCanvas* get(const TransferableArray& transferables) |
+ { |
+ if (transferables.size() <= ScriptValueSerializer::TransferableOffscreenCanvasType) |
+ return nullptr; |
+ return static_cast<TransferableOffscreenCanvas*>(transferables[ScriptValueSerializer::TransferableOffscreenCanvasType].get()); |
+ } |
+ HeapVector<Member<OffscreenCanvas>, 1>& getArray() |
+ { |
+ return m_offscreenCanvasArray; |
+ } |
+ DEFINE_INLINE_TRACE() |
+ { |
+ visitor->trace(m_offscreenCanvasArray); |
+ Transferable::trace(visitor); |
+ } |
+private: |
+ HeapVector<Member<OffscreenCanvas>, 1> m_offscreenCanvasArray; |
+}; |
+ |
+} // namespace blink |
+ |
+#endif // TransferableOffscreenCanvas_h |