| Index: third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp
|
| diff --git a/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp b/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp
|
| index a4b809f4aab55537f7650293aad7220b5fdf560f..99d80457fbc82d9b94c6922e0466eafe9ec50180 100644
|
| --- a/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp
|
| +++ b/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "core/html/canvas/CanvasAsyncBlobCreator.h"
|
|
|
| +#include "core/dom/DOMException.h"
|
| #include "core/dom/Document.h"
|
| #include "core/dom/TaskRunnerHelper.h"
|
| #include "core/fileapi/Blob.h"
|
| @@ -478,8 +479,8 @@ void CanvasAsyncBlobCreator::createNullAndReturnResult() {
|
| WTF::bind(&BlobCallback::handleEvent,
|
| wrapPersistent(m_callback.get()), nullptr));
|
| } else {
|
| - Blob* blob = nullptr;
|
| - m_scriptPromiseResolver->reject(blob);
|
| + m_scriptPromiseResolver->reject(DOMException::create(
|
| + EncodingError, "Encoding of the source image has failed."));
|
| }
|
| // Avoid unwanted retention, see dispose().
|
| dispose();
|
| @@ -492,10 +493,10 @@ void CanvasAsyncBlobCreator::encodeImageOnEncoderThread(double quality) {
|
| if (!ImageDataBuffer(m_size, m_data->data())
|
| .encodeImage("image/webp", quality, m_encodedImage.get())) {
|
| m_parentFrameTaskRunner->get(TaskType::CanvasBlobSerialization)
|
| - ->postTask(BLINK_FROM_HERE,
|
| - crossThreadBind(&BlobCallback::handleEvent,
|
| - wrapCrossThreadPersistent(m_callback.get()),
|
| - nullptr));
|
| + ->postTask(
|
| + BLINK_FROM_HERE,
|
| + crossThreadBind(&CanvasAsyncBlobCreator::createNullAndReturnResult,
|
| + wrapCrossThreadPersistent(this)));
|
| return;
|
| }
|
|
|
|
|