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

Side by Side Diff: third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.h

Issue 2778483002: Synchronize commits at end of JS task (Closed)
Patch Set: fix layout test Created 3 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 OffscreenCanvas_h 5 #ifndef OffscreenCanvas_h
6 #define OffscreenCanvas_h 6 #define OffscreenCanvas_h
7 7
8 #include "bindings/core/v8/ScriptPromise.h" 8 #include "bindings/core/v8/ScriptPromise.h"
9 #include "bindings/core/v8/ScriptState.h" 9 #include "bindings/core/v8/ScriptState.h"
10 #include "bindings/core/v8/ScriptWrappable.h" 10 #include "bindings/core/v8/ScriptWrappable.h"
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 uint32_t clientId() const { return m_clientId; } 84 uint32_t clientId() const { return m_clientId; }
85 uint32_t sinkId() const { return m_sinkId; } 85 uint32_t sinkId() const { return m_sinkId; }
86 86
87 void setExecutionContext(ExecutionContext* context) { 87 void setExecutionContext(ExecutionContext* context) {
88 m_executionContext = context; 88 m_executionContext = context;
89 } 89 }
90 90
91 ScriptPromise commit(RefPtr<StaticBitmapImage>, 91 ScriptPromise commit(RefPtr<StaticBitmapImage>,
92 bool isWebGLSoftwareRendering, 92 bool isWebGLSoftwareRendering,
93 ScriptState*); 93 ScriptState*);
94 void finalizeFrame();
94 95
95 void detachContext() { m_context = nullptr; } 96 void detachContext() { m_context = nullptr; }
96 97
97 // OffscreenCanvasFrameDispatcherClient implementation 98 // OffscreenCanvasFrameDispatcherClient implementation
98 void beginFrame() final; 99 void beginFrame() final;
99 100
100 // EventTarget implementation 101 // EventTarget implementation
101 const AtomicString& interfaceName() const final { 102 const AtomicString& interfaceName() const final {
102 return EventTargetNames::OffscreenCanvas; 103 return EventTargetNames::OffscreenCanvas;
103 } 104 }
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 151
151 IntSize m_size; 152 IntSize m_size;
152 bool m_isNeutered = false; 153 bool m_isNeutered = false;
153 154
154 bool m_originClean = true; 155 bool m_originClean = true;
155 bool m_disableReadingFromCanvas = false; 156 bool m_disableReadingFromCanvas = false;
156 157
157 bool isPaintable() const; 158 bool isPaintable() const;
158 159
159 std::unique_ptr<OffscreenCanvasFrameDispatcher> m_frameDispatcher; 160 std::unique_ptr<OffscreenCanvasFrameDispatcher> m_frameDispatcher;
161
160 Member<ScriptPromiseResolver> m_commitPromiseResolver; 162 Member<ScriptPromiseResolver> m_commitPromiseResolver;
161 RefPtr<StaticBitmapImage> m_overdrawFrame; 163 RefPtr<StaticBitmapImage> m_currentFrame;
162 bool m_overdrawFrameIsWebGLSoftwareRendering = false; 164 bool m_currentFrameIsWebGLSoftwareRendering = false;
165
163 // cc::FrameSinkId is broken into two integer components as this can be used 166 // cc::FrameSinkId is broken into two integer components as this can be used
164 // in transfer of OffscreenCanvas across threads 167 // in transfer of OffscreenCanvas across threads
165 // If this object is not created via 168 // If this object is not created via
166 // HTMLCanvasElement.transferControlToOffscreen(), 169 // HTMLCanvasElement.transferControlToOffscreen(),
167 // then the following members would remain as initialized zero values. 170 // then the following members would remain as initialized zero values.
168 uint32_t m_clientId = 0; 171 uint32_t m_clientId = 0;
169 uint32_t m_sinkId = 0; 172 uint32_t m_sinkId = 0;
170 }; 173 };
171 174
172 } // namespace blink 175 } // namespace blink
173 176
174 #endif // OffscreenCanvas_h 177 #endif // OffscreenCanvas_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698