Index: third_party/WebKit/Source/platform/image-decoders/ImageDecoder.cpp |
diff --git a/third_party/WebKit/Source/platform/image-decoders/ImageDecoder.cpp b/third_party/WebKit/Source/platform/image-decoders/ImageDecoder.cpp |
index 92bb9b06880f739a6f47ea05b5396c20521d464e..6c9900891c702639bcd66956ade380218c9d6574 100644 |
--- a/third_party/WebKit/Source/platform/image-decoders/ImageDecoder.cpp |
+++ b/third_party/WebKit/Source/platform/image-decoders/ImageDecoder.cpp |
@@ -358,16 +358,27 @@ void ImageDecoder::setTargetColorProfile(const WebVector<char>& profile) { |
BitmapImageMetrics::countGamma(gTargetColorSpace); |
} |
-void ImageDecoder::setColorSpaceAndComputeTransform(const char* iccData, |
- unsigned iccLength) { |
- setColorSpaceAndComputeTransform(SkColorSpace::NewICC(iccData, iccLength)); |
+sk_sp<SkColorSpace> ImageDecoder::colorSpace() const { |
+ if (!RuntimeEnabledFeatures::colorCorrectRenderingEnabled()) |
+ return nullptr; |
+ |
+ if (m_embeddedColorSpace) |
+ return m_embeddedColorSpace; |
+ return SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named); |
+} |
+ |
+void ImageDecoder::setColorProfileAndComputeTransform(const char* iccData, |
+ unsigned iccLength) { |
+ sk_sp<SkColorSpace> colorSpace = SkColorSpace::NewICC(iccData, iccLength); |
Justin Novosad
2016/10/31 14:55:13
I feel that at this point the nullness of ColorSpa
ccameron
2016/10/31 18:10:18
Yes, definitely. Added. We should also consider so
|
+ setColorSpaceAndComputeTransform(colorSpace); |
} |
void ImageDecoder::setColorSpaceAndComputeTransform( |
- sk_sp<SkColorSpace> srcSpace) { |
+ sk_sp<SkColorSpace> colorSpace) { |
DCHECK(!m_ignoreColorSpace); |
- m_srcSpace = srcSpace; |
+ m_embeddedColorSpace = colorSpace; |
+ |
m_sourceToOutputDeviceColorTransform = nullptr; |
// With color correct rendering, we do not transform to the output color space |
@@ -376,7 +387,7 @@ void ImageDecoder::setColorSpaceAndComputeTransform( |
if (RuntimeEnabledFeatures::colorCorrectRenderingEnabled()) |
return; |
- if (!m_srcSpace) |
+ if (!m_embeddedColorSpace) |
return; |
// Take a lock around initializing and accessing the global device color |
@@ -390,12 +401,12 @@ void ImageDecoder::setColorSpaceAndComputeTransform( |
SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named).release(); |
} |
- if (SkColorSpace::Equals(srcSpace.get(), gTargetColorSpace)) { |
+ if (SkColorSpace::Equals(m_embeddedColorSpace.get(), gTargetColorSpace)) { |
return; |
} |
m_sourceToOutputDeviceColorTransform = |
- SkColorSpaceXform::New(srcSpace.get(), gTargetColorSpace); |
+ SkColorSpaceXform::New(m_embeddedColorSpace.get(), gTargetColorSpace); |
} |
} // namespace blink |