Index: Source/core/platform/graphics/DeferredImageDecoderTest.cpp |
diff --git a/Source/core/platform/graphics/DeferredImageDecoderTest.cpp b/Source/core/platform/graphics/DeferredImageDecoderTest.cpp |
index b495d5bb45d0fc0b51f479e0c98b38b5a8eafddf..850d6c68ca6124dde3a45c93d9db10c93b326259 100644 |
--- a/Source/core/platform/graphics/DeferredImageDecoderTest.cpp |
+++ b/Source/core/platform/graphics/DeferredImageDecoderTest.cpp |
@@ -176,6 +176,34 @@ TEST_F(DeferredImageDecoderTest, drawIntoSkPicture) |
EXPECT_EQ(SkColorSetARGB(255, 255, 255, 255), canvasBitmap.getColor(0, 0)); |
} |
+TEST_F(DeferredImageDecoderTest, drawDiscardableIntoSkPicture) |
+{ |
+ DeferredImageDecoder::setEnabledSkiaDiscardableMemory(true); |
+ |
+ m_lazyDecoder->setData(m_data.get(), true); |
+ RefPtr<NativeImageSkia> image = m_lazyDecoder->frameBufferAtIndex(0)->asNewNativeImage(); |
+ EXPECT_EQ(1, image->bitmap().width()); |
+ EXPECT_EQ(1, image->bitmap().height()); |
+ EXPECT_FALSE(image->bitmap().isNull()); |
+ EXPECT_TRUE(image->bitmap().isImmutable()); |
+ |
+ SkCanvas* tempCanvas = m_picture.beginRecording(100, 100); |
+ tempCanvas->drawBitmap(image->bitmap(), 0, 0); |
+ m_picture.endRecording(); |
+ EXPECT_EQ(0, m_frameBufferRequestCount); |
+ |
+ m_canvas->drawPicture(m_picture); |
+ EXPECT_EQ(0, m_frameBufferRequestCount); |
+ |
+ SkBitmap canvasBitmap; |
+ canvasBitmap.setConfig(SkBitmap::kARGB_8888_Config, 100, 100); |
+ ASSERT_TRUE(m_canvas->readPixels(&canvasBitmap, 0, 0)); |
+ SkAutoLockPixels autoLock(canvasBitmap); |
+ EXPECT_EQ(SkColorSetARGB(255, 255, 255, 255), canvasBitmap.getColor(0, 0)); |
+ |
+ DeferredImageDecoder::setEnabledSkiaDiscardableMemory(false); |
+} |
+ |
TEST_F(DeferredImageDecoderTest, DISABLED_drawScaledIntoSkPicture) |
{ |
m_lazyDecoder->setData(m_data.get(), true); |