Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(440)

Unified Diff: third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp

Issue 2253813002: Use ParentFrameTaskRunners for encodeImageOnEncoderThread (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: temp Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 e2842cf5be1ea308252a549bc1c96dc74a0d5bf3..42752b515392fcf9f2c222c5f6241de353d8b7d3 100644
--- a/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp
+++ b/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp
@@ -82,19 +82,20 @@ CanvasAsyncBlobCreator::MimeType convertMimeTypeStringToEnum(const String& mimeT
} // anonymous namespace
-CanvasAsyncBlobCreator* CanvasAsyncBlobCreator::create(DOMUint8ClampedArray* unpremultipliedRGBAImageData, const String& mimeType, const IntSize& size, BlobCallback* callback, double startTime, Document* document)
+CanvasAsyncBlobCreator* CanvasAsyncBlobCreator::create(DOMUint8ClampedArray* unpremultipliedRGBAImageData, const String& mimeType, const IntSize& size, BlobCallback* callback, double startTime, Document& document)
{
return new CanvasAsyncBlobCreator(unpremultipliedRGBAImageData, convertMimeTypeStringToEnum(mimeType), size, callback, startTime, document);
}
-CanvasAsyncBlobCreator::CanvasAsyncBlobCreator(DOMUint8ClampedArray* data, MimeType mimeType, const IntSize& size, BlobCallback* callback, double startTime, Document* document)
+CanvasAsyncBlobCreator::CanvasAsyncBlobCreator(DOMUint8ClampedArray* data, MimeType mimeType, const IntSize& size, BlobCallback* callback, double startTime, Document& document)
: m_data(data)
- , m_document(document)
+ , m_document(&document)
, m_size(size)
, m_mimeType(mimeType)
, m_callback(callback)
, m_startTime(startTime)
, m_elapsedTime(0)
+ , m_parentFrameTaskRunner(ParentFrameTaskRunners::create(document.frame()))
{
ASSERT(m_data->length() == (unsigned) (size.height() * size.width() * 4));
m_encodedImage = wrapUnique(new Vector<unsigned char>());
@@ -325,11 +326,11 @@ void CanvasAsyncBlobCreator::encodeImageOnEncoderThread(double quality)
ASSERT(m_mimeType == MimeTypeWebp);
if (!ImageDataBuffer(m_size, m_data->data()).encodeImage("image/webp", quality, m_encodedImage.get())) {
- TaskRunnerHelper::get(TaskType::CanvasBlobSerialization, m_document)->postTask(BLINK_FROM_HERE, crossThreadBind(&BlobCallback::handleEvent, wrapCrossThreadPersistent(m_callback.get()), nullptr));
+ m_parentFrameTaskRunner->get(TaskType::CanvasBlobSerialization)->postTask(BLINK_FROM_HERE, crossThreadBind(&BlobCallback::handleEvent, wrapCrossThreadPersistent(m_callback.get()), nullptr));
return;
}
- TaskRunnerHelper::get(TaskType::CanvasBlobSerialization, m_document)->postTask(BLINK_FROM_HERE, crossThreadBind(&CanvasAsyncBlobCreator::createBlobAndInvokeCallback, wrapCrossThreadPersistent(this)));
+ m_parentFrameTaskRunner->get(TaskType::CanvasBlobSerialization)->postTask(BLINK_FROM_HERE, crossThreadBind(&CanvasAsyncBlobCreator::createBlobAndInvokeCallback, wrapCrossThreadPersistent(this)));
}
bool CanvasAsyncBlobCreator::initializePngStruct()
@@ -418,6 +419,7 @@ DEFINE_TRACE(CanvasAsyncBlobCreator)
visitor->trace(m_document);
visitor->trace(m_data);
visitor->trace(m_callback);
+ visitor->trace(m_parentFrameTaskRunner);
}
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698