| 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 0e12da8491b7094abc87fe1dd4647a97b07fd634..c2387ea4acfa1a61dec5f3d1d3db88a815bc2d3c 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 alpha_option,
|
| // that as a signal to never check again, meaning the actual count will
|
| // never be respected.
|
| repetition_count_(kAnimationLoopOnce),
|
| - has_alpha_channel_(false),
|
| - current_buffer_saw_alpha_(false) {}
|
| + has_alpha_channel_(false) {}
|
|
|
| PNGImageDecoder::~PNGImageDecoder() {}
|
|
|
| @@ -298,8 +297,6 @@ void PNGImageDecoder::RowAvailable(unsigned char* row_buffer,
|
| return;
|
| }
|
| }
|
| -
|
| - current_buffer_saw_alpha_ = false;
|
| }
|
|
|
| const IntRect& frame_rect = buffer.OriginalFrameRect();
|
| @@ -387,7 +384,6 @@ void PNGImageDecoder::RowAvailable(unsigned char* row_buffer,
|
| src_ptr = png_bytep(dst_row);
|
| }
|
|
|
| - unsigned alpha_mask = 255;
|
| if (frame_buffer_cache_[current_frame_].GetAlphaBlendSource() ==
|
| ImageFrame::kBlendAtopBgcolor) {
|
| if (buffer.PremultiplyAlpha()) {
|
| @@ -395,14 +391,12 @@ void PNGImageDecoder::RowAvailable(unsigned char* row_buffer,
|
| dst_pixel++, src_ptr += 4) {
|
| ImageFrame::SetRGBAPremultiply(dst_pixel, src_ptr[0], src_ptr[1],
|
| src_ptr[2], src_ptr[3]);
|
| - alpha_mask &= src_ptr[3];
|
| }
|
| } else {
|
| for (auto *dst_pixel = dst_row; dst_pixel < dst_row + width;
|
| dst_pixel++, src_ptr += 4) {
|
| ImageFrame::SetRGBARaw(dst_pixel, src_ptr[0], src_ptr[1], src_ptr[2],
|
| src_ptr[3]);
|
| - alpha_mask &= src_ptr[3];
|
| }
|
| }
|
| } else {
|
| @@ -415,21 +409,15 @@ void PNGImageDecoder::RowAvailable(unsigned char* row_buffer,
|
| dst_pixel++, src_ptr += 4) {
|
| ImageFrame::BlendRGBAPremultiplied(dst_pixel, src_ptr[0], src_ptr[1],
|
| src_ptr[2], src_ptr[3]);
|
| - alpha_mask &= src_ptr[3];
|
| }
|
| } else {
|
| for (auto *dst_pixel = dst_row; dst_pixel < dst_row + width;
|
| dst_pixel++, src_ptr += 4) {
|
| ImageFrame::BlendRGBARaw(dst_pixel, src_ptr[0], src_ptr[1],
|
| src_ptr[2], src_ptr[3]);
|
| - alpha_mask &= src_ptr[3];
|
| }
|
| }
|
| }
|
| -
|
| - if (alpha_mask != 255)
|
| - current_buffer_saw_alpha_ = true;
|
| -
|
| } else {
|
| for (auto *dst_pixel = dst_row; dst_pixel < dst_row + width;
|
| src_ptr += 3, ++dst_pixel) {
|
| @@ -462,9 +450,6 @@ void PNGImageDecoder::FrameComplete() {
|
| return;
|
| }
|
|
|
| - if (!current_buffer_saw_alpha_)
|
| - CorrectAlphaWhenFrameBufferSawNoAlpha(current_frame_);
|
| -
|
| buffer.SetStatus(ImageFrame::kFrameComplete);
|
| }
|
|
|
|
|