| 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 007947c366e67c3bd4d36e2f8cf99ac28c9aa18f..01136649524082b8b79b83dda662a2a4852c957e 100644
|
| --- a/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp
|
| +++ b/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp
|
| @@ -256,12 +256,20 @@
|
| ASSERT(isMainThread());
|
| Blob* resultBlob = Blob::create(m_encodedImage->data(), m_encodedImage->size(), convertMimeTypeEnumToString(m_mimeType));
|
| Platform::current()->mainThread()->getWebTaskRunner()->postTask(BLINK_FROM_HERE, bind(&BlobCallback::handleEvent, m_callback, resultBlob));
|
| + // Since toBlob is done, timeout events are no longer needed. So we clear
|
| + // non-GC members to allow teardown of CanvasAsyncBlobCreator.
|
| + m_data.clear();
|
| + m_callback.clear();
|
| }
|
|
|
| void CanvasAsyncBlobCreator::createNullAndInvokeCallback()
|
| {
|
| ASSERT(isMainThread());
|
| Platform::current()->mainThread()->getWebTaskRunner()->postTask(BLINK_FROM_HERE, bind(&BlobCallback::handleEvent, m_callback, nullptr));
|
| + // Since toBlob is done (failed), timeout events are no longer needed. So we
|
| + // clear non-GC members to allow teardown of CanvasAsyncBlobCreator.
|
| + m_data.clear();
|
| + m_callback.clear();
|
| }
|
|
|
| void CanvasAsyncBlobCreator::encodeImageOnEncoderThread(double quality)
|
|
|