| Index: third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.cpp
|
| diff --git a/third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.cpp b/third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.cpp
|
| index b5f8febd6e7bfcd7f93520e4634a53b70aa5fd7f..1d62bf46088754aaa1d7afd728e2f571bcf2cf46 100644
|
| --- a/third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.cpp
|
| +++ b/third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.cpp
|
| @@ -9,6 +9,7 @@
|
| #include "core/html/canvas/CanvasRenderingContext.h"
|
| #include "core/html/canvas/CanvasRenderingContextFactory.h"
|
| #include "platform/graphics/ImageBuffer.h"
|
| +#include "platform/graphics/OffscreenCanvasFrameDispatcherImpl.h"
|
| #include "wtf/MathExtras.h"
|
| #include <memory>
|
|
|
| @@ -27,11 +28,18 @@ OffscreenCanvas* OffscreenCanvas::create(unsigned width, unsigned height)
|
|
|
| void OffscreenCanvas::setWidth(unsigned width)
|
| {
|
| + // If this OffscreenCanvas is transferred control by an html canvas,
|
| + // its size is determined by html canvas's size and cannot be resized.
|
| + if (m_canvasId >= 0)
|
| + return;
|
| m_size.setWidth(clampTo<int>(width));
|
| }
|
|
|
| void OffscreenCanvas::setHeight(unsigned height)
|
| {
|
| + // Same comment as above.
|
| + if (m_canvasId >= 0)
|
| + return;
|
| m_size.setHeight(clampTo<int>(height));
|
| }
|
|
|
| @@ -134,6 +142,13 @@ bool OffscreenCanvas::isPaintable() const
|
| return m_context->isPaintable();
|
| }
|
|
|
| +OffscreenCanvasFrameDispatcher* OffscreenCanvas::getOrCreateFrameDispatcher()
|
| +{
|
| + if (!m_frameDispatcher)
|
| + m_frameDispatcher = wrapUnique(new OffscreenCanvasFrameDispatcherImpl(m_clientId, m_localId, m_nonce, width(), height()));
|
| + return m_frameDispatcher.get();
|
| +}
|
| +
|
| DEFINE_TRACE(OffscreenCanvas)
|
| {
|
| visitor->trace(m_context);
|
|
|