Chromium Code Reviews| Index: third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoder.cpp |
| diff --git a/third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoder.cpp b/third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoder.cpp |
| index 824764c5534764548b2c1eaa4225592de2b26d5f..8889cc5af3554430a9028e000435c8f29c18bd22 100644 |
| --- a/third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoder.cpp |
| +++ b/third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoder.cpp |
| @@ -88,6 +88,19 @@ bool GIFImageDecoder::frameIsCompleteAtIndex(size_t index) const |
| return m_reader && (index < m_reader->imagesCount()) && m_reader->frameContext(index)->isComplete(); |
| } |
| +bool GIFImageDecoder::frameHasAlphaAtIndex(size_t index) const |
| +{ |
| + if (!frameIsCompleteAtIndex(index)) |
| + return true; |
| + if (m_reader) { |
| + const GIFFrameContext& frameContext = *m_reader->frameContext(index); |
| + const GIFColorMap::Table& colorTable = frameContext.localColorMap().isDefined() ? frameContext.localColorMap().getTable() : m_reader->globalColorMap().getTable(); |
| + if (frameContext.transparentPixel() >= colorTable.size()) |
|
scroggo_chromium
2016/05/16 20:38:20
Isn't it also possible that this frame does not co
|
| + return false; |
| + } |
| + return m_frameBufferCache[index].hasAlpha(); |
| +} |
| + |
| float GIFImageDecoder::frameDurationAtIndex(size_t index) const |
| { |
| return (m_reader && (index < m_reader->imagesCount()) && |