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

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

Issue 1862033002: Make OffscreenCanvas Transferable (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: update layout test results 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
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef TransferableOffscreenCanvas_h
6 #define TransferableOffscreenCanvas_h
7
8 #include "bindings/core/v8/ScriptValueSerializer.h"
9 #include "bindings/core/v8/SerializedScriptValue.h"
10 #include "bindings/core/v8/Transferable.h"
11 #include "modules/ModulesExport.h"
12 #include "modules/offscreencanvas/OffscreenCanvas.h"
13
14 namespace blink {
15
16 class MODULES_EXPORT TransferableOffscreenCanvas : public Transferable {
17 public:
18 ~TransferableOffscreenCanvas() override { }
19 void append(OffscreenCanvas* offscreenCanvas)
20 {
21 m_offscreenCanvasArray.append(offscreenCanvas);
22 }
23 bool contains(OffscreenCanvas* offscreenCanvas)
24 {
25 return m_offscreenCanvasArray.contains(offscreenCanvas);
26 }
27 static TransferableOffscreenCanvas* ensure(TransferableArray& transferables)
28 {
29 if (transferables.size() <= ScriptValueSerializer::TransferableOffscreen CanvasType) {
30 transferables.resize(ScriptValueSerializer::TransferableOffscreenCan vasType + 1);
31 transferables[ScriptValueSerializer::TransferableOffscreenCanvasType ] = new TransferableOffscreenCanvas();
32 }
33 return static_cast<TransferableOffscreenCanvas*>(transferables[ScriptVal ueSerializer::TransferableOffscreenCanvasType].get());
34 }
35 static TransferableOffscreenCanvas* get(const TransferableArray& transferabl es)
36 {
37 if (transferables.size() <= ScriptValueSerializer::TransferableOffscreen CanvasType)
38 return nullptr;
39 return static_cast<TransferableOffscreenCanvas*>(transferables[ScriptVal ueSerializer::TransferableOffscreenCanvasType].get());
40 }
41 HeapVector<Member<OffscreenCanvas>, 1>& getArray()
42 {
43 return m_offscreenCanvasArray;
44 }
45 DEFINE_INLINE_TRACE()
46 {
47 visitor->trace(m_offscreenCanvasArray);
48 Transferable::trace(visitor);
49 }
50 private:
51 HeapVector<Member<OffscreenCanvas>, 1> m_offscreenCanvasArray;
52 };
53
54 } // namespace blink
55
56 #endif // TransferableOffscreenCanvas_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698