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

Side by Side Diff: media/blink/webmediaplayer_impl_unittest.cc

Issue 2681863005: [Video] MediaSession API event handlers can resume background video. (Closed)
Patch Set: Tweaked the logic in HTMLME a bit Created 3 years, 10 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/blink/webmediaplayer_impl.h" 5 #include "media/blink/webmediaplayer_impl.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 void addTextTrack(blink::WebInbandTextTrack*) override {} 81 void addTextTrack(blink::WebInbandTextTrack*) override {}
82 void removeTextTrack(blink::WebInbandTextTrack*) override {} 82 void removeTextTrack(blink::WebInbandTextTrack*) override {}
83 void mediaSourceOpened(blink::WebMediaSource*) override {} 83 void mediaSourceOpened(blink::WebMediaSource*) override {}
84 void requestSeek(double) override {} 84 void requestSeek(double) override {}
85 void remoteRouteAvailabilityChanged( 85 void remoteRouteAvailabilityChanged(
86 blink::WebRemotePlaybackAvailability) override {} 86 blink::WebRemotePlaybackAvailability) override {}
87 void connectedToRemoteDevice() override {} 87 void connectedToRemoteDevice() override {}
88 void disconnectedFromRemoteDevice() override {} 88 void disconnectedFromRemoteDevice() override {}
89 void cancelledRemotePlaybackRequest() override {} 89 void cancelledRemotePlaybackRequest() override {}
90 void remotePlaybackStarted() override {} 90 void remotePlaybackStarted() override {}
91 void wasPausedWhenBackgrounded() override {}
92 void wasResumedWhenForegrounded() override {}
91 bool isAutoplayingMuted() override { return is_autoplaying_muted_; } 93 bool isAutoplayingMuted() override { return is_autoplaying_muted_; }
92 void requestReload(const blink::WebURL& newUrl) override {} 94 void requestReload(const blink::WebURL& newUrl) override {}
93 bool hasSelectedVideoTrack() override { return false; } 95 bool hasSelectedVideoTrack() override { return false; }
94 blink::WebMediaPlayer::TrackId getSelectedVideoTrackId() override { 96 blink::WebMediaPlayer::TrackId getSelectedVideoTrackId() override {
95 return blink::WebMediaPlayer::TrackId(); 97 return blink::WebMediaPlayer::TrackId();
96 } 98 }
99 bool isBackgroundVideoPlaybackUnlocked() override { return false; }
97 100
98 void set_is_autoplaying_muted(bool value) { is_autoplaying_muted_ = value; } 101 void set_is_autoplaying_muted(bool value) { is_autoplaying_muted_ = value; }
99 102
100 private: 103 private:
101 bool is_autoplaying_muted_ = false; 104 bool is_autoplaying_muted_ = false;
102 105
103 DISALLOW_COPY_AND_ASSIGN(DummyWebMediaPlayerClient); 106 DISALLOW_COPY_AND_ASSIGN(DummyWebMediaPlayerClient);
104 }; 107 };
105 108
106 class MockWebMediaPlayerDelegate : public WebMediaPlayerDelegate { 109 class MockWebMediaPlayerDelegate : public WebMediaPlayerDelegate {
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 void SetVideoKeyframeDistanceAverage(base::TimeDelta value) { 299 void SetVideoKeyframeDistanceAverage(base::TimeDelta value) {
297 PipelineStatistics statistics; 300 PipelineStatistics statistics;
298 statistics.video_keyframe_distance_average = value; 301 statistics.video_keyframe_distance_average = value;
299 wmpi_->SetPipelineStatisticsForTest(statistics); 302 wmpi_->SetPipelineStatisticsForTest(statistics);
300 } 303 }
301 304
302 void SetDuration(base::TimeDelta value) { 305 void SetDuration(base::TimeDelta value) {
303 wmpi_->SetPipelineMediaDurationForTest(value); 306 wmpi_->SetPipelineMediaDurationForTest(value);
304 } 307 }
305 308
309 void SetUpMediaSuspend(bool enable) {
310 #if defined(OS_ANDROID)
311 if (!enable) {
312 base::CommandLine::ForCurrentProcess()->AppendSwitch(
313 switches::kDisableMediaSuspend);
314 }
315 #else
316 if (enable) {
317 base::CommandLine::ForCurrentProcess()->AppendSwitch(
318 switches::kEnableMediaSuspend);
319 }
320 #endif
321 }
322
306 // "Renderer" thread. 323 // "Renderer" thread.
307 base::MessageLoop message_loop_; 324 base::MessageLoop message_loop_;
308 325
309 // "Media" thread. This is necessary because WMPI destruction waits on a 326 // "Media" thread. This is necessary because WMPI destruction waits on a
310 // WaitableEvent. 327 // WaitableEvent.
311 base::Thread media_thread_; 328 base::Thread media_thread_;
312 329
313 // Blink state. 330 // Blink state.
314 blink::WebFrameClient web_frame_client_; 331 blink::WebFrameClient web_frame_client_;
315 blink::WebView* web_view_; 332 blink::WebView* web_view_;
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 EXPECT_FALSE(state.is_suspended); 469 EXPECT_FALSE(state.is_suspended);
453 EXPECT_TRUE(state.is_memory_reporting_enabled); 470 EXPECT_TRUE(state.is_memory_reporting_enabled);
454 } 471 }
455 472
456 TEST_F(WebMediaPlayerImplTest, ComputePlayState_FrameHidden) { 473 TEST_F(WebMediaPlayerImplTest, ComputePlayState_FrameHidden) {
457 InitializeWebMediaPlayerImpl(true); 474 InitializeWebMediaPlayerImpl(true);
458 SetMetadata(true, true); 475 SetMetadata(true, true);
459 SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); 476 SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData);
460 SetPaused(false); 477 SetPaused(false);
461 478
462 { 479 WebMediaPlayerImpl::PlayState state = ComputePlayState_FrameHidden();
463 base::test::ScopedFeatureList scoped_feature_list; 480 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PLAYING, state.delegate_state);
464 scoped_feature_list.InitAndEnableFeature(kResumeBackgroundVideo); 481 EXPECT_FALSE(state.is_idle);
465 482 EXPECT_FALSE(state.is_suspended);
466 WebMediaPlayerImpl::PlayState state = ComputePlayState_FrameHidden(); 483 EXPECT_TRUE(state.is_memory_reporting_enabled);
467 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PAUSED, state.delegate_state);
468 EXPECT_TRUE(state.is_idle);
469 EXPECT_TRUE(state.is_suspended);
470 EXPECT_FALSE(state.is_memory_reporting_enabled);
471 }
472
473 {
474 base::test::ScopedFeatureList scoped_feature_list;
475 scoped_feature_list.InitAndDisableFeature(kResumeBackgroundVideo);
476
477 WebMediaPlayerImpl::PlayState state = ComputePlayState_FrameHidden();
478 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state);
479 EXPECT_TRUE(state.is_idle);
480 EXPECT_TRUE(state.is_suspended);
481 EXPECT_FALSE(state.is_memory_reporting_enabled);
482 }
483 } 484 }
484 485
485 TEST_F(WebMediaPlayerImplTest, ComputePlayState_FrameClosed) { 486 TEST_F(WebMediaPlayerImplTest, ComputePlayState_FrameClosed) {
486 InitializeWebMediaPlayerImpl(true); 487 InitializeWebMediaPlayerImpl(true);
487 SetMetadata(true, true); 488 SetMetadata(true, true);
488 SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); 489 SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData);
489 SetPaused(false); 490 SetPaused(false);
490 delegate_.SetFrameClosedForTesting(true); 491 delegate_.SetFrameClosedForTesting(true);
491 WebMediaPlayerImpl::PlayState state = ComputePlayState(); 492 WebMediaPlayerImpl::PlayState state = ComputePlayState();
492 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); 493 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state);
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
682 metadata.video_rotation = VIDEO_ROTATION_90; 683 metadata.video_rotation = VIDEO_ROTATION_90;
683 684
684 OnMetadata(metadata); 685 OnMetadata(metadata);
685 ASSERT_EQ(blink::WebSize(320, 240), wmpi_->naturalSize()); 686 ASSERT_EQ(blink::WebSize(320, 240), wmpi_->naturalSize());
686 687
687 // For 90/270deg rotations, the natural size should be transposed. 688 // For 90/270deg rotations, the natural size should be transposed.
688 OnVideoNaturalSizeChange(gfx::Size(1920, 1080)); 689 OnVideoNaturalSizeChange(gfx::Size(1920, 1080));
689 ASSERT_EQ(blink::WebSize(1080, 1920), wmpi_->naturalSize()); 690 ASSERT_EQ(blink::WebSize(1080, 1920), wmpi_->naturalSize());
690 } 691 }
691 692
692 TEST_F(WebMediaPlayerImplTest, BackgroundOptimizationsFeatureEnabled) { 693 TEST_F(WebMediaPlayerImplTest,
694 BackgroundOptimizationsFeatureEnabledSuspendEnabled) {
693 base::test::ScopedFeatureList scoped_feature_list; 695 base::test::ScopedFeatureList scoped_feature_list;
694 scoped_feature_list.InitAndEnableFeature(kBackgroundVideoTrackOptimization); 696 scoped_feature_list.InitAndEnableFeature(kBackgroundVideoTrackOptimization);
697 SetUpMediaSuspend(true);
698
695 InitializeWebMediaPlayerImpl(true); 699 InitializeWebMediaPlayerImpl(true);
696 SetVideoKeyframeDistanceAverage(base::TimeDelta::FromSeconds(5)); 700 SetVideoKeyframeDistanceAverage(base::TimeDelta::FromSeconds(5));
697 SetDuration(base::TimeDelta::FromSeconds(300)); 701 SetDuration(base::TimeDelta::FromSeconds(300));
698 702
699 // Audible video. 703 // Audible video.
700 SetMetadata(true, true); 704 SetMetadata(true, true);
701 EXPECT_TRUE(IsBackgroundOptimizationCandidate()); 705 EXPECT_TRUE(IsBackgroundOptimizationCandidate());
702 EXPECT_TRUE(ShouldDisableVideoWhenHidden()); 706 EXPECT_TRUE(ShouldDisableVideoWhenHidden());
703 EXPECT_FALSE(ShouldPauseVideoWhenHidden()); 707 EXPECT_TRUE(ShouldPauseVideoWhenHidden());
704 708
705 // Video only. 709 // Video only.
706 SetMetadata(false, true); 710 SetMetadata(false, true);
707 EXPECT_TRUE(IsBackgroundOptimizationCandidate()); 711 EXPECT_TRUE(IsBackgroundOptimizationCandidate());
708 EXPECT_TRUE(ShouldPauseVideoWhenHidden()); 712 EXPECT_TRUE(ShouldPauseVideoWhenHidden());
709 EXPECT_FALSE(ShouldDisableVideoWhenHidden()); 713 EXPECT_FALSE(ShouldDisableVideoWhenHidden());
710 714
711 // Audio only. 715 // Audio only.
712 SetMetadata(true, false); 716 SetMetadata(true, false);
713 EXPECT_FALSE(IsBackgroundOptimizationCandidate()); 717 EXPECT_FALSE(IsBackgroundOptimizationCandidate());
714 EXPECT_FALSE(ShouldPauseVideoWhenHidden()); 718 EXPECT_FALSE(ShouldPauseVideoWhenHidden());
715 EXPECT_FALSE(ShouldDisableVideoWhenHidden()); 719 EXPECT_FALSE(ShouldDisableVideoWhenHidden());
716 720
717 // Duration is shorter than max video keyframe distance. 721 // Duration is shorter than max video keyframe distance.
718 SetDuration(base::TimeDelta::FromSeconds(5)); 722 SetDuration(base::TimeDelta::FromSeconds(5));
719 SetMetadata(true, true); 723 SetMetadata(true, true);
720 EXPECT_TRUE(IsBackgroundOptimizationCandidate()); 724 EXPECT_TRUE(IsBackgroundOptimizationCandidate());
721 EXPECT_FALSE(ShouldPauseVideoWhenHidden()); 725 EXPECT_TRUE(ShouldPauseVideoWhenHidden());
722 EXPECT_TRUE(ShouldDisableVideoWhenHidden()); 726 EXPECT_TRUE(ShouldDisableVideoWhenHidden());
723 727
724 // Average keyframe distance is too big. 728 // Average keyframe distance is too big.
725 SetVideoKeyframeDistanceAverage(base::TimeDelta::FromSeconds(100)); 729 SetVideoKeyframeDistanceAverage(base::TimeDelta::FromSeconds(100));
726 SetDuration(base::TimeDelta::FromSeconds(300)); 730 SetDuration(base::TimeDelta::FromSeconds(300));
727 EXPECT_FALSE(IsBackgroundOptimizationCandidate()); 731 EXPECT_FALSE(IsBackgroundOptimizationCandidate());
728 EXPECT_FALSE(ShouldPauseVideoWhenHidden()); 732 EXPECT_TRUE(ShouldPauseVideoWhenHidden());
729 EXPECT_FALSE(ShouldDisableVideoWhenHidden()); 733 EXPECT_FALSE(ShouldDisableVideoWhenHidden());
730 } 734 }
731 735
732 TEST_F(WebMediaPlayerImplTest, BackgroundOptimizationsFeatureDisabled) { 736 TEST_F(WebMediaPlayerImplTest,
737 BackgroundOptimizationsFeatureDisabledSuspendEnabled) {
733 base::test::ScopedFeatureList scoped_feature_list; 738 base::test::ScopedFeatureList scoped_feature_list;
734 scoped_feature_list.InitAndDisableFeature(kBackgroundVideoTrackOptimization); 739 scoped_feature_list.InitAndDisableFeature(kBackgroundVideoTrackOptimization);
740 SetUpMediaSuspend(true);
735 741
736 InitializeWebMediaPlayerImpl(true); 742 InitializeWebMediaPlayerImpl(true);
737 SetVideoKeyframeDistanceAverage(base::TimeDelta::FromSeconds(5)); 743 SetVideoKeyframeDistanceAverage(base::TimeDelta::FromSeconds(5));
738 SetDuration(base::TimeDelta::FromSeconds(300)); 744 SetDuration(base::TimeDelta::FromSeconds(300));
739 745
740 // Audible video. 746 // Audible video.
741 SetMetadata(true, true); 747 SetMetadata(true, true);
742 EXPECT_TRUE(IsBackgroundOptimizationCandidate()); 748 EXPECT_TRUE(IsBackgroundOptimizationCandidate());
743 EXPECT_FALSE(ShouldDisableVideoWhenHidden()); 749 EXPECT_FALSE(ShouldDisableVideoWhenHidden());
744 EXPECT_FALSE(ShouldPauseVideoWhenHidden()); 750 EXPECT_TRUE(ShouldPauseVideoWhenHidden());
745 751
746 // Video only (pausing is enabled on Android). 752 // Video only.
747 SetMetadata(false, true); 753 SetMetadata(false, true);
748 EXPECT_TRUE(IsBackgroundOptimizationCandidate()); 754 EXPECT_TRUE(IsBackgroundOptimizationCandidate());
749 EXPECT_FALSE(ShouldDisableVideoWhenHidden()); 755 EXPECT_FALSE(ShouldDisableVideoWhenHidden());
750 #if defined(OS_ANDROID)
751 EXPECT_TRUE(ShouldPauseVideoWhenHidden()); 756 EXPECT_TRUE(ShouldPauseVideoWhenHidden());
752 757
758 #if defined(OS_ANDROID)
753 // On Android, the duration and keyframe distance don't matter for video-only. 759 // On Android, the duration and keyframe distance don't matter for video-only.
754 SetDuration(base::TimeDelta::FromSeconds(5)); 760 SetDuration(base::TimeDelta::FromSeconds(5));
755 EXPECT_TRUE(IsBackgroundOptimizationCandidate()); 761 EXPECT_TRUE(IsBackgroundOptimizationCandidate());
756 EXPECT_TRUE(ShouldPauseVideoWhenHidden()); 762 EXPECT_TRUE(ShouldPauseVideoWhenHidden());
757 763
758 SetVideoKeyframeDistanceAverage(base::TimeDelta::FromSeconds(100)); 764 SetVideoKeyframeDistanceAverage(base::TimeDelta::FromSeconds(100));
759 SetDuration(base::TimeDelta::FromSeconds(300)); 765 SetDuration(base::TimeDelta::FromSeconds(300));
760 EXPECT_TRUE(IsBackgroundOptimizationCandidate()); 766 EXPECT_TRUE(IsBackgroundOptimizationCandidate());
761 EXPECT_TRUE(ShouldPauseVideoWhenHidden()); 767 EXPECT_TRUE(ShouldPauseVideoWhenHidden());
762 768
763 // Restore average keyframe distance. 769 // Restore average keyframe distance.
764 SetVideoKeyframeDistanceAverage(base::TimeDelta::FromSeconds(5)); 770 SetVideoKeyframeDistanceAverage(base::TimeDelta::FromSeconds(5));
765 #else
766 EXPECT_FALSE(ShouldPauseVideoWhenHidden());
767 #endif 771 #endif
768 772
769 // Audio only. 773 // Audio only.
774 SetMetadata(true, false);
775 EXPECT_FALSE(IsBackgroundOptimizationCandidate());
776 EXPECT_FALSE(ShouldPauseVideoWhenHidden());
777 EXPECT_FALSE(ShouldDisableVideoWhenHidden());
778
779 // Duration is shorter than max video keyframe distance.
780 SetDuration(base::TimeDelta::FromSeconds(5));
781 SetMetadata(true, true);
782 EXPECT_TRUE(IsBackgroundOptimizationCandidate());
783 EXPECT_TRUE(ShouldPauseVideoWhenHidden());
784 EXPECT_FALSE(ShouldDisableVideoWhenHidden());
785
786 // Average keyframe distance is too big.
787 SetVideoKeyframeDistanceAverage(base::TimeDelta::FromSeconds(100));
788 SetDuration(base::TimeDelta::FromSeconds(300));
789 EXPECT_FALSE(IsBackgroundOptimizationCandidate());
790 EXPECT_TRUE(ShouldPauseVideoWhenHidden());
791 EXPECT_FALSE(ShouldDisableVideoWhenHidden());
792 }
793
794 TEST_F(WebMediaPlayerImplTest,
795 BackgroundOptimizationsFeatureEnabledSuspendDisabled) {
796 base::test::ScopedFeatureList scoped_feature_list;
797 scoped_feature_list.InitAndEnableFeature(kBackgroundVideoTrackOptimization);
798 SetUpMediaSuspend(false);
799
800 InitializeWebMediaPlayerImpl(true);
801 SetVideoKeyframeDistanceAverage(base::TimeDelta::FromSeconds(5));
802 SetDuration(base::TimeDelta::FromSeconds(300));
803
804 // Audible video.
805 SetMetadata(true, true);
806 EXPECT_TRUE(IsBackgroundOptimizationCandidate());
807 EXPECT_TRUE(ShouldDisableVideoWhenHidden());
808 EXPECT_FALSE(ShouldPauseVideoWhenHidden());
809
810 // Video only.
811 SetMetadata(false, true);
812 EXPECT_TRUE(IsBackgroundOptimizationCandidate());
813 EXPECT_TRUE(ShouldPauseVideoWhenHidden());
814 EXPECT_FALSE(ShouldDisableVideoWhenHidden());
815
816 // Audio only.
817 SetMetadata(true, false);
818 EXPECT_FALSE(IsBackgroundOptimizationCandidate());
819 EXPECT_FALSE(ShouldPauseVideoWhenHidden());
820 EXPECT_FALSE(ShouldDisableVideoWhenHidden());
821
822 // Duration is shorter than max video keyframe distance.
823 SetDuration(base::TimeDelta::FromSeconds(5));
824 SetMetadata(true, true);
825 EXPECT_TRUE(IsBackgroundOptimizationCandidate());
826 EXPECT_FALSE(ShouldPauseVideoWhenHidden());
827 EXPECT_TRUE(ShouldDisableVideoWhenHidden());
828
829 // Average keyframe distance is too big.
830 SetVideoKeyframeDistanceAverage(base::TimeDelta::FromSeconds(100));
831 SetDuration(base::TimeDelta::FromSeconds(300));
832 EXPECT_FALSE(IsBackgroundOptimizationCandidate());
833 EXPECT_FALSE(ShouldPauseVideoWhenHidden());
834 EXPECT_FALSE(ShouldDisableVideoWhenHidden());
835 }
836
837 TEST_F(WebMediaPlayerImplTest,
838 BackgroundOptimizationsFeatureDisabledSuspendDisabled) {
839 base::test::ScopedFeatureList scoped_feature_list;
840 scoped_feature_list.InitAndDisableFeature(kBackgroundVideoTrackOptimization);
841 SetUpMediaSuspend(false);
842
843 InitializeWebMediaPlayerImpl(true);
844 SetVideoKeyframeDistanceAverage(base::TimeDelta::FromSeconds(5));
845 SetDuration(base::TimeDelta::FromSeconds(300));
846
847 // Audible video.
848 SetMetadata(true, true);
849 EXPECT_TRUE(IsBackgroundOptimizationCandidate());
850 EXPECT_FALSE(ShouldDisableVideoWhenHidden());
851 EXPECT_FALSE(ShouldPauseVideoWhenHidden());
852
853 // Video only.
854 SetMetadata(false, true);
855 EXPECT_TRUE(IsBackgroundOptimizationCandidate());
856 EXPECT_FALSE(ShouldDisableVideoWhenHidden());
857 EXPECT_FALSE(ShouldPauseVideoWhenHidden());
858
859 #if defined(OS_ANDROID)
860 // On Android, the duration and keyframe distance don't matter for video-only.
861 SetDuration(base::TimeDelta::FromSeconds(5));
862 EXPECT_TRUE(IsBackgroundOptimizationCandidate());
863 EXPECT_FALSE(ShouldPauseVideoWhenHidden());
864
865 SetVideoKeyframeDistanceAverage(base::TimeDelta::FromSeconds(100));
866 SetDuration(base::TimeDelta::FromSeconds(300));
867 EXPECT_TRUE(IsBackgroundOptimizationCandidate());
868 EXPECT_FALSE(ShouldPauseVideoWhenHidden());
869
870 // Restore average keyframe distance.
871 SetVideoKeyframeDistanceAverage(base::TimeDelta::FromSeconds(5));
872 #endif
873
874 // Audio only.
770 SetMetadata(true, false); 875 SetMetadata(true, false);
771 EXPECT_FALSE(IsBackgroundOptimizationCandidate()); 876 EXPECT_FALSE(IsBackgroundOptimizationCandidate());
772 EXPECT_FALSE(ShouldPauseVideoWhenHidden()); 877 EXPECT_FALSE(ShouldPauseVideoWhenHidden());
773 EXPECT_FALSE(ShouldDisableVideoWhenHidden()); 878 EXPECT_FALSE(ShouldDisableVideoWhenHidden());
774 879
775 // Duration is shorter than max video keyframe distance. 880 // Duration is shorter than max video keyframe distance.
776 SetDuration(base::TimeDelta::FromSeconds(5)); 881 SetDuration(base::TimeDelta::FromSeconds(5));
777 SetMetadata(true, true); 882 SetMetadata(true, true);
778 EXPECT_TRUE(IsBackgroundOptimizationCandidate()); 883 EXPECT_TRUE(IsBackgroundOptimizationCandidate());
779 EXPECT_FALSE(ShouldPauseVideoWhenHidden()); 884 EXPECT_FALSE(ShouldPauseVideoWhenHidden());
780 EXPECT_FALSE(ShouldDisableVideoWhenHidden()); 885 EXPECT_FALSE(ShouldDisableVideoWhenHidden());
781 886
782 // Average keyframe distance is too big. 887 // Average keyframe distance is too big.
783 SetVideoKeyframeDistanceAverage(base::TimeDelta::FromSeconds(100)); 888 SetVideoKeyframeDistanceAverage(base::TimeDelta::FromSeconds(100));
784 SetDuration(base::TimeDelta::FromSeconds(300)); 889 SetDuration(base::TimeDelta::FromSeconds(300));
785 EXPECT_FALSE(IsBackgroundOptimizationCandidate()); 890 EXPECT_FALSE(IsBackgroundOptimizationCandidate());
786 EXPECT_FALSE(ShouldPauseVideoWhenHidden()); 891 EXPECT_FALSE(ShouldPauseVideoWhenHidden());
787 EXPECT_FALSE(ShouldDisableVideoWhenHidden()); 892 EXPECT_FALSE(ShouldDisableVideoWhenHidden());
788 } 893 }
789 894
790 } // namespace media 895 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698