summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoder.cpp
diff options
context:
space:
mode:
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.cpp4
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();