| Index: third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridgeTest.cpp
|
| diff --git a/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridgeTest.cpp b/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridgeTest.cpp
|
| index 89f071d01b3b91d47bd63b0835972e4743364a8f..2508eaf257d64132df9a592fb0f466c81607142a 100644
|
| --- a/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridgeTest.cpp
|
| +++ b/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridgeTest.cpp
|
| @@ -26,11 +26,13 @@
|
|
|
| #include "SkSurface.h"
|
| #include "base/memory/scoped_ptr.h"
|
| +#include "gpu/command_buffer/client/gles2_interface.h"
|
| #include "platform/Task.h"
|
| #include "platform/ThreadSafeFunctional.h"
|
| #include "platform/WaitableEvent.h"
|
| #include "platform/graphics/ImageBuffer.h"
|
| #include "platform/graphics/UnacceleratedImageBufferSurface.h"
|
| +#include "platform/graphics/test/MockGLES2Interface.h"
|
| #include "platform/graphics/test/MockWebGraphicsContext3D.h"
|
| #include "public/platform/Platform.h"
|
| #include "public/platform/WebExternalBitmap.h"
|
| @@ -68,8 +70,9 @@ public:
|
|
|
| class MockWebGraphicsContext3DProvider : public WebGraphicsContext3DProvider {
|
| public:
|
| - MockWebGraphicsContext3DProvider(WebGraphicsContext3D* context3d)
|
| + MockWebGraphicsContext3DProvider(WebGraphicsContext3D* context3d, gpu::gles2::GLES2Interface* gl)
|
| : m_context3d(context3d)
|
| + , m_gl(gl)
|
| {
|
| scoped_ptr<SkGLContext> glContext(SkNullGLContext::Create());
|
| glContext->makeCurrent();
|
| @@ -86,8 +89,14 @@ public:
|
| return m_grContext.get();
|
| }
|
|
|
| + gpu::gles2::GLES2Interface* contextGL() override
|
| + {
|
| + return m_gl;
|
| + }
|
| +
|
| private:
|
| WebGraphicsContext3D* m_context3d;
|
| + gpu::gles2::GLES2Interface* m_gl;
|
| RefPtr<GrContext> m_grContext;
|
| };
|
|
|
| @@ -153,7 +162,8 @@ protected:
|
| void fullLifecycleTest()
|
| {
|
| MockCanvasContext mainMock;
|
| - OwnPtr<MockWebGraphicsContext3DProvider> mainMockProvider = adoptPtr(new MockWebGraphicsContext3DProvider(&mainMock));
|
| + MockGLES2Interface mockGL;
|
| + OwnPtr<MockWebGraphicsContext3DProvider> mainMockProvider = adoptPtr(new MockWebGraphicsContext3DProvider(&mainMock, &mockGL));
|
|
|
| ::testing::Mock::VerifyAndClearExpectations(&mainMock);
|
|
|
| @@ -174,12 +184,13 @@ protected:
|
| void fallbackToSoftwareIfContextLost()
|
| {
|
| MockCanvasContext mainMock;
|
| - OwnPtr<MockWebGraphicsContext3DProvider> mainMockProvider = adoptPtr(new MockWebGraphicsContext3DProvider(&mainMock));
|
| + MockGLES2Interface mockGL;
|
| + OwnPtr<MockWebGraphicsContext3DProvider> mainMockProvider = adoptPtr(new MockWebGraphicsContext3DProvider(&mainMock, &mockGL));
|
|
|
| ::testing::Mock::VerifyAndClearExpectations(&mainMock);
|
|
|
| {
|
| - mainMock.fakeContextLost();
|
| + mockGL.setIsContextLost(true);
|
| Canvas2DLayerBridgePtr bridge(adoptRef(new Canvas2DLayerBridge(mainMockProvider.release(), IntSize(300, 150), 0, NonOpaque, Canvas2DLayerBridge::EnableAcceleration)));
|
| ::testing::Mock::VerifyAndClearExpectations(&mainMock);
|
| EXPECT_TRUE(bridge->checkSurfaceValid());
|
| @@ -198,7 +209,8 @@ protected:
|
|
|
| {
|
| // No fallback case
|
| - OwnPtr<MockWebGraphicsContext3DProvider> mainMockProvider = adoptPtr(new MockWebGraphicsContext3DProvider(&mainMock));
|
| + MockGLES2Interface mockGL;
|
| + OwnPtr<MockWebGraphicsContext3DProvider> mainMockProvider = adoptPtr(new MockWebGraphicsContext3DProvider(&mainMock, &mockGL));
|
| Canvas2DLayerBridgePtr bridge(adoptRef(new Canvas2DLayerBridge(mainMockProvider.release(), IntSize(300, 150), 0, NonOpaque, Canvas2DLayerBridge::EnableAcceleration)));
|
| ::testing::Mock::VerifyAndClearExpectations(&mainMock);
|
| EXPECT_TRUE(bridge->checkSurfaceValid());
|
| @@ -211,7 +223,8 @@ protected:
|
|
|
| {
|
| // Fallback case
|
| - OwnPtr<MockWebGraphicsContext3DProvider> mainMockProvider = adoptPtr(new MockWebGraphicsContext3DProvider(&mainMock));
|
| + MockGLES2Interface mockGL;
|
| + OwnPtr<MockWebGraphicsContext3DProvider> mainMockProvider = adoptPtr(new MockWebGraphicsContext3DProvider(&mainMock, &mockGL));
|
| GrContext* gr = mainMockProvider->grContext();
|
| Canvas2DLayerBridgePtr bridge(adoptRef(new Canvas2DLayerBridge(mainMockProvider.release(), IntSize(300, 150), 0, NonOpaque, Canvas2DLayerBridge::EnableAcceleration)));
|
| ::testing::Mock::VerifyAndClearExpectations(&mainMock);
|
| @@ -230,7 +243,8 @@ protected:
|
| void noDrawOnContextLostTest()
|
| {
|
| MockCanvasContext mainMock;
|
| - OwnPtr<MockWebGraphicsContext3DProvider> mainMockProvider = adoptPtr(new MockWebGraphicsContext3DProvider(&mainMock));
|
| + MockGLES2Interface mockGL;
|
| + OwnPtr<MockWebGraphicsContext3DProvider> mainMockProvider = adoptPtr(new MockWebGraphicsContext3DProvider(&mainMock, &mockGL));
|
|
|
| ::testing::Mock::VerifyAndClearExpectations(&mainMock);
|
|
|
| @@ -242,7 +256,7 @@ protected:
|
| uint32_t genID = bridge->getOrCreateSurface()->generationID();
|
| bridge->canvas()->drawRect(SkRect::MakeXYWH(0, 0, 1, 1), paint);
|
| EXPECT_EQ(genID, bridge->getOrCreateSurface()->generationID());
|
| - mainMock.fakeContextLost();
|
| + mockGL.setIsContextLost(true);
|
| EXPECT_EQ(genID, bridge->getOrCreateSurface()->generationID());
|
| bridge->canvas()->drawRect(SkRect::MakeXYWH(0, 0, 1, 1), paint);
|
| EXPECT_EQ(genID, bridge->getOrCreateSurface()->generationID());
|
| @@ -260,7 +274,8 @@ protected:
|
| void prepareMailboxWithBitmapTest()
|
| {
|
| MockCanvasContext mainMock;
|
| - OwnPtr<MockWebGraphicsContext3DProvider> mainMockProvider = adoptPtr(new MockWebGraphicsContext3DProvider(&mainMock));
|
| + MockGLES2Interface mockGL;
|
| + OwnPtr<MockWebGraphicsContext3DProvider> mainMockProvider = adoptPtr(new MockWebGraphicsContext3DProvider(&mainMock, &mockGL));
|
| Canvas2DLayerBridgePtr bridge(adoptRef(new Canvas2DLayerBridge(mainMockProvider.release(), IntSize(300, 150), 0, NonOpaque, Canvas2DLayerBridge::ForceAccelerationForTesting)));
|
| bridge->m_lastImageId = 1;
|
|
|
| @@ -272,13 +287,14 @@ protected:
|
| void prepareMailboxAndLoseResourceTest()
|
| {
|
| MockCanvasContext mainMock;
|
| + MockGLES2Interface mockGL;
|
| bool lostResource = true;
|
|
|
| // Prepare a mailbox, then report the resource as lost.
|
| // This test passes by not crashing and not triggering assertions.
|
| {
|
| WebExternalTextureMailbox mailbox;
|
| - OwnPtr<MockWebGraphicsContext3DProvider> mainMockProvider = adoptPtr(new MockWebGraphicsContext3DProvider(&mainMock));
|
| + OwnPtr<MockWebGraphicsContext3DProvider> mainMockProvider = adoptPtr(new MockWebGraphicsContext3DProvider(&mainMock, &mockGL));
|
| Canvas2DLayerBridgePtr bridge(adoptRef(new Canvas2DLayerBridge(mainMockProvider.release(), IntSize(300, 150), 0, NonOpaque, Canvas2DLayerBridge::ForceAccelerationForTesting)));
|
| bridge->prepareMailbox(&mailbox, 0);
|
| bridge->mailboxReleased(mailbox, lostResource);
|
| @@ -286,7 +302,7 @@ protected:
|
|
|
| // Retry with mailbox released while bridge destruction is in progress
|
| {
|
| - OwnPtr<MockWebGraphicsContext3DProvider> mainMockProvider = adoptPtr(new MockWebGraphicsContext3DProvider(&mainMock));
|
| + OwnPtr<MockWebGraphicsContext3DProvider> mainMockProvider = adoptPtr(new MockWebGraphicsContext3DProvider(&mainMock, &mockGL));
|
| WebExternalTextureMailbox mailbox;
|
| Canvas2DLayerBridge* rawBridge;
|
| {
|
| @@ -303,9 +319,10 @@ protected:
|
| void accelerationHintTest()
|
| {
|
| MockCanvasContext mainMock;
|
| + MockGLES2Interface mockGL;
|
| {
|
|
|
| - OwnPtr<MockWebGraphicsContext3DProvider> mainMockProvider = adoptPtr(new MockWebGraphicsContext3DProvider(&mainMock));
|
| + OwnPtr<MockWebGraphicsContext3DProvider> mainMockProvider = adoptPtr(new MockWebGraphicsContext3DProvider(&mainMock, &mockGL));
|
| ::testing::Mock::VerifyAndClearExpectations(&mainMock);
|
| Canvas2DLayerBridgePtr bridge(adoptRef(new Canvas2DLayerBridge(mainMockProvider.release(), IntSize(300, 300), 0, NonOpaque, Canvas2DLayerBridge::EnableAcceleration)));
|
| ::testing::Mock::VerifyAndClearExpectations(&mainMock);
|
| @@ -319,7 +336,7 @@ protected:
|
| ::testing::Mock::VerifyAndClearExpectations(&mainMock);
|
|
|
| {
|
| - OwnPtr<MockWebGraphicsContext3DProvider> mainMockProvider = adoptPtr(new MockWebGraphicsContext3DProvider(&mainMock));
|
| + OwnPtr<MockWebGraphicsContext3DProvider> mainMockProvider = adoptPtr(new MockWebGraphicsContext3DProvider(&mainMock, &mockGL));
|
| ::testing::Mock::VerifyAndClearExpectations(&mainMock);
|
| Canvas2DLayerBridgePtr bridge(adoptRef(new Canvas2DLayerBridge(mainMockProvider.release(), IntSize(300, 300), 0, NonOpaque, Canvas2DLayerBridge::EnableAcceleration)));
|
| ::testing::Mock::VerifyAndClearExpectations(&mainMock);
|
| @@ -376,10 +393,9 @@ public:
|
| virtual ~MockLogger() { }
|
| };
|
|
|
| -
|
| -void runCreateBridgeTask(Canvas2DLayerBridgePtr* bridgePtr, MockCanvasContext* mockCanvasContext, Canvas2DLayerBridgeTest* testHost, WaitableEvent* doneEvent)
|
| +void runCreateBridgeTask(Canvas2DLayerBridgePtr* bridgePtr, MockCanvasContext* mockCanvasContext, gpu::gles2::GLES2Interface* gl, Canvas2DLayerBridgeTest* testHost, WaitableEvent* doneEvent)
|
| {
|
| - OwnPtr<MockWebGraphicsContext3DProvider> mainMockProvider = adoptPtr(new MockWebGraphicsContext3DProvider(mockCanvasContext));
|
| + OwnPtr<MockWebGraphicsContext3DProvider> mainMockProvider = adoptPtr(new MockWebGraphicsContext3DProvider(mockCanvasContext, gl));
|
| *bridgePtr = testHost->makeBridge(mainMockProvider.release(), IntSize(300, 300), Canvas2DLayerBridge::EnableAcceleration);
|
| // draw+flush to trigger the creation of a GPU surface
|
| (*bridgePtr)->didDraw(FloatRect(0, 0, 1, 1));
|
| @@ -388,7 +404,7 @@ void runCreateBridgeTask(Canvas2DLayerBridgePtr* bridgePtr, MockCanvasContext* m
|
| doneEvent->signal();
|
| }
|
|
|
| -void postAndWaitCreateBridgeTask(const WebTraceLocation& location, WebThread* testThread, Canvas2DLayerBridgePtr* bridgePtr, MockCanvasContext* mockCanvasContext, Canvas2DLayerBridgeTest* testHost)
|
| +void postAndWaitCreateBridgeTask(const WebTraceLocation& location, WebThread* testThread, Canvas2DLayerBridgePtr* bridgePtr, MockCanvasContext* mockCanvasContext, gpu::gles2::GLES2Interface* gl, Canvas2DLayerBridgeTest* testHost)
|
| {
|
| OwnPtr<WaitableEvent> bridgeCreatedEvent = adoptPtr(new WaitableEvent());
|
| testThread->getWebTaskRunner()->postTask(
|
| @@ -396,6 +412,7 @@ void postAndWaitCreateBridgeTask(const WebTraceLocation& location, WebThread* te
|
| threadSafeBind(&runCreateBridgeTask,
|
| AllowCrossThreadAccess(bridgePtr),
|
| AllowCrossThreadAccess(mockCanvasContext),
|
| + AllowCrossThreadAccess(gl),
|
| AllowCrossThreadAccess(testHost),
|
| AllowCrossThreadAccess(bridgeCreatedEvent.get())));
|
| bridgeCreatedEvent->wait();
|
| @@ -469,12 +486,13 @@ TEST_F(Canvas2DLayerBridgeTest, DISABLED_HibernationLifeCycle)
|
| #endif
|
| {
|
| MockCanvasContext mainMock;
|
| + MockGLES2Interface mockGL;
|
| OwnPtr<WebThread> testThread = adoptPtr(Platform::current()->createThread("TestThread"));
|
|
|
| // The Canvas2DLayerBridge has to be created on the thread that will use it
|
| // to avoid WeakPtr thread check issues.
|
| Canvas2DLayerBridgePtr bridge;
|
| - postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, this);
|
| + postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, &mockGL, this);
|
|
|
| // Register an alternate Logger for tracking hibernation events
|
| OwnPtr<MockLogger> mockLogger = adoptPtr(new MockLogger);
|
| @@ -515,12 +533,13 @@ TEST_F(Canvas2DLayerBridgeTest, DISABLED_HibernationReEntry)
|
| #endif
|
| {
|
| MockCanvasContext mainMock;
|
| + MockGLES2Interface mockGL;
|
| OwnPtr<WebThread> testThread = adoptPtr(Platform::current()->createThread("TestThread"));
|
|
|
| // The Canvas2DLayerBridge has to be created on the thread that will use it
|
| // to avoid WeakPtr thread check issues.
|
| Canvas2DLayerBridgePtr bridge;
|
| - postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, this);
|
| + postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, &mockGL, this);
|
|
|
| // Register an alternate Logger for tracking hibernation events
|
| OwnPtr<MockLogger> mockLogger = adoptPtr(new MockLogger);
|
| @@ -567,12 +586,13 @@ TEST_F(Canvas2DLayerBridgeTest, DISABLED_HibernationLifeCycleWithDeferredRenderi
|
| #endif
|
| {
|
| MockCanvasContext mainMock;
|
| + MockGLES2Interface mockGL;
|
| OwnPtr<WebThread> testThread = adoptPtr(Platform::current()->createThread("TestThread"));
|
|
|
| // The Canvas2DLayerBridge has to be created on the thread that will use it
|
| // to avoid WeakPtr thread check issues.
|
| Canvas2DLayerBridgePtr bridge;
|
| - postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, this);
|
| + postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, &mockGL, this);
|
| bridge->disableDeferral(DisableDeferralReasonUnknown);
|
| MockImageBuffer mockImageBuffer;
|
| EXPECT_CALL(mockImageBuffer, resetCanvas(_)).Times(AnyNumber());
|
| @@ -639,12 +659,13 @@ TEST_F(Canvas2DLayerBridgeTest, DISABLED_BackgroundRenderingWhileHibernating)
|
| #endif
|
| {
|
| MockCanvasContext mainMock;
|
| + MockGLES2Interface mockGL;
|
| OwnPtr<WebThread> testThread = adoptPtr(Platform::current()->createThread("TestThread"));
|
|
|
| // The Canvas2DLayerBridge has to be created on the thread that will use it
|
| // to avoid WeakPtr thread check issues.
|
| Canvas2DLayerBridgePtr bridge;
|
| - postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, this);
|
| + postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, &mockGL, this);
|
|
|
| // Register an alternate Logger for tracking hibernation events
|
| OwnPtr<MockLogger> mockLogger = adoptPtr(new MockLogger);
|
| @@ -692,12 +713,13 @@ TEST_F(Canvas2DLayerBridgeTest, DISABLED_BackgroundRenderingWhileHibernatingWith
|
| #endif
|
| {
|
| MockCanvasContext mainMock;
|
| + MockGLES2Interface mockGL;
|
| OwnPtr<WebThread> testThread = adoptPtr(Platform::current()->createThread("TestThread"));
|
|
|
| // The Canvas2DLayerBridge has to be created on the thread that will use it
|
| // to avoid WeakPtr thread check issues.
|
| Canvas2DLayerBridgePtr bridge;
|
| - postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, this);
|
| + postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, &mockGL, this);
|
| MockImageBuffer mockImageBuffer;
|
| EXPECT_CALL(mockImageBuffer, resetCanvas(_)).Times(AnyNumber());
|
| bridge->setImageBuffer(&mockImageBuffer);
|
| @@ -753,12 +775,13 @@ TEST_F(Canvas2DLayerBridgeTest, DISABLED_DisableDeferredRenderingWhileHibernatin
|
| #endif
|
| {
|
| MockCanvasContext mainMock;
|
| + MockGLES2Interface mockGL;
|
| OwnPtr<WebThread> testThread = adoptPtr(Platform::current()->createThread("TestThread"));
|
|
|
| // The Canvas2DLayerBridge has to be created on the thread that will use it
|
| // to avoid WeakPtr thread check issues.
|
| Canvas2DLayerBridgePtr bridge;
|
| - postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, this);
|
| + postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, &mockGL, this);
|
| MockImageBuffer mockImageBuffer;
|
| EXPECT_CALL(mockImageBuffer, resetCanvas(_)).Times(AnyNumber());
|
| bridge->setImageBuffer(&mockImageBuffer);
|
| @@ -813,12 +836,13 @@ TEST_F(Canvas2DLayerBridgeTest, DISABLED_TeardownWhileHibernating)
|
| #endif
|
| {
|
| MockCanvasContext mainMock;
|
| + MockGLES2Interface mockGL;
|
| OwnPtr<WebThread> testThread = adoptPtr(Platform::current()->createThread("TestThread"));
|
|
|
| // The Canvas2DLayerBridge has to be created on the thread that will use it
|
| // to avoid WeakPtr thread check issues.
|
| Canvas2DLayerBridgePtr bridge;
|
| - postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, this);
|
| + postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, &mockGL, this);
|
|
|
| // Register an alternate Logger for tracking hibernation events
|
| OwnPtr<MockLogger> mockLogger = adoptPtr(new MockLogger);
|
| @@ -868,12 +892,13 @@ TEST_F(Canvas2DLayerBridgeTest, DISABLED_TeardownWhileHibernationIsPending)
|
| #endif
|
| {
|
| MockCanvasContext mainMock;
|
| + MockGLES2Interface mockGL;
|
| OwnPtr<WebThread> testThread = adoptPtr(Platform::current()->createThread("TestThread"));
|
|
|
| // The Canvas2DLayerBridge has to be created on the thread that will use it
|
| // to avoid WeakPtr thread check issues.
|
| Canvas2DLayerBridgePtr bridge;
|
| - postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, this);
|
| + postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, &mockGL, this);
|
|
|
| // Register an alternate Logger for tracking hibernation events
|
| OwnPtr<MockLogger> mockLogger = adoptPtr(new MockLogger);
|
| @@ -910,12 +935,13 @@ TEST_F(Canvas2DLayerBridgeTest, DISABLED_HibernationAbortedDueToPendingTeardown)
|
| #endif
|
| {
|
| MockCanvasContext mainMock;
|
| + MockGLES2Interface mockGL;
|
| OwnPtr<WebThread> testThread = adoptPtr(Platform::current()->createThread("TestThread"));
|
|
|
| // The Canvas2DLayerBridge has to be created on the thread that will use it
|
| // to avoid WeakPtr thread check issues.
|
| Canvas2DLayerBridgePtr bridge;
|
| - postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, this);
|
| + postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, &mockGL, this);
|
|
|
| // Register an alternate Logger for tracking hibernation events
|
| OwnPtr<MockLogger> mockLogger = adoptPtr(new MockLogger);
|
| @@ -946,12 +972,13 @@ TEST_F(Canvas2DLayerBridgeTest, DISABLED_HibernationAbortedDueToVisibilityChange
|
| #endif
|
| {
|
| MockCanvasContext mainMock;
|
| + MockGLES2Interface mockGL;
|
| OwnPtr<WebThread> testThread = adoptPtr(Platform::current()->createThread("TestThread"));
|
|
|
| // The Canvas2DLayerBridge has to be created on the thread that will use it
|
| // to avoid WeakPtr thread check issues.
|
| Canvas2DLayerBridgePtr bridge;
|
| - postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, this);
|
| + postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, &mockGL, this);
|
|
|
| // Register an alternate Logger for tracking hibernation events
|
| OwnPtr<MockLogger> mockLogger = adoptPtr(new MockLogger);
|
| @@ -985,19 +1012,20 @@ TEST_F(Canvas2DLayerBridgeTest, DISABLED_HibernationAbortedDueToLostContext)
|
| #endif
|
| {
|
| MockCanvasContext mainMock;
|
| + MockGLES2Interface mockGL;
|
| OwnPtr<WebThread> testThread = adoptPtr(Platform::current()->createThread("TestThread"));
|
|
|
| // The Canvas2DLayerBridge has to be created on the thread that will use it
|
| // to avoid WeakPtr thread check issues.
|
| Canvas2DLayerBridgePtr bridge;
|
| - postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, this);
|
| + postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, &mockGL, this);
|
|
|
| // Register an alternate Logger for tracking hibernation events
|
| OwnPtr<MockLogger> mockLogger = adoptPtr(new MockLogger);
|
| MockLogger* mockLoggerPtr = mockLogger.get();
|
| bridge->setLoggerForTesting(mockLogger.release());
|
|
|
| - mainMock.fakeContextLost();
|
| + mockGL.setIsContextLost(true);
|
| // Test entering hibernation
|
| OwnPtr<WaitableEvent> hibernationAbortedEvent = adoptPtr(new WaitableEvent());
|
| EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::HibernationScheduled));
|
| @@ -1022,12 +1050,13 @@ TEST_F(Canvas2DLayerBridgeTest, DISABLED_PrepareMailboxWhileHibernating)
|
| #endif
|
| {
|
| MockCanvasContext mainMock;
|
| + MockGLES2Interface mockGL;
|
| OwnPtr<WebThread> testThread = adoptPtr(Platform::current()->createThread("TestThread"));
|
|
|
| // The Canvas2DLayerBridge has to be created on the thread that will use it
|
| // to avoid WeakPtr thread check issues.
|
| Canvas2DLayerBridgePtr bridge;
|
| - postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, this);
|
| + postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, &mockGL, this);
|
|
|
| // Register an alternate Logger for tracking hibernation events
|
| OwnPtr<MockLogger> mockLogger = adoptPtr(new MockLogger);
|
| @@ -1061,12 +1090,13 @@ TEST_F(Canvas2DLayerBridgeTest, DISABLED_PrepareMailboxWhileBackgroundRendering)
|
| #endif
|
| {
|
| MockCanvasContext mainMock;
|
| + MockGLES2Interface mockGL;
|
| OwnPtr<WebThread> testThread = adoptPtr(Platform::current()->createThread("TestThread"));
|
|
|
| // The Canvas2DLayerBridge has to be created on the thread that will use it
|
| // to avoid WeakPtr thread check issues.
|
| Canvas2DLayerBridgePtr bridge;
|
| - postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, this);
|
| + postAndWaitCreateBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge, &mainMock, &mockGL, this);
|
|
|
| // Register an alternate Logger for tracking hibernation events
|
| OwnPtr<MockLogger> mockLogger = adoptPtr(new MockLogger);
|
|
|