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