| 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 cb37d138bd29caa3860fdbdb00875b763aa4a2d3..49a11b7dc51f1cccd0d476cf29d12b944fc5d163 100644
|
| --- a/third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoder.cpp
|
| +++ b/third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoder.cpp
|
| @@ -51,8 +51,7 @@ PNGImageDecoder::PNGImageDecoder(AlphaOption alphaOption,
|
| // that as a signal to never check again, meaning the actual count will
|
| // never be respected.
|
| m_repetitionCount(cAnimationLoopOnce),
|
| - m_hasAlphaChannel(false),
|
| - m_currentBufferSawAlpha(false) {}
|
| + m_hasAlphaChannel(false) {}
|
|
|
| PNGImageDecoder::~PNGImageDecoder() {}
|
|
|
| @@ -300,8 +299,6 @@ void PNGImageDecoder::rowAvailable(unsigned char* rowBuffer,
|
| return;
|
| }
|
| }
|
| -
|
| - m_currentBufferSawAlpha = false;
|
| }
|
|
|
| const IntRect& frameRect = buffer.originalFrameRect();
|
| @@ -389,7 +386,6 @@ void PNGImageDecoder::rowAvailable(unsigned char* rowBuffer,
|
| srcPtr = png_bytep(dstRow);
|
| }
|
|
|
| - unsigned alphaMask = 255;
|
| if (m_frameBufferCache[m_currentFrame].getAlphaBlendSource() ==
|
| ImageFrame::BlendAtopBgcolor) {
|
| if (buffer.premultiplyAlpha()) {
|
| @@ -397,14 +393,12 @@ void PNGImageDecoder::rowAvailable(unsigned char* rowBuffer,
|
| dstPixel++, srcPtr += 4) {
|
| buffer.setRGBAPremultiply(dstPixel, srcPtr[0], srcPtr[1], srcPtr[2],
|
| srcPtr[3]);
|
| - alphaMask &= srcPtr[3];
|
| }
|
| } else {
|
| for (auto *dstPixel = dstRow; dstPixel < dstRow + width;
|
| dstPixel++, srcPtr += 4) {
|
| buffer.setRGBARaw(dstPixel, srcPtr[0], srcPtr[1], srcPtr[2],
|
| srcPtr[3]);
|
| - alphaMask &= srcPtr[3];
|
| }
|
| }
|
| } else {
|
| @@ -417,21 +411,15 @@ void PNGImageDecoder::rowAvailable(unsigned char* rowBuffer,
|
| dstPixel++, srcPtr += 4) {
|
| buffer.blendRGBAPremultiplied(dstPixel, srcPtr[0], srcPtr[1],
|
| srcPtr[2], srcPtr[3]);
|
| - alphaMask &= srcPtr[3];
|
| }
|
| } else {
|
| for (auto *dstPixel = dstRow; dstPixel < dstRow + width;
|
| dstPixel++, srcPtr += 4) {
|
| buffer.blendRGBARaw(dstPixel, srcPtr[0], srcPtr[1], srcPtr[2],
|
| srcPtr[3]);
|
| - alphaMask &= srcPtr[3];
|
| }
|
| }
|
| }
|
| -
|
| - if (alphaMask != 255)
|
| - m_currentBufferSawAlpha = true;
|
| -
|
| } else {
|
| for (auto *dstPixel = dstRow; dstPixel < dstRow + width;
|
| srcPtr += 3, ++dstPixel) {
|
| @@ -463,9 +451,6 @@ void PNGImageDecoder::frameComplete() {
|
| return;
|
| }
|
|
|
| - if (!m_currentBufferSawAlpha)
|
| - correctAlphaWhenFrameBufferSawNoAlpha(m_currentFrame);
|
| -
|
| buffer.setStatus(ImageFrame::FrameComplete);
|
| }
|
|
|
|
|