| Index: third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoder.cpp
|
| diff --git a/third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoder.cpp b/third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoder.cpp
|
| index c0e86f2eede7f60223cb21d6601d158436e8aea8..3b5633bc4f95ca5f34000fb76f0135cd279dc716 100644
|
| --- a/third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoder.cpp
|
| +++ b/third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoder.cpp
|
| @@ -156,7 +156,7 @@ class PNGImageReader final {
|
| };
|
|
|
| PNGImageDecoder::PNGImageDecoder(AlphaOption alphaOption,
|
| - GammaAndColorProfileOption colorOptions,
|
| + ColorSpaceOption colorOptions,
|
| size_t maxDecodedBytes,
|
| size_t offset)
|
| : ImageDecoder(alphaOption, colorOptions, maxDecodedBytes),
|
| @@ -208,7 +208,7 @@ void PNGImageDecoder::headerAvailable() {
|
| colorType == PNG_COLOR_TYPE_GRAY_ALPHA)
|
| png_set_gray_to_rgb(png);
|
|
|
| - if ((colorType & PNG_COLOR_MASK_COLOR) && !m_ignoreGammaAndColorProfile) {
|
| + if ((colorType & PNG_COLOR_MASK_COLOR) && !m_ignoreColorSpace) {
|
| // We only support color profiles for color PALETTE and RGB[A] PNG.
|
| // Supporting color profiles for gray-scale images is slightly tricky, at
|
| // least using the CoreGraphics ICC library, because we expand gray-scale
|
| @@ -217,7 +217,8 @@ void PNGImageDecoder::headerAvailable() {
|
| // gray-scale image buffer and hand that to CoreGraphics.
|
| #ifdef PNG_iCCP_SUPPORTED
|
| if (png_get_valid(png, info, PNG_INFO_sRGB)) {
|
| - setColorSpaceAndComputeTransform(nullptr, 0, true /* useSRGB */);
|
| + setColorSpaceAndComputeTransform(
|
| + SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named));
|
| } else {
|
| char* profileName = nullptr;
|
| int compressionType = 0;
|
| @@ -230,13 +231,13 @@ void PNGImageDecoder::headerAvailable() {
|
| if (png_get_iCCP(png, info, &profileName, &compressionType, &profile,
|
| &profileLength)) {
|
| setColorSpaceAndComputeTransform(reinterpret_cast<char*>(profile),
|
| - profileLength, false /* useSRGB */);
|
| + profileLength);
|
| }
|
| }
|
| #endif // PNG_iCCP_SUPPORTED
|
| }
|
|
|
| - if (!hasColorProfile()) {
|
| + if (!hasColorSpace()) {
|
| // TODO (msarett):
|
| // Applying the transfer function (gamma) should be handled by
|
| // SkColorSpaceXform. Here we always convert to a transfer function that
|
| @@ -249,7 +250,7 @@ void PNGImageDecoder::headerAvailable() {
|
| const double inverseGamma = 0.45455;
|
| const double defaultGamma = 2.2;
|
| double gamma;
|
| - if (!m_ignoreGammaAndColorProfile && png_get_gAMA(png, info, &gamma)) {
|
| + if (!m_ignoreColorSpace && png_get_gAMA(png, info, &gamma)) {
|
| const double maxGamma = 21474.83;
|
| if ((gamma <= 0.0) || (gamma > maxGamma)) {
|
| gamma = inverseGamma;
|
| @@ -296,8 +297,8 @@ void PNGImageDecoder::rowAvailable(unsigned char* rowBuffer,
|
| ImageFrame& buffer = m_frameBufferCache[0];
|
| if (buffer.getStatus() == ImageFrame::FrameEmpty) {
|
| png_structp png = m_reader->pngPtr();
|
| - if (!buffer.setSizeAndColorProfile(size().width(), size().height(),
|
| - colorProfile())) {
|
| + if (!buffer.setSizeAndColorSpace(size().width(), size().height(),
|
| + colorSpace())) {
|
| longjmp(JMPBUF(png), 1);
|
| return;
|
| }
|
|
|