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

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

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

Powered by Google App Engine
This is Rietveld 408576698