Chromium Code Reviews| Index: third_party/WebKit/Source/core/imagebitmap/ImageBitmapFactories.cpp |
| diff --git a/third_party/WebKit/Source/core/imagebitmap/ImageBitmapFactories.cpp b/third_party/WebKit/Source/core/imagebitmap/ImageBitmapFactories.cpp |
| index 22d2cd2190dfaf3ecd236a1e664806a31269b37e..e4810db249819952093a4a85c3604d4a8bf0b1b0 100644 |
| --- a/third_party/WebKit/Source/core/imagebitmap/ImageBitmapFactories.cpp |
| +++ b/third_party/WebKit/Source/core/imagebitmap/ImageBitmapFactories.cpp |
| @@ -44,7 +44,7 @@ |
| #include "core/workers/WorkerGlobalScope.h" |
| #include "platform/SharedBuffer.h" |
| #include "platform/ThreadSafeFunctional.h" |
| -#include "platform/image-decoders/ImageDecoder.h" |
| +#include "platform/graphics/DeferredImageDecoder.h" |
| #include "platform/threading/BackgroundTaskRunner.h" |
| #include "public/platform/Platform.h" |
| #include "public/platform/WebThread.h" |
| @@ -222,19 +222,19 @@ void ImageBitmapFactories::ImageBitmapLoader::decodeImageOnDecoderThread(WebTask |
| ImageDecoder::AlphaOption alphaOp = ImageDecoder::AlphaPremultiplied; |
| if (m_options.premultiplyAlpha() == "none") |
| alphaOp = ImageDecoder::AlphaNotPremultiplied; |
| - OwnPtr<ImageDecoder> decoder(ImageDecoder::create(*sharedBuffer, alphaOp, ImageDecoder::GammaAndColorProfileApplied)); |
| + OwnPtr<DeferredImageDecoder> decoder(DeferredImageDecoder::create(*sharedBuffer, alphaOp, ImageDecoder::GammaAndColorProfileApplied)); |
| if (decoder) |
| - decoder->setData(sharedBuffer.get(), true); |
| + decoder->setData(*sharedBuffer, true); |
| taskRunner->postTask(BLINK_FROM_HERE, threadSafeBind(&ImageBitmapFactories::ImageBitmapLoader::resolvePromiseOnOriginalThread, AllowCrossThreadAccess(this), decoder.release())); |
| } |
| -void ImageBitmapFactories::ImageBitmapLoader::resolvePromiseOnOriginalThread(PassOwnPtr<ImageDecoder> decoder) |
| +void ImageBitmapFactories::ImageBitmapLoader::resolvePromiseOnOriginalThread(PassOwnPtr<DeferredImageDecoder> decoder) |
| { |
| if (!decoder) { |
| rejectPromise(); |
| return; |
| } |
| - RefPtr<SkImage> frame = ImageBitmap::getSkImageFromDecoder(decoder); |
| + RefPtr<SkImage> frame = decoder->createFrameAtIndex(0); |
|
Justin Novosad
2016/03/09 16:41:03
Have you verified this in tracing? The DeferredIma
xidachen
2016/03/09 17:49:26
I agree that getting the SkImage on the worker thr
|
| ASSERT(!frame || (frame->width() && frame->height())); |
| if (!frame) { |
| rejectPromise(); |