| Index: third_party/WebKit/Source/platform/graphics/BitmapImageTest.cpp
|
| diff --git a/third_party/WebKit/Source/platform/graphics/BitmapImageTest.cpp b/third_party/WebKit/Source/platform/graphics/BitmapImageTest.cpp
|
| index 5f86d3219db88c65ced62f9cf268151c40b6fc51..86b0e4dbd400254bdf268f56caf3a6cc5c4594a5 100644
|
| --- a/third_party/WebKit/Source/platform/graphics/BitmapImageTest.cpp
|
| +++ b/third_party/WebKit/Source/platform/graphics/BitmapImageTest.cpp
|
| @@ -77,11 +77,11 @@ public:
|
| }
|
|
|
| // Accessors to BitmapImage's protected methods.
|
| - void destroyDecodedData(bool destroyAll) { m_image->destroyDecodedData(destroyAll); }
|
| + void destroyDecodedData() { m_image->destroyDecodedData(); }
|
| size_t frameCount() { return m_image->frameCount(); }
|
| - void frameAtIndex(size_t index)
|
| + PassRefPtr<SkImage> frameAtIndex(size_t index)
|
| {
|
| - m_image->frameAtIndex(index);
|
| + return m_image->frameAtIndex(index);
|
| }
|
| void setCurrentFrame(size_t frame) { m_image->m_currentFrame = frame; }
|
| size_t frameDecodedSize(size_t frame) { return m_image->m_frames[frame].m_frameBytes; }
|
| @@ -138,6 +138,11 @@ public:
|
| return m_image->imageForDefaultFrame();
|
| }
|
|
|
| + int lastDecodedSizeChange()
|
| + {
|
| + return m_imageObserver->m_lastDecodedSizeChangedDelta;
|
| + }
|
| +
|
| protected:
|
| void SetUp() override
|
| {
|
| @@ -153,25 +158,13 @@ private:
|
| bool m_enableDeferredDecoding;
|
| };
|
|
|
| -TEST_F(BitmapImageTest, destroyDecodedDataExceptCurrentFrame)
|
| -{
|
| - loadImage("/LayoutTests/fast/images/resources/animated-10color.gif");
|
| - size_t totalSize = decodedSize();
|
| - size_t frame = frameCount() / 2;
|
| - setCurrentFrame(frame);
|
| - size_t size = frameDecodedSize(frame);
|
| - destroyDecodedData(false);
|
| - EXPECT_LT(m_imageObserver->m_lastDecodedSizeChangedDelta, 0);
|
| - EXPECT_GE(m_imageObserver->m_lastDecodedSizeChangedDelta, -static_cast<int>(totalSize - size));
|
| -}
|
| -
|
| -TEST_F(BitmapImageTest, destroyAllDecodedData)
|
| +TEST_F(BitmapImageTest, destroyDecodedData)
|
| {
|
| loadImage("/LayoutTests/fast/images/resources/animated-10color.gif");
|
| size_t totalSize = decodedSize();
|
| EXPECT_GT(totalSize, 0u);
|
| - destroyDecodedData(true);
|
| - EXPECT_EQ(-static_cast<int>(totalSize), m_imageObserver->m_lastDecodedSizeChangedDelta);
|
| + destroyDecodedData();
|
| + EXPECT_EQ(-static_cast<int>(totalSize), lastDecodedSizeChange());
|
| EXPECT_EQ(0u, decodedSize());
|
| }
|
|
|
| @@ -273,30 +266,23 @@ TEST_F(BitmapImageTest, correctDecodedDataSize)
|
| loadImage("/LayoutTests/fast/images/resources/anim_none.gif", false);
|
| frameAtIndex(1);
|
| int frameSize = static_cast<int>(m_image->size().area() * sizeof(ImageFrame::PixelData));
|
| - EXPECT_EQ(frameSize * 2, m_imageObserver->m_lastDecodedSizeChangedDelta);
|
| -
|
| - // Trying to destroy all data except an undecoded frame should cause the
|
| - // decoder to seek backwards and preserve the most recent previous frame
|
| - // necessary to decode that undecoded frame, and destroy all other frames.
|
| - setCurrentFrame(2);
|
| - destroyDecodedData(false);
|
| - EXPECT_EQ(-frameSize, m_imageObserver->m_lastDecodedSizeChangedDelta);
|
| + EXPECT_EQ(frameSize * 2, lastDecodedSizeChange());
|
| }
|
|
|
| TEST_F(BitmapImageTest, recachingFrameAfterDataChanged)
|
| {
|
| loadImage("/LayoutTests/fast/images/resources/green.jpg");
|
| setFirstFrameNotComplete();
|
| - EXPECT_GT(m_imageObserver->m_lastDecodedSizeChangedDelta, 0);
|
| + EXPECT_GT(lastDecodedSizeChange(), 0);
|
| m_imageObserver->m_lastDecodedSizeChangedDelta = 0;
|
|
|
| // Calling dataChanged causes the cache to flush, but doesn't affect the
|
| // source's decoded frames. It shouldn't affect decoded size.
|
| m_image->dataChanged(true);
|
| - EXPECT_EQ(0, m_imageObserver->m_lastDecodedSizeChangedDelta);
|
| + EXPECT_EQ(0, lastDecodedSizeChange());
|
| // Recaching the first frame also shouldn't affect decoded size.
|
| m_image->imageForCurrentFrame();
|
| - EXPECT_EQ(0, m_imageObserver->m_lastDecodedSizeChangedDelta);
|
| + EXPECT_EQ(0, lastDecodedSizeChange());
|
| }
|
|
|
| class BitmapImageDeferredDecodingTest : public BitmapImageTest {
|
| @@ -311,14 +297,7 @@ TEST_F(BitmapImageDeferredDecodingTest, correctDecodedDataSize)
|
| loadImage("/LayoutTests/fast/images/resources/anim_none.gif", false);
|
| frameAtIndex(1);
|
| int frameSize = static_cast<int>(m_image->size().area() * sizeof(ImageFrame::PixelData));
|
| - EXPECT_EQ(frameSize, m_imageObserver->m_lastDecodedSizeChangedDelta);
|
| - frameAtIndex(0);
|
| -
|
| - // Trying to destroy all data except an undecoded frame should go ahead and
|
| - // destroy all other frames.
|
| - setCurrentFrame(2);
|
| - destroyDecodedData(false);
|
| - EXPECT_EQ(-frameSize * 2, m_imageObserver->m_lastDecodedSizeChangedDelta);
|
| + EXPECT_EQ(frameSize, lastDecodedSizeChange());
|
| }
|
|
|
| template <typename HistogramEnumType>
|
|
|