| Index: third_party/WebKit/Source/platform/graphics/DeferredImageDecoderTest.cpp
|
| diff --git a/third_party/WebKit/Source/platform/graphics/DeferredImageDecoderTest.cpp b/third_party/WebKit/Source/platform/graphics/DeferredImageDecoderTest.cpp
|
| index 26e846c95eeef3a277f0f84b7f09433fcb5ba7a9..131c29af807d31bd6c51a3791869e33014b35a1c 100644
|
| --- a/third_party/WebKit/Source/platform/graphics/DeferredImageDecoderTest.cpp
|
| +++ b/third_party/WebKit/Source/platform/graphics/DeferredImageDecoderTest.cpp
|
| @@ -34,6 +34,7 @@
|
| #include "platform/graphics/paint/PaintCanvas.h"
|
| #include "platform/graphics/paint/PaintRecord.h"
|
| #include "platform/graphics/paint/PaintRecorder.h"
|
| +#include "platform/graphics/paint/PaintSurface.h"
|
| #include "platform/graphics/test/MockImageDecoder.h"
|
| #include "public/platform/Platform.h"
|
| #include "public/platform/WebThread.h"
|
| @@ -108,8 +109,8 @@
|
| m_actualDecoder = decoder.get();
|
| m_actualDecoder->setSize(1, 1);
|
| m_lazyDecoder = DeferredImageDecoder::createForTesting(std::move(decoder));
|
| - m_bitmap.allocPixels(SkImageInfo::MakeN32Premul(100, 100));
|
| - m_canvas = base::MakeUnique<cc::SkiaPaintCanvas>(m_bitmap);
|
| + m_surface = PaintSurface::MakeRasterN32Premul(100, 100);
|
| + ASSERT_TRUE(m_surface.get());
|
| m_decodeRequestCount = 0;
|
| m_repetitionCount = cAnimationNone;
|
| m_status = ImageFrame::FrameComplete;
|
| @@ -142,8 +143,7 @@
|
| // Don't own this but saves the pointer to query states.
|
| MockImageDecoder* m_actualDecoder;
|
| std::unique_ptr<DeferredImageDecoder> m_lazyDecoder;
|
| - SkBitmap m_bitmap;
|
| - std::unique_ptr<cc::PaintCanvas> m_canvas;
|
| + sk_sp<PaintSurface> m_surface;
|
| int m_decodeRequestCount;
|
| RefPtr<SharedBuffer> m_data;
|
| size_t m_frameCount;
|
| @@ -166,11 +166,14 @@
|
| sk_sp<PaintRecord> record = recorder.finishRecordingAsPicture();
|
| EXPECT_EQ(0, m_decodeRequestCount);
|
|
|
| - m_canvas->drawPicture(record);
|
| + m_surface->getCanvas()->drawPicture(record);
|
| EXPECT_EQ(0, m_decodeRequestCount);
|
|
|
| - SkAutoLockPixels autoLock(m_bitmap);
|
| - EXPECT_EQ(SkColorSetARGB(255, 255, 255, 255), m_bitmap.getColor(0, 0));
|
| + SkBitmap canvasBitmap;
|
| + canvasBitmap.allocN32Pixels(100, 100);
|
| + ASSERT_TRUE(m_surface->getCanvas()->readPixels(&canvasBitmap, 0, 0));
|
| + SkAutoLockPixels autoLock(canvasBitmap);
|
| + EXPECT_EQ(SkColorSetARGB(255, 255, 255, 255), canvasBitmap.getColor(0, 0));
|
| }
|
|
|
| TEST_F(DeferredImageDecoderTest, drawIntoPaintRecordProgressive) {
|
| @@ -184,7 +187,7 @@
|
| PaintRecorder recorder;
|
| PaintCanvas* tempCanvas = recorder.beginRecording(100, 100);
|
| tempCanvas->drawImage(std::move(image), 0, 0);
|
| - m_canvas->drawPicture(recorder.finishRecordingAsPicture());
|
| + m_surface->getCanvas()->drawPicture(recorder.finishRecordingAsPicture());
|
|
|
| // Fully received the file and draw the PaintRecord again.
|
| m_lazyDecoder->setData(m_data, true);
|
| @@ -192,10 +195,13 @@
|
| ASSERT_TRUE(image);
|
| tempCanvas = recorder.beginRecording(100, 100);
|
| tempCanvas->drawImage(std::move(image), 0, 0);
|
| - m_canvas->drawPicture(recorder.finishRecordingAsPicture());
|
| -
|
| - SkAutoLockPixels autoLock(m_bitmap);
|
| - EXPECT_EQ(SkColorSetARGB(255, 255, 255, 255), m_bitmap.getColor(0, 0));
|
| + m_surface->getCanvas()->drawPicture(recorder.finishRecordingAsPicture());
|
| +
|
| + SkBitmap canvasBitmap;
|
| + canvasBitmap.allocN32Pixels(100, 100);
|
| + ASSERT_TRUE(m_surface->getCanvas()->readPixels(&canvasBitmap, 0, 0));
|
| + SkAutoLockPixels autoLock(canvasBitmap);
|
| + EXPECT_EQ(SkColorSetARGB(255, 255, 255, 255), canvasBitmap.getColor(0, 0));
|
| }
|
|
|
| static void rasterizeMain(PaintCanvas* canvas, sk_sp<PaintRecord> record) {
|
| @@ -220,13 +226,16 @@
|
| WTF::wrapUnique(Platform::current()->createThread("RasterThread"));
|
| thread->getWebTaskRunner()->postTask(
|
| BLINK_FROM_HERE,
|
| - crossThreadBind(&rasterizeMain, crossThreadUnretained(m_canvas.get()),
|
| - record));
|
| + crossThreadBind(&rasterizeMain,
|
| + crossThreadUnretained(m_surface->getCanvas()), record));
|
| thread.reset();
|
| EXPECT_EQ(0, m_decodeRequestCount);
|
|
|
| - SkAutoLockPixels autoLock(m_bitmap);
|
| - EXPECT_EQ(SkColorSetARGB(255, 255, 255, 255), m_bitmap.getColor(0, 0));
|
| + SkBitmap canvasBitmap;
|
| + canvasBitmap.allocN32Pixels(100, 100);
|
| + ASSERT_TRUE(m_surface->getCanvas()->readPixels(&canvasBitmap, 0, 0));
|
| + SkAutoLockPixels autoLock(canvasBitmap);
|
| + EXPECT_EQ(SkColorSetARGB(255, 255, 255, 255), canvasBitmap.getColor(0, 0));
|
| }
|
|
|
| TEST_F(DeferredImageDecoderTest, singleFrameImageLoading) {
|
| @@ -310,7 +319,7 @@
|
| tempCanvas->drawImage(std::move(image), 0, 0);
|
| sk_sp<PaintRecord> record = recorder.finishRecordingAsPicture();
|
| EXPECT_EQ(0, m_decodeRequestCount);
|
| - m_canvas->drawPicture(record);
|
| + m_surface->getCanvas()->drawPicture(record);
|
| EXPECT_EQ(1, m_decodeRequestCount);
|
| }
|
|
|
|
|