Index: third_party/WebKit/Source/modules/offscreencanvas2d/OffscreenCanvasRenderingContext2D.cpp |
diff --git a/third_party/WebKit/Source/modules/offscreencanvas2d/OffscreenCanvasRenderingContext2D.cpp b/third_party/WebKit/Source/modules/offscreencanvas2d/OffscreenCanvasRenderingContext2D.cpp |
index 969e1d2f044111ed792b92e087fcddc902cef016..c262bd7db3762d7c2a2c988b27feaaf29b94e944 100644 |
--- a/third_party/WebKit/Source/modules/offscreencanvas2d/OffscreenCanvasRenderingContext2D.cpp |
+++ b/third_party/WebKit/Source/modules/offscreencanvas2d/OffscreenCanvasRenderingContext2D.cpp |
@@ -43,11 +43,12 @@ DEFINE_TRACE(OffscreenCanvasRenderingContext2D) { |
BaseRenderingContext2D::trace(visitor); |
} |
-void OffscreenCanvasRenderingContext2D::commit(ScriptState* scriptState, |
- ExceptionState& exceptionState) { |
+ScriptPromise OffscreenCanvasRenderingContext2D::commit( |
+ ScriptState* scriptState, |
+ ExceptionState& exceptionState) { |
UseCounter::Feature feature = UseCounter::OffscreenCanvasCommit2D; |
UseCounter::count(scriptState->getExecutionContext(), feature); |
- if (!getOffscreenCanvas()->hasPlaceholderCanvas()) { |
+ if (!offscreenCanvas()->hasPlaceholderCanvas()) { |
// If an OffscreenCanvas has no associated canvas Id, it indicates that |
// it is not an OffscreenCanvas created by transfering control from html |
// canvas. |
@@ -55,21 +56,21 @@ void OffscreenCanvasRenderingContext2D::commit(ScriptState* scriptState, |
"Commit() was called on a context whose " |
"OffscreenCanvas is not associated with a " |
"canvas element."); |
- return; |
+ return exceptionState.reject(scriptState); |
} |
- double commitStartTime = WTF::monotonicallyIncreasingTime(); |
- RefPtr<StaticBitmapImage> image = transferToStaticBitmapImage(); |
- getOffscreenCanvas()->getOrCreateFrameDispatcher()->dispatchFrame( |
- std::move(image), commitStartTime); |
+ |
+ bool isWebGLSoftwareRendering = false; |
+ return offscreenCanvas()->commit(transferToStaticBitmapImage(), |
+ isWebGLSoftwareRendering, scriptState); |
} |
// BaseRenderingContext2D implementation |
bool OffscreenCanvasRenderingContext2D::originClean() const { |
- return getOffscreenCanvas()->originClean(); |
+ return offscreenCanvas()->originClean(); |
} |
void OffscreenCanvasRenderingContext2D::setOriginTainted() { |
- return getOffscreenCanvas()->setOriginTainted(); |
+ return offscreenCanvas()->setOriginTainted(); |
} |
bool OffscreenCanvasRenderingContext2D::wouldTaintOrigin( |
@@ -87,11 +88,11 @@ bool OffscreenCanvasRenderingContext2D::wouldTaintOrigin( |
} |
int OffscreenCanvasRenderingContext2D::width() const { |
- return getOffscreenCanvas()->width(); |
+ return offscreenCanvas()->width(); |
} |
int OffscreenCanvasRenderingContext2D::height() const { |
- return getOffscreenCanvas()->height(); |
+ return offscreenCanvas()->height(); |
} |
bool OffscreenCanvasRenderingContext2D::hasImageBuffer() const { |
@@ -180,7 +181,7 @@ ImageData* OffscreenCanvasRenderingContext2D::toImageData( |
m_imageBuffer->newSkImageSnapshot(PreferNoAcceleration, reason); |
ImageData* imageData = nullptr; |
if (snapshot) { |
- imageData = ImageData::create(this->getOffscreenCanvas()->size()); |
+ imageData = ImageData::create(offscreenCanvas()->size()); |
SkImageInfo imageInfo = |
SkImageInfo::Make(this->width(), this->height(), kRGBA_8888_SkColorType, |
kUnpremul_SkAlphaType); |