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 90aea4e63d3bd276be70ab6b0cb0d740e411d677..f053a33e37d4afb757810137089f54b41c110043 100644 |
--- a/third_party/WebKit/Source/core/imagebitmap/ImageBitmapFactories.cpp |
+++ b/third_party/WebKit/Source/core/imagebitmap/ImageBitmapFactories.cpp |
@@ -279,13 +279,17 @@ void ImageBitmapFactories::ImageBitmapLoader::decodeImageOnDecoderThread( |
ImageDecoder::AlphaOption alphaOp = ImageDecoder::AlphaPremultiplied; |
if (premultiplyAlphaOption == "none") |
alphaOp = ImageDecoder::AlphaNotPremultiplied; |
- ImageDecoder::ColorSpaceOption colorSpaceOp = ImageDecoder::ColorSpaceApplied; |
+ ImageDecoder::ColorSpaceOption colorSpaceOp = |
+ ImageDecoder::ColorSpaceTransformed; |
if (colorSpaceConversionOption == "none") |
colorSpaceOp = ImageDecoder::ColorSpaceIgnored; |
std::unique_ptr<ImageDecoder> decoder(ImageDecoder::create( |
SegmentReader::createFromSkData(SkData::MakeWithoutCopy( |
arrayBuffer->data(), arrayBuffer->byteLength())), |
- true, alphaOp, colorSpaceOp)); |
+ true, alphaOp, colorSpaceOp, |
+ colorSpaceOp == ImageDecoder::ColorSpaceTransformed |
+ ? ImageDecoder::globalTargetColorSpace() |
+ : nullptr)); |
sk_sp<SkImage> frame; |
if (decoder) { |
frame = ImageBitmap::getSkImageFromDecoder(std::move(decoder)); |