| 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) | 
|  |