Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(107)

Side by Side Diff: third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridgeTest.cpp

Issue 1857763002: Disable 2D canvas switch to CPU rendering while backgrounded (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 636 matching lines...) Expand 10 before | Expand all | Expand 10 after
647 { 647 {
648 OwnPtr<WaitableEvent> doneEvent = adoptPtr(new WaitableEvent()); 648 OwnPtr<WaitableEvent> doneEvent = adoptPtr(new WaitableEvent());
649 testThread->getWebTaskRunner()->postTask( 649 testThread->getWebTaskRunner()->postTask(
650 location, 650 location,
651 threadSafeBind(&runRenderingTask, 651 threadSafeBind(&runRenderingTask,
652 AllowCrossThreadAccess(bridge), 652 AllowCrossThreadAccess(bridge),
653 AllowCrossThreadAccess(doneEvent.get()))); 653 AllowCrossThreadAccess(doneEvent.get())));
654 doneEvent->wait(); 654 doneEvent->wait();
655 } 655 }
656 656
657 #if CANVAS2D_HIBERNATION_ENABLED 657 #if CANVAS2D_HIBERNATION_ENABLED && CANVAS2D_BACKGROUND_RENDER_SWITCH_TO_CPU
658 TEST_F(Canvas2DLayerBridgeTest, BackgroundRenderingWhileHibernating) 658 TEST_F(Canvas2DLayerBridgeTest, BackgroundRenderingWhileHibernating)
659 #else 659 #else
660 TEST_F(Canvas2DLayerBridgeTest, DISABLED_BackgroundRenderingWhileHibernating) 660 TEST_F(Canvas2DLayerBridgeTest, DISABLED_BackgroundRenderingWhileHibernating)
661 #endif 661 #endif
662 { 662 {
663 MockCanvasContext mainMock; 663 MockCanvasContext mainMock;
664 MockGLES2Interface mockGL; 664 MockGLES2Interface mockGL;
665 OwnPtr<WebThread> testThread = adoptPtr(Platform::current()->createThread("T estThread")); 665 OwnPtr<WebThread> testThread = adoptPtr(Platform::current()->createThread("T estThread"));
666 666
667 // The Canvas2DLayerBridge has to be created on the thread that will use it 667 // The Canvas2DLayerBridge has to be created on the thread that will use it
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
701 EXPECT_FALSE(bridge->isHibernating()); 701 EXPECT_FALSE(bridge->isHibernating());
702 EXPECT_TRUE(bridge->checkSurfaceValid()); 702 EXPECT_TRUE(bridge->checkSurfaceValid());
703 703
704 // Tear down the bridge on the thread so that 'bridge' can go out of scope 704 // Tear down the bridge on the thread so that 'bridge' can go out of scope
705 // without crashing due to thread checks 705 // without crashing due to thread checks
706 postAndWaitDestroyBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge); 706 postAndWaitDestroyBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge);
707 707
708 ::testing::Mock::VerifyAndClearExpectations(&mainMock); 708 ::testing::Mock::VerifyAndClearExpectations(&mainMock);
709 } 709 }
710 710
711 #if CANVAS2D_HIBERNATION_ENABLED 711 #if CANVAS2D_HIBERNATION_ENABLED && CANVAS2D_BACKGROUND_RENDER_SWITCH_TO_CPU
712 TEST_F(Canvas2DLayerBridgeTest, BackgroundRenderingWhileHibernatingWithDeferredR enderingDisabled) 712 TEST_F(Canvas2DLayerBridgeTest, BackgroundRenderingWhileHibernatingWithDeferredR enderingDisabled)
713 #else 713 #else
714 TEST_F(Canvas2DLayerBridgeTest, DISABLED_BackgroundRenderingWhileHibernatingWith DeferredRenderingDisabled) 714 TEST_F(Canvas2DLayerBridgeTest, DISABLED_BackgroundRenderingWhileHibernatingWith DeferredRenderingDisabled)
715 #endif 715 #endif
716 { 716 {
717 MockCanvasContext mainMock; 717 MockCanvasContext mainMock;
718 MockGLES2Interface mockGL; 718 MockGLES2Interface mockGL;
719 OwnPtr<WebThread> testThread = adoptPtr(Platform::current()->createThread("T estThread")); 719 OwnPtr<WebThread> testThread = adoptPtr(Platform::current()->createThread("T estThread"));
720 720
721 // The Canvas2DLayerBridge has to be created on the thread that will use it 721 // The Canvas2DLayerBridge has to be created on the thread that will use it
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
763 EXPECT_TRUE(bridge->isAccelerated()); // Becoming visible causes switch back to GPU 763 EXPECT_TRUE(bridge->isAccelerated()); // Becoming visible causes switch back to GPU
764 EXPECT_FALSE(bridge->isHibernating()); 764 EXPECT_FALSE(bridge->isHibernating());
765 EXPECT_TRUE(bridge->checkSurfaceValid()); 765 EXPECT_TRUE(bridge->checkSurfaceValid());
766 766
767 // Tear down the bridge on the thread so that 'bridge' can go out of scope 767 // Tear down the bridge on the thread so that 'bridge' can go out of scope
768 // without crashing due to thread checks 768 // without crashing due to thread checks
769 EXPECT_CALL(mockImageBuffer, resetCanvas(_)).Times(AnyNumber()); 769 EXPECT_CALL(mockImageBuffer, resetCanvas(_)).Times(AnyNumber());
770 postAndWaitDestroyBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge); 770 postAndWaitDestroyBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge);
771 } 771 }
772 772
773 #if CANVAS2D_HIBERNATION_ENABLED 773 #if CANVAS2D_HIBERNATION_ENABLED && CANVAS2D_BACKGROUND_RENDER_SWITCH_TO_CPU
774 TEST_F(Canvas2DLayerBridgeTest, DisableDeferredRenderingWhileHibernating) 774 TEST_F(Canvas2DLayerBridgeTest, DisableDeferredRenderingWhileHibernating)
775 #else 775 #else
776 TEST_F(Canvas2DLayerBridgeTest, DISABLED_DisableDeferredRenderingWhileHibernatin g) 776 TEST_F(Canvas2DLayerBridgeTest, DISABLED_DisableDeferredRenderingWhileHibernatin g)
777 #endif 777 #endif
778 { 778 {
779 MockCanvasContext mainMock; 779 MockCanvasContext mainMock;
780 MockGLES2Interface mockGL; 780 MockGLES2Interface mockGL;
781 OwnPtr<WebThread> testThread = adoptPtr(Platform::current()->createThread("T estThread")); 781 OwnPtr<WebThread> testThread = adoptPtr(Platform::current()->createThread("T estThread"));
782 782
783 // The Canvas2DLayerBridge has to be created on the thread that will use it 783 // The Canvas2DLayerBridge has to be created on the thread that will use it
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
1078 WebExternalTextureMailbox mailbox; 1078 WebExternalTextureMailbox mailbox;
1079 EXPECT_FALSE(bridge->prepareMailbox(&mailbox, 0)); 1079 EXPECT_FALSE(bridge->prepareMailbox(&mailbox, 0));
1080 EXPECT_TRUE(bridge->checkSurfaceValid()); 1080 EXPECT_TRUE(bridge->checkSurfaceValid());
1081 1081
1082 // Tear down the bridge on the thread so that 'bridge' can go out of scope 1082 // Tear down the bridge on the thread so that 'bridge' can go out of scope
1083 // without crashing due to thread checks 1083 // without crashing due to thread checks
1084 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe rnationEndedWithTeardown)); 1084 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe rnationEndedWithTeardown));
1085 postAndWaitDestroyBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge); 1085 postAndWaitDestroyBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge);
1086 } 1086 }
1087 1087
1088 #if CANVAS2D_HIBERNATION_ENABLED 1088 #if CANVAS2D_HIBERNATION_ENABLED && CANVAS2D_BACKGROUND_RENDER_SWITCH_TO_CPU
1089 TEST_F(Canvas2DLayerBridgeTest, PrepareMailboxWhileBackgroundRendering) 1089 TEST_F(Canvas2DLayerBridgeTest, PrepareMailboxWhileBackgroundRendering)
1090 #else 1090 #else
1091 TEST_F(Canvas2DLayerBridgeTest, DISABLED_PrepareMailboxWhileBackgroundRendering) 1091 TEST_F(Canvas2DLayerBridgeTest, DISABLED_PrepareMailboxWhileBackgroundRendering)
1092 #endif 1092 #endif
1093 { 1093 {
1094 MockCanvasContext mainMock; 1094 MockCanvasContext mainMock;
1095 MockGLES2Interface mockGL; 1095 MockGLES2Interface mockGL;
1096 OwnPtr<WebThread> testThread = adoptPtr(Platform::current()->createThread("T estThread")); 1096 OwnPtr<WebThread> testThread = adoptPtr(Platform::current()->createThread("T estThread"));
1097 1097
1098 // The Canvas2DLayerBridge has to be created on the thread that will use it 1098 // The Canvas2DLayerBridge has to be created on the thread that will use it
(...skipping 27 matching lines...) Expand all
1126 WebExternalTextureMailbox mailbox; 1126 WebExternalTextureMailbox mailbox;
1127 EXPECT_FALSE(bridge->prepareMailbox(&mailbox, 0)); 1127 EXPECT_FALSE(bridge->prepareMailbox(&mailbox, 0));
1128 EXPECT_TRUE(bridge->checkSurfaceValid()); 1128 EXPECT_TRUE(bridge->checkSurfaceValid());
1129 1129
1130 // Tear down the bridge on the thread so that 'bridge' can go out of scope 1130 // Tear down the bridge on the thread so that 'bridge' can go out of scope
1131 // without crashing due to thread checks 1131 // without crashing due to thread checks
1132 postAndWaitDestroyBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge); 1132 postAndWaitDestroyBridgeTask(BLINK_FROM_HERE, testThread.get(), &bridge);
1133 } 1133 }
1134 1134
1135 } // namespace blink 1135 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698