| OLD | NEW |
| 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 464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 475 // Test entering hibernation | 475 // Test entering hibernation |
| 476 OwnPtr<WebWaitableEvent> hibernationStartedEvent = adoptPtr(Platform::curren
t()->createWaitableEvent()); | 476 OwnPtr<WebWaitableEvent> hibernationStartedEvent = adoptPtr(Platform::curren
t()->createWaitableEvent()); |
| 477 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe
rnationScheduled)); | 477 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe
rnationScheduled)); |
| 478 EXPECT_CALL(*mockLoggerPtr, didStartHibernating()) | 478 EXPECT_CALL(*mockLoggerPtr, didStartHibernating()) |
| 479 .WillOnce(testing::Invoke(hibernationStartedEvent.get(), &WebWaitableEve
nt::signal)); | 479 .WillOnce(testing::Invoke(hibernationStartedEvent.get(), &WebWaitableEve
nt::signal)); |
| 480 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new SetIsHiddenTask(brid
ge.get(), true)); | 480 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new SetIsHiddenTask(brid
ge.get(), true)); |
| 481 hibernationStartedEvent->wait(); | 481 hibernationStartedEvent->wait(); |
| 482 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); | 482 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); |
| 483 EXPECT_FALSE(bridge->isAccelerated()); | 483 EXPECT_FALSE(bridge->isAccelerated()); |
| 484 EXPECT_TRUE(bridge->isHibernating()); | 484 EXPECT_TRUE(bridge->isHibernating()); |
| 485 EXPECT_TRUE(bridge->checkSurfaceValid()); |
| 485 | 486 |
| 486 // Test exiting hibernation | 487 // Test exiting hibernation |
| 487 OwnPtr<WebWaitableEvent> hibernationEndedEvent = adoptPtr(Platform::current(
)->createWaitableEvent()); | 488 OwnPtr<WebWaitableEvent> hibernationEndedEvent = adoptPtr(Platform::current(
)->createWaitableEvent()); |
| 488 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe
rnationEndedNormally)); | 489 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe
rnationEndedNormally)); |
| 489 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new SetIsHiddenTask(brid
ge.get(), false, hibernationEndedEvent.get())); | 490 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new SetIsHiddenTask(brid
ge.get(), false, hibernationEndedEvent.get())); |
| 490 hibernationEndedEvent->wait(); | 491 hibernationEndedEvent->wait(); |
| 491 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); | 492 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); |
| 492 EXPECT_TRUE(bridge->isAccelerated()); | 493 EXPECT_TRUE(bridge->isAccelerated()); |
| 493 EXPECT_FALSE(bridge->isHibernating()); | 494 EXPECT_FALSE(bridge->isHibernating()); |
| 495 EXPECT_TRUE(bridge->checkSurfaceValid()); |
| 494 | 496 |
| 495 // Tear down the bridge on the thread so that 'bridge' can go out of scope | 497 // Tear down the bridge on the thread so that 'bridge' can go out of scope |
| 496 // without crashing due to thread checks | 498 // without crashing due to thread checks |
| 497 OwnPtr<WebWaitableEvent> bridgeDestroyedEvent = adoptPtr(Platform::current()
->createWaitableEvent()); | 499 OwnPtr<WebWaitableEvent> bridgeDestroyedEvent = adoptPtr(Platform::current()
->createWaitableEvent()); |
| 498 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new DestroyBridgeTask(&b
ridge, bridgeDestroyedEvent.get())); | 500 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new DestroyBridgeTask(&b
ridge, bridgeDestroyedEvent.get())); |
| 499 bridgeDestroyedEvent->wait(); | 501 bridgeDestroyedEvent->wait(); |
| 500 | 502 |
| 501 ::testing::Mock::VerifyAndClearExpectations(&mainMock); | 503 ::testing::Mock::VerifyAndClearExpectations(&mainMock); |
| 502 } | 504 } |
| 503 | 505 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 526 OwnPtr<WebWaitableEvent> hibernationStartedEvent = adoptPtr(Platform::curren
t()->createWaitableEvent()); | 528 OwnPtr<WebWaitableEvent> hibernationStartedEvent = adoptPtr(Platform::curren
t()->createWaitableEvent()); |
| 527 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe
rnationScheduled)); | 529 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe
rnationScheduled)); |
| 528 EXPECT_CALL(*mockLoggerPtr, didStartHibernating()) | 530 EXPECT_CALL(*mockLoggerPtr, didStartHibernating()) |
| 529 .WillOnce(testing::Invoke(hibernationStartedEvent.get(), &WebWaitableEve
nt::signal)); | 531 .WillOnce(testing::Invoke(hibernationStartedEvent.get(), &WebWaitableEve
nt::signal)); |
| 530 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new SetIsHiddenTask(brid
ge.get(), true)); | 532 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new SetIsHiddenTask(brid
ge.get(), true)); |
| 531 hibernationStartedEvent->wait(); | 533 hibernationStartedEvent->wait(); |
| 532 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); | 534 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); |
| 533 ::testing::Mock::VerifyAndClearExpectations(&mockImageBuffer); | 535 ::testing::Mock::VerifyAndClearExpectations(&mockImageBuffer); |
| 534 EXPECT_FALSE(bridge->isAccelerated()); | 536 EXPECT_FALSE(bridge->isAccelerated()); |
| 535 EXPECT_TRUE(bridge->isHibernating()); | 537 EXPECT_TRUE(bridge->isHibernating()); |
| 538 EXPECT_TRUE(bridge->checkSurfaceValid()); |
| 536 | 539 |
| 537 // Test exiting hibernation | 540 // Test exiting hibernation |
| 538 OwnPtr<WebWaitableEvent> hibernationEndedEvent = adoptPtr(Platform::current(
)->createWaitableEvent()); | 541 OwnPtr<WebWaitableEvent> hibernationEndedEvent = adoptPtr(Platform::current(
)->createWaitableEvent()); |
| 539 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe
rnationEndedNormally)); | 542 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe
rnationEndedNormally)); |
| 540 EXPECT_CALL(mockImageBuffer, resetCanvas(_)).Times(AtLeast(1)); // Because d
eferred rendering is disabled | 543 EXPECT_CALL(mockImageBuffer, resetCanvas(_)).Times(AtLeast(1)); // Because d
eferred rendering is disabled |
| 541 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new SetIsHiddenTask(brid
ge.get(), false, hibernationEndedEvent.get())); | 544 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new SetIsHiddenTask(brid
ge.get(), false, hibernationEndedEvent.get())); |
| 542 hibernationEndedEvent->wait(); | 545 hibernationEndedEvent->wait(); |
| 543 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); | 546 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); |
| 544 ::testing::Mock::VerifyAndClearExpectations(&mockImageBuffer); | 547 ::testing::Mock::VerifyAndClearExpectations(&mockImageBuffer); |
| 545 EXPECT_TRUE(bridge->isAccelerated()); | 548 EXPECT_TRUE(bridge->isAccelerated()); |
| 546 EXPECT_FALSE(bridge->isHibernating()); | 549 EXPECT_FALSE(bridge->isHibernating()); |
| 550 EXPECT_TRUE(bridge->checkSurfaceValid()); |
| 547 | 551 |
| 548 // Tear down the bridge on the thread so that 'bridge' can go out of scope | 552 // Tear down the bridge on the thread so that 'bridge' can go out of scope |
| 549 // without crashing due to thread checks | 553 // without crashing due to thread checks |
| 550 OwnPtr<WebWaitableEvent> bridgeDestroyedEvent = adoptPtr(Platform::current()
->createWaitableEvent()); | 554 OwnPtr<WebWaitableEvent> bridgeDestroyedEvent = adoptPtr(Platform::current()
->createWaitableEvent()); |
| 551 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new DestroyBridgeTask(&b
ridge, bridgeDestroyedEvent.get())); | 555 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new DestroyBridgeTask(&b
ridge, bridgeDestroyedEvent.get())); |
| 552 bridgeDestroyedEvent->wait(); | 556 bridgeDestroyedEvent->wait(); |
| 553 | 557 |
| 554 ::testing::Mock::VerifyAndClearExpectations(&mainMock); | 558 ::testing::Mock::VerifyAndClearExpectations(&mainMock); |
| 555 } | 559 } |
| 556 | 560 |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 596 // Test entering hibernation | 600 // Test entering hibernation |
| 597 OwnPtr<WebWaitableEvent> hibernationStartedEvent = adoptPtr(Platform::curren
t()->createWaitableEvent()); | 601 OwnPtr<WebWaitableEvent> hibernationStartedEvent = adoptPtr(Platform::curren
t()->createWaitableEvent()); |
| 598 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe
rnationScheduled)); | 602 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe
rnationScheduled)); |
| 599 EXPECT_CALL(*mockLoggerPtr, didStartHibernating()) | 603 EXPECT_CALL(*mockLoggerPtr, didStartHibernating()) |
| 600 .WillOnce(testing::Invoke(hibernationStartedEvent.get(), &WebWaitableEve
nt::signal)); | 604 .WillOnce(testing::Invoke(hibernationStartedEvent.get(), &WebWaitableEve
nt::signal)); |
| 601 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new SetIsHiddenTask(brid
ge.get(), true)); | 605 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new SetIsHiddenTask(brid
ge.get(), true)); |
| 602 hibernationStartedEvent->wait(); | 606 hibernationStartedEvent->wait(); |
| 603 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); | 607 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); |
| 604 EXPECT_FALSE(bridge->isAccelerated()); | 608 EXPECT_FALSE(bridge->isAccelerated()); |
| 605 EXPECT_TRUE(bridge->isHibernating()); | 609 EXPECT_TRUE(bridge->isHibernating()); |
| 610 EXPECT_TRUE(bridge->checkSurfaceValid()); |
| 606 | 611 |
| 607 // Rendering in the background -> temp switch to SW | 612 // Rendering in the background -> temp switch to SW |
| 608 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe
rnationEndedWithSwitchToBackgroundRendering)); | 613 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe
rnationEndedWithSwitchToBackgroundRendering)); |
| 609 OwnPtr<WebWaitableEvent> switchEvent = adoptPtr(Platform::current()->createW
aitableEvent()); | 614 OwnPtr<WebWaitableEvent> switchEvent = adoptPtr(Platform::current()->createW
aitableEvent()); |
| 610 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new RenderingTask(bridge
.get(), switchEvent.get())); | 615 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new RenderingTask(bridge
.get(), switchEvent.get())); |
| 611 switchEvent->wait(); | 616 switchEvent->wait(); |
| 612 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); | 617 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); |
| 613 EXPECT_FALSE(bridge->isAccelerated()); | 618 EXPECT_FALSE(bridge->isAccelerated()); |
| 614 EXPECT_FALSE(bridge->isHibernating()); | 619 EXPECT_FALSE(bridge->isHibernating()); |
| 620 EXPECT_TRUE(bridge->checkSurfaceValid()); |
| 615 | 621 |
| 616 // Unhide | 622 // Unhide |
| 617 OwnPtr<WebWaitableEvent> unhideEvent = adoptPtr(Platform::current()->createW
aitableEvent()); | 623 OwnPtr<WebWaitableEvent> unhideEvent = adoptPtr(Platform::current()->createW
aitableEvent()); |
| 618 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new SetIsHiddenTask(brid
ge.get(), false, unhideEvent.get())); | 624 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new SetIsHiddenTask(brid
ge.get(), false, unhideEvent.get())); |
| 619 unhideEvent->wait(); | 625 unhideEvent->wait(); |
| 620 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); | 626 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); |
| 621 EXPECT_TRUE(bridge->isAccelerated()); // Becoming visible causes switch back
to GPU | 627 EXPECT_TRUE(bridge->isAccelerated()); // Becoming visible causes switch back
to GPU |
| 622 EXPECT_FALSE(bridge->isHibernating()); | 628 EXPECT_FALSE(bridge->isHibernating()); |
| 629 EXPECT_TRUE(bridge->checkSurfaceValid()); |
| 623 | 630 |
| 624 // Tear down the bridge on the thread so that 'bridge' can go out of scope | 631 // Tear down the bridge on the thread so that 'bridge' can go out of scope |
| 625 // without crashing due to thread checks | 632 // without crashing due to thread checks |
| 626 OwnPtr<WebWaitableEvent> bridgeDestroyedEvent = adoptPtr(Platform::current()
->createWaitableEvent()); | 633 OwnPtr<WebWaitableEvent> bridgeDestroyedEvent = adoptPtr(Platform::current()
->createWaitableEvent()); |
| 627 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new DestroyBridgeTask(&b
ridge, bridgeDestroyedEvent.get())); | 634 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new DestroyBridgeTask(&b
ridge, bridgeDestroyedEvent.get())); |
| 628 bridgeDestroyedEvent->wait(); | 635 bridgeDestroyedEvent->wait(); |
| 629 | 636 |
| 630 ::testing::Mock::VerifyAndClearExpectations(&mainMock); | 637 ::testing::Mock::VerifyAndClearExpectations(&mainMock); |
| 631 } | 638 } |
| 632 | 639 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 655 OwnPtr<WebWaitableEvent> hibernationStartedEvent = adoptPtr(Platform::curren
t()->createWaitableEvent()); | 662 OwnPtr<WebWaitableEvent> hibernationStartedEvent = adoptPtr(Platform::curren
t()->createWaitableEvent()); |
| 656 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe
rnationScheduled)); | 663 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe
rnationScheduled)); |
| 657 EXPECT_CALL(*mockLoggerPtr, didStartHibernating()) | 664 EXPECT_CALL(*mockLoggerPtr, didStartHibernating()) |
| 658 .WillOnce(testing::Invoke(hibernationStartedEvent.get(), &WebWaitableEve
nt::signal)); | 665 .WillOnce(testing::Invoke(hibernationStartedEvent.get(), &WebWaitableEve
nt::signal)); |
| 659 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new SetIsHiddenTask(brid
ge.get(), true)); | 666 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new SetIsHiddenTask(brid
ge.get(), true)); |
| 660 hibernationStartedEvent->wait(); | 667 hibernationStartedEvent->wait(); |
| 661 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); | 668 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); |
| 662 ::testing::Mock::VerifyAndClearExpectations(&mockImageBuffer); | 669 ::testing::Mock::VerifyAndClearExpectations(&mockImageBuffer); |
| 663 EXPECT_FALSE(bridge->isAccelerated()); | 670 EXPECT_FALSE(bridge->isAccelerated()); |
| 664 EXPECT_TRUE(bridge->isHibernating()); | 671 EXPECT_TRUE(bridge->isHibernating()); |
| 672 EXPECT_TRUE(bridge->checkSurfaceValid()); |
| 665 | 673 |
| 666 // Rendering in the background -> temp switch to SW | 674 // Rendering in the background -> temp switch to SW |
| 667 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe
rnationEndedWithSwitchToBackgroundRendering)); | 675 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe
rnationEndedWithSwitchToBackgroundRendering)); |
| 668 EXPECT_CALL(mockImageBuffer, resetCanvas(_)).Times(AtLeast(1)); | 676 EXPECT_CALL(mockImageBuffer, resetCanvas(_)).Times(AtLeast(1)); |
| 669 OwnPtr<WebWaitableEvent> switchEvent = adoptPtr(Platform::current()->createW
aitableEvent()); | 677 OwnPtr<WebWaitableEvent> switchEvent = adoptPtr(Platform::current()->createW
aitableEvent()); |
| 670 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new RenderingTask(bridge
.get(), switchEvent.get())); | 678 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new RenderingTask(bridge
.get(), switchEvent.get())); |
| 671 switchEvent->wait(); | 679 switchEvent->wait(); |
| 672 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); | 680 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); |
| 673 ::testing::Mock::VerifyAndClearExpectations(&mockImageBuffer); | 681 ::testing::Mock::VerifyAndClearExpectations(&mockImageBuffer); |
| 674 EXPECT_FALSE(bridge->isAccelerated()); | 682 EXPECT_FALSE(bridge->isAccelerated()); |
| 675 EXPECT_FALSE(bridge->isHibernating()); | 683 EXPECT_FALSE(bridge->isHibernating()); |
| 684 EXPECT_TRUE(bridge->checkSurfaceValid()); |
| 676 | 685 |
| 677 // Unhide | 686 // Unhide |
| 678 EXPECT_CALL(mockImageBuffer, resetCanvas(_)).Times(AtLeast(1)); | 687 EXPECT_CALL(mockImageBuffer, resetCanvas(_)).Times(AtLeast(1)); |
| 679 OwnPtr<WebWaitableEvent> unhideEvent = adoptPtr(Platform::current()->createW
aitableEvent()); | 688 OwnPtr<WebWaitableEvent> unhideEvent = adoptPtr(Platform::current()->createW
aitableEvent()); |
| 680 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new SetIsHiddenTask(brid
ge.get(), false, unhideEvent.get())); | 689 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new SetIsHiddenTask(brid
ge.get(), false, unhideEvent.get())); |
| 681 unhideEvent->wait(); | 690 unhideEvent->wait(); |
| 682 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); | 691 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); |
| 683 ::testing::Mock::VerifyAndClearExpectations(&mockImageBuffer); | 692 ::testing::Mock::VerifyAndClearExpectations(&mockImageBuffer); |
| 684 EXPECT_TRUE(bridge->isAccelerated()); // Becoming visible causes switch back
to GPU | 693 EXPECT_TRUE(bridge->isAccelerated()); // Becoming visible causes switch back
to GPU |
| 685 EXPECT_FALSE(bridge->isHibernating()); | 694 EXPECT_FALSE(bridge->isHibernating()); |
| 695 EXPECT_TRUE(bridge->checkSurfaceValid()); |
| 686 | 696 |
| 687 // Tear down the bridge on the thread so that 'bridge' can go out of scope | 697 // Tear down the bridge on the thread so that 'bridge' can go out of scope |
| 688 // without crashing due to thread checks | 698 // without crashing due to thread checks |
| 689 EXPECT_CALL(mockImageBuffer, resetCanvas(_)).Times(AnyNumber()); | 699 EXPECT_CALL(mockImageBuffer, resetCanvas(_)).Times(AnyNumber()); |
| 690 OwnPtr<WebWaitableEvent> bridgeDestroyedEvent = adoptPtr(Platform::current()
->createWaitableEvent()); | 700 OwnPtr<WebWaitableEvent> bridgeDestroyedEvent = adoptPtr(Platform::current()
->createWaitableEvent()); |
| 691 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new DestroyBridgeTask(&b
ridge, bridgeDestroyedEvent.get())); | 701 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new DestroyBridgeTask(&b
ridge, bridgeDestroyedEvent.get())); |
| 692 bridgeDestroyedEvent->wait(); | 702 bridgeDestroyedEvent->wait(); |
| 693 } | 703 } |
| 694 | 704 |
| 695 TEST_F(Canvas2DLayerBridgeTest, DisableDeferredRenderingWhileHibernating) | 705 TEST_F(Canvas2DLayerBridgeTest, DisableDeferredRenderingWhileHibernating) |
| (...skipping 20 matching lines...) Expand all Loading... |
| 716 OwnPtr<WebWaitableEvent> hibernationStartedEvent = adoptPtr(Platform::curren
t()->createWaitableEvent()); | 726 OwnPtr<WebWaitableEvent> hibernationStartedEvent = adoptPtr(Platform::curren
t()->createWaitableEvent()); |
| 717 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe
rnationScheduled)); | 727 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe
rnationScheduled)); |
| 718 EXPECT_CALL(*mockLoggerPtr, didStartHibernating()) | 728 EXPECT_CALL(*mockLoggerPtr, didStartHibernating()) |
| 719 .WillOnce(testing::Invoke(hibernationStartedEvent.get(), &WebWaitableEve
nt::signal)); | 729 .WillOnce(testing::Invoke(hibernationStartedEvent.get(), &WebWaitableEve
nt::signal)); |
| 720 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new SetIsHiddenTask(brid
ge.get(), true)); | 730 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new SetIsHiddenTask(brid
ge.get(), true)); |
| 721 hibernationStartedEvent->wait(); | 731 hibernationStartedEvent->wait(); |
| 722 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); | 732 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); |
| 723 ::testing::Mock::VerifyAndClearExpectations(&mockImageBuffer); | 733 ::testing::Mock::VerifyAndClearExpectations(&mockImageBuffer); |
| 724 EXPECT_FALSE(bridge->isAccelerated()); | 734 EXPECT_FALSE(bridge->isAccelerated()); |
| 725 EXPECT_TRUE(bridge->isHibernating()); | 735 EXPECT_TRUE(bridge->isHibernating()); |
| 736 EXPECT_TRUE(bridge->checkSurfaceValid()); |
| 726 | 737 |
| 727 // Disable deferral while background rendering | 738 // Disable deferral while background rendering |
| 728 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe
rnationEndedWithSwitchToBackgroundRendering)); | 739 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe
rnationEndedWithSwitchToBackgroundRendering)); |
| 729 EXPECT_CALL(mockImageBuffer, resetCanvas(_)).Times(AtLeast(1)); | 740 EXPECT_CALL(mockImageBuffer, resetCanvas(_)).Times(AtLeast(1)); |
| 730 bridge->disableDeferral(); | 741 bridge->disableDeferral(); |
| 731 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); | 742 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); |
| 732 ::testing::Mock::VerifyAndClearExpectations(&mockImageBuffer); | 743 ::testing::Mock::VerifyAndClearExpectations(&mockImageBuffer); |
| 733 EXPECT_FALSE(bridge->isAccelerated()); | 744 EXPECT_FALSE(bridge->isAccelerated()); |
| 734 EXPECT_FALSE(bridge->isHibernating()); | 745 EXPECT_FALSE(bridge->isHibernating()); |
| 746 EXPECT_TRUE(bridge->checkSurfaceValid()); |
| 735 | 747 |
| 736 // Unhide | 748 // Unhide |
| 737 EXPECT_CALL(mockImageBuffer, resetCanvas(_)).Times(AtLeast(1)); | 749 EXPECT_CALL(mockImageBuffer, resetCanvas(_)).Times(AtLeast(1)); |
| 738 OwnPtr<WebWaitableEvent> unhideEvent = adoptPtr(Platform::current()->createW
aitableEvent()); | 750 OwnPtr<WebWaitableEvent> unhideEvent = adoptPtr(Platform::current()->createW
aitableEvent()); |
| 739 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new SetIsHiddenTask(brid
ge.get(), false, unhideEvent.get())); | 751 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new SetIsHiddenTask(brid
ge.get(), false, unhideEvent.get())); |
| 740 unhideEvent->wait(); | 752 unhideEvent->wait(); |
| 741 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); | 753 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); |
| 742 ::testing::Mock::VerifyAndClearExpectations(&mockImageBuffer); | 754 ::testing::Mock::VerifyAndClearExpectations(&mockImageBuffer); |
| 743 EXPECT_TRUE(bridge->isAccelerated()); // Becoming visible causes switch back
to GPU | 755 EXPECT_TRUE(bridge->isAccelerated()); // Becoming visible causes switch back
to GPU |
| 744 EXPECT_FALSE(bridge->isHibernating()); | 756 EXPECT_FALSE(bridge->isHibernating()); |
| 757 EXPECT_TRUE(bridge->checkSurfaceValid()); |
| 745 | 758 |
| 746 // Tear down the bridge on the thread so that 'bridge' can go out of scope | 759 // Tear down the bridge on the thread so that 'bridge' can go out of scope |
| 747 // without crashing due to thread checks | 760 // without crashing due to thread checks |
| 748 EXPECT_CALL(mockImageBuffer, resetCanvas(_)).Times(AnyNumber()); | 761 EXPECT_CALL(mockImageBuffer, resetCanvas(_)).Times(AnyNumber()); |
| 749 OwnPtr<WebWaitableEvent> bridgeDestroyedEvent = adoptPtr(Platform::current()
->createWaitableEvent()); | 762 OwnPtr<WebWaitableEvent> bridgeDestroyedEvent = adoptPtr(Platform::current()
->createWaitableEvent()); |
| 750 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new DestroyBridgeTask(&b
ridge, bridgeDestroyedEvent.get())); | 763 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new DestroyBridgeTask(&b
ridge, bridgeDestroyedEvent.get())); |
| 751 bridgeDestroyedEvent->wait(); | 764 bridgeDestroyedEvent->wait(); |
| 752 } | 765 } |
| 753 | 766 |
| 754 TEST_F(Canvas2DLayerBridgeTest, TeardownWhileHibernating) | 767 TEST_F(Canvas2DLayerBridgeTest, TeardownWhileHibernating) |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 919 OwnPtr<WebWaitableEvent> hibernationAbortedEvent = adoptPtr(Platform::curren
t()->createWaitableEvent()); | 932 OwnPtr<WebWaitableEvent> hibernationAbortedEvent = adoptPtr(Platform::curren
t()->createWaitableEvent()); |
| 920 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe
rnationScheduled)); | 933 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe
rnationScheduled)); |
| 921 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe
rnationAbortedDueToVisibilityChange)) | 934 EXPECT_CALL(*mockLoggerPtr, reportHibernationEvent(Canvas2DLayerBridge::Hibe
rnationAbortedDueToVisibilityChange)) |
| 922 .WillOnce(testing::InvokeWithoutArgs(hibernationAbortedEvent.get(), &Web
WaitableEvent::signal)); | 935 .WillOnce(testing::InvokeWithoutArgs(hibernationAbortedEvent.get(), &Web
WaitableEvent::signal)); |
| 923 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new SetIsHiddenTask(brid
ge.get(), true)); | 936 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new SetIsHiddenTask(brid
ge.get(), true)); |
| 924 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new SetIsHiddenTask(brid
ge.get(), false)); | 937 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new SetIsHiddenTask(brid
ge.get(), false)); |
| 925 hibernationAbortedEvent->wait(); | 938 hibernationAbortedEvent->wait(); |
| 926 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); | 939 ::testing::Mock::VerifyAndClearExpectations(mockLoggerPtr); |
| 927 EXPECT_TRUE(bridge->isAccelerated()); | 940 EXPECT_TRUE(bridge->isAccelerated()); |
| 928 EXPECT_FALSE(bridge->isHibernating()); | 941 EXPECT_FALSE(bridge->isHibernating()); |
| 942 EXPECT_TRUE(bridge->checkSurfaceValid()); |
| 929 | 943 |
| 930 // Tear down the bridge on the thread so that 'bridge' can go out of scope | 944 // Tear down the bridge on the thread so that 'bridge' can go out of scope |
| 931 // without crashing due to thread checks | 945 // without crashing due to thread checks |
| 932 OwnPtr<WebWaitableEvent> bridgeDestroyedEvent = adoptPtr(Platform::current()
->createWaitableEvent()); | 946 OwnPtr<WebWaitableEvent> bridgeDestroyedEvent = adoptPtr(Platform::current()
->createWaitableEvent()); |
| 933 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new DestroyBridgeTask(&b
ridge, bridgeDestroyedEvent.get())); | 947 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new DestroyBridgeTask(&b
ridge, bridgeDestroyedEvent.get())); |
| 934 bridgeDestroyedEvent->wait(); | 948 bridgeDestroyedEvent->wait(); |
| 935 | 949 |
| 936 ::testing::Mock::VerifyAndClearExpectations(&mainMock); | 950 ::testing::Mock::VerifyAndClearExpectations(&mainMock); |
| 937 } | 951 } |
| 938 | 952 |
| (...skipping 28 matching lines...) Expand all Loading... |
| 967 // Tear down the bridge on the thread so that 'bridge' can go out of scope | 981 // Tear down the bridge on the thread so that 'bridge' can go out of scope |
| 968 // without crashing due to thread checks | 982 // without crashing due to thread checks |
| 969 OwnPtr<WebWaitableEvent> bridgeDestroyedEvent = adoptPtr(Platform::current()
->createWaitableEvent()); | 983 OwnPtr<WebWaitableEvent> bridgeDestroyedEvent = adoptPtr(Platform::current()
->createWaitableEvent()); |
| 970 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new DestroyBridgeTask(&b
ridge, bridgeDestroyedEvent.get())); | 984 testThread->taskRunner()->postTask(BLINK_FROM_HERE, new DestroyBridgeTask(&b
ridge, bridgeDestroyedEvent.get())); |
| 971 bridgeDestroyedEvent->wait(); | 985 bridgeDestroyedEvent->wait(); |
| 972 | 986 |
| 973 ::testing::Mock::VerifyAndClearExpectations(&mainMock); | 987 ::testing::Mock::VerifyAndClearExpectations(&mainMock); |
| 974 } | 988 } |
| 975 | 989 |
| 976 } // namespace blink | 990 } // namespace blink |
| OLD | NEW |