| Index: third_party/WebKit/Source/platform/image-decoders/webp/WEBPImageDecoder.cpp
|
| diff --git a/third_party/WebKit/Source/platform/image-decoders/webp/WEBPImageDecoder.cpp b/third_party/WebKit/Source/platform/image-decoders/webp/WEBPImageDecoder.cpp
|
| index 914def5256a8fb57e0b10d6391df3ad6771b1441..40e600f0c69ea348d784d65e3d4bc9eee2b94b79 100644
|
| --- a/third_party/WebKit/Source/platform/image-decoders/webp/WEBPImageDecoder.cpp
|
| +++ b/third_party/WebKit/Source/platform/image-decoders/webp/WEBPImageDecoder.cpp
|
| @@ -256,6 +256,10 @@ bool WEBPImageDecoder::updateDemuxer() {
|
| }
|
|
|
| ASSERT(isDecodedSizeAvailable());
|
| +
|
| + size_t frameCount = WebPDemuxGetI(m_demux, WEBP_FF_FRAME_COUNT);
|
| + updateAggressivePurging(frameCount);
|
| +
|
| return true;
|
| }
|
|
|
| @@ -486,6 +490,9 @@ void WEBPImageDecoder::decode(size_t index) {
|
| // We need more data to continue decoding.
|
| if (m_frameBufferCache[*i].getStatus() != ImageFrame::FrameComplete)
|
| break;
|
| +
|
| + if (m_purgeAggressively)
|
| + clearCacheExceptFrame(*i);
|
| }
|
|
|
| // It is also a fatal error if all data is received and we have decoded all
|
|
|