Index: third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp |
diff --git a/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp b/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp |
index 63d691d071e28e0340a84d5aae3a19f0c0839ca3..2b554b54362aa1de55080ff79e61bf09aad4937e 100644 |
--- a/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp |
+++ b/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp |
@@ -580,7 +580,7 @@ |
return toDataURLInternal(mimeType, quality, BackBuffer); |
} |
-void HTMLCanvasElement::toBlob(BlobCallback* callback, const String& mimeType, const ScriptValue& qualityArgument, ExceptionState& exceptionState) |
+void HTMLCanvasElement::toBlob(ScriptState* scriptState, BlobCallback* callback, const String& mimeType, const ScriptValue& qualityArgument, ExceptionState& exceptionState) |
{ |
if (!originClean()) { |
exceptionState.throwSecurityError("Tainted canvases may not be exported."); |
@@ -609,9 +609,9 @@ |
// Add a ref to keep image data alive until completion of encoding |
RefPtr<DOMUint8ClampedArray> imageDataRef(imageData->data()); |
- RefPtr<CanvasAsyncBlobCreator> asyncCreatorRef = CanvasAsyncBlobCreator::create(imageDataRef.release(), encodingMimeType, imageData->size(), callback); |
- |
- if (encodingMimeType == DefaultMimeType) { |
+ RefPtr<CanvasAsyncBlobCreator> asyncCreatorRef = CanvasAsyncBlobCreator::create(imageDataRef.release(), encodingMimeType, imageData->size(), callback, scriptState->executionContext()); |
+ |
+ if (Platform::current()->isThreadedCompositingEnabled() && (encodingMimeType == DefaultMimeType)) { |
asyncCreatorRef->scheduleAsyncBlobCreation(true); |
} else { |
asyncCreatorRef->scheduleAsyncBlobCreation(false, quality); |