| Index: third_party/WebKit/Source/platform/graphics/DeferredImageDecoder.cpp
|
| diff --git a/third_party/WebKit/Source/platform/graphics/DeferredImageDecoder.cpp b/third_party/WebKit/Source/platform/graphics/DeferredImageDecoder.cpp
|
| index 847c246d3f240bc0caca62f0ffca1762fe48ee6d..d7dbfaf45e177d3fcda55f3919df724fc973384c 100644
|
| --- a/third_party/WebKit/Source/platform/graphics/DeferredImageDecoder.cpp
|
| +++ b/third_party/WebKit/Source/platform/graphics/DeferredImageDecoder.cpp
|
| @@ -61,12 +61,13 @@ std::unique_ptr<DeferredImageDecoder> DeferredImageDecoder::create(
|
| PassRefPtr<SharedBuffer> passData,
|
| bool dataComplete,
|
| ImageDecoder::AlphaOption alphaOption,
|
| - ImageDecoder::ColorSpaceOption colorOptions) {
|
| + ImageDecoder::ColorSpaceOption colorOptions,
|
| + sk_sp<SkColorSpace> targetColorSpace) {
|
| RefPtr<SharedBuffer> data = passData;
|
|
|
| std::unique_ptr<ImageDecoder> actualDecoder =
|
| - ImageDecoder::create(data, dataComplete, alphaOption, colorOptions);
|
| -
|
| + ImageDecoder::create(data, dataComplete, alphaOption, colorOptions,
|
| + std::move(targetColorSpace));
|
| if (!actualDecoder)
|
| return nullptr;
|
|
|
| @@ -267,6 +268,7 @@ void DeferredImageDecoder::activateLazyDecoding() {
|
| m_canYUVDecode = RuntimeEnabledFeatures::decodeToYUVEnabled() &&
|
| (m_filenameExtension == "jpg");
|
| m_hasEmbeddedColorSpace = m_actualDecoder->hasEmbeddedColorSpace();
|
| + m_colorSpaceForSkImages = m_actualDecoder->colorSpaceForSkImages();
|
|
|
| const bool isSingleFrame =
|
| m_actualDecoder->repetitionCount() == cAnimationNone ||
|
| @@ -275,7 +277,8 @@ void DeferredImageDecoder::activateLazyDecoding() {
|
| SkISize::Make(m_actualDecoder->decodedSize().width(),
|
| m_actualDecoder->decodedSize().height());
|
| m_frameGenerator = ImageFrameGenerator::create(
|
| - decodedSize, m_actualDecoder->colorSpace(), !isSingleFrame);
|
| + decodedSize, !isSingleFrame, m_actualDecoder->colorSpaceOption(),
|
| + m_actualDecoder->targetColorSpace());
|
| }
|
|
|
| void DeferredImageDecoder::prepareLazyDecodedFrames() {
|
| @@ -326,7 +329,7 @@ sk_sp<SkImage> DeferredImageDecoder::createFrameImageAtIndex(
|
| SkImageInfo info = SkImageInfo::MakeN32(
|
| decodedSize.width(), decodedSize.height(),
|
| knownToBeOpaque ? kOpaque_SkAlphaType : kPremul_SkAlphaType,
|
| - m_frameGenerator->getColorSpace());
|
| + m_colorSpaceForSkImages);
|
|
|
| DecodingImageGenerator* generator = new DecodingImageGenerator(
|
| m_frameGenerator, info, segmentReader.release(), m_allDataReceived, index,
|
|
|