diff options
Diffstat (limited to 'chromium/third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoder.cpp')
-rw-r--r-- | chromium/third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoder.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/chromium/third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoder.cpp b/chromium/third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoder.cpp index 3861570e333..cdff8fb8311 100644 --- a/chromium/third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoder.cpp +++ b/chromium/third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoder.cpp @@ -96,7 +96,9 @@ int GIFImageDecoder::repetitionCount() const // see the loop count and then encounter a decoding error which happens // later in the stream. It is also possible that no frames are in the // stream. In these cases we should just loop once. - if (failed() || (m_reader && (!m_reader->imagesCount()))) + if (isAllDataReceived() && parseCompleted() && m_reader->imagesCount() == 1) + m_repetitionCount = cAnimationNone; + else if (failed() || (m_reader && (!m_reader->imagesCount()))) m_repetitionCount = cAnimationLoopOnce; else if (m_reader && m_reader->loopCount() != cLoopCountNotSeen) m_repetitionCount = m_reader->loopCount(); |