| Index: third_party/WebKit/Source/platform/image-decoders/webp/WEBPImageDecoder.h
|
| diff --git a/third_party/WebKit/Source/platform/image-decoders/webp/WEBPImageDecoder.h b/third_party/WebKit/Source/platform/image-decoders/webp/WEBPImageDecoder.h
|
| index 2800775cf773aeed9093fa784802505b7ba94530..b0c1eacd0dcc28e71d55930944f948a1f8e02679 100644
|
| --- a/third_party/WebKit/Source/platform/image-decoders/webp/WEBPImageDecoder.h
|
| +++ b/third_party/WebKit/Source/platform/image-decoders/webp/WEBPImageDecoder.h
|
| @@ -50,7 +50,6 @@ class PLATFORM_EXPORT WEBPImageDecoder final : public ImageDecoder {
|
| int repetitionCount() const override;
|
| bool frameIsCompleteAtIndex(size_t) const override;
|
| float frameDurationAtIndex(size_t) const override;
|
| - size_t clearCacheExceptFrame(size_t) override;
|
|
|
| private:
|
| // ImageDecoder:
|
| @@ -63,6 +62,17 @@ class PLATFORM_EXPORT WEBPImageDecoder final : public ImageDecoder {
|
| size_t dataSize,
|
| size_t frameIndex);
|
|
|
| + // For WebP images, the frame status needs to be FrameComplete to decode
|
| + // subsequent frames that depend on frame |index|. The reason for this is that
|
| + // WebP uses the previous frame for alpha blending, in applyPostProcessing().
|
| + //
|
| + // Before calling this, verify that frame |index| exists by checking that
|
| + // |index| is smaller than |m_frameBufferCache|.size().
|
| + bool frameStatusSufficientForSuccessors(size_t index) override {
|
| + DCHECK(index < m_frameBufferCache.size());
|
| + return m_frameBufferCache[index].getStatus() == ImageFrame::FrameComplete;
|
| + }
|
| +
|
| WebPIDecoder* m_decoder;
|
| WebPDecBuffer m_decoderBuffer;
|
| int m_formatFlags;
|
|
|