OLD | NEW |
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 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
77 } | 77 } |
78 void removeVideoTrack(blink::WebMediaPlayer::TrackId) override {} | 78 void removeVideoTrack(blink::WebMediaPlayer::TrackId) override {} |
79 void addTextTrack(blink::WebInbandTextTrack*) override {} | 79 void addTextTrack(blink::WebInbandTextTrack*) override {} |
80 void removeTextTrack(blink::WebInbandTextTrack*) override {} | 80 void removeTextTrack(blink::WebInbandTextTrack*) override {} |
81 void mediaSourceOpened(blink::WebMediaSource*) override {} | 81 void mediaSourceOpened(blink::WebMediaSource*) override {} |
82 void requestSeek(double) override {} | 82 void requestSeek(double) override {} |
83 void remoteRouteAvailabilityChanged(bool) override {} | 83 void remoteRouteAvailabilityChanged(bool) override {} |
84 void connectedToRemoteDevice() override {} | 84 void connectedToRemoteDevice() override {} |
85 void disconnectedFromRemoteDevice() override {} | 85 void disconnectedFromRemoteDevice() override {} |
86 void cancelledRemotePlaybackRequest() override {} | 86 void cancelledRemotePlaybackRequest() override {} |
| 87 bool isAutoplayingMuted() override { return is_autoplaying_muted_; } |
87 void requestReload(const blink::WebURL& newUrl) override {} | 88 void requestReload(const blink::WebURL& newUrl) override {} |
88 | 89 |
| 90 void set_is_autoplaying_muted(bool value) { is_autoplaying_muted_ = value; } |
| 91 |
89 private: | 92 private: |
| 93 bool is_autoplaying_muted_ = false; |
| 94 |
90 DISALLOW_COPY_AND_ASSIGN(DummyWebMediaPlayerClient); | 95 DISALLOW_COPY_AND_ASSIGN(DummyWebMediaPlayerClient); |
91 }; | 96 }; |
92 | 97 |
93 class MockWebMediaPlayerDelegate | 98 class MockWebMediaPlayerDelegate |
94 : public WebMediaPlayerDelegate, | 99 : public WebMediaPlayerDelegate, |
95 public base::SupportsWeakPtr<MockWebMediaPlayerDelegate> { | 100 public base::SupportsWeakPtr<MockWebMediaPlayerDelegate> { |
96 public: | 101 public: |
97 MockWebMediaPlayerDelegate() = default; | 102 MockWebMediaPlayerDelegate() = default; |
98 ~MockWebMediaPlayerDelegate() = default; | 103 ~MockWebMediaPlayerDelegate() = default; |
99 | 104 |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
208 wmpi_->must_suspend_ = false; | 213 wmpi_->must_suspend_ = false; |
209 return wmpi_->UpdatePlayState_ComputePlayState(false, true, false); | 214 return wmpi_->UpdatePlayState_ComputePlayState(false, true, false); |
210 } | 215 } |
211 | 216 |
212 WebMediaPlayerImpl::PlayState ComputeMustSuspendPlayState() { | 217 WebMediaPlayerImpl::PlayState ComputeMustSuspendPlayState() { |
213 wmpi_->is_idle_ = false; | 218 wmpi_->is_idle_ = false; |
214 wmpi_->must_suspend_ = true; | 219 wmpi_->must_suspend_ = true; |
215 return wmpi_->UpdatePlayState_ComputePlayState(false, false, false); | 220 return wmpi_->UpdatePlayState_ComputePlayState(false, false, false); |
216 } | 221 } |
217 | 222 |
| 223 void SetDelegateState(WebMediaPlayerImpl::DelegateState state) { |
| 224 wmpi_->SetDelegateState(state); |
| 225 } |
| 226 |
218 bool IsSuspended() { return wmpi_->pipeline_controller_.IsSuspended(); } | 227 bool IsSuspended() { return wmpi_->pipeline_controller_.IsSuspended(); } |
219 | 228 |
220 void AddBufferedRanges() { | 229 void AddBufferedRanges() { |
221 wmpi_->buffered_data_source_host_.AddBufferedByteRange(0, 1); | 230 wmpi_->buffered_data_source_host_.AddBufferedByteRange(0, 1); |
222 } | 231 } |
223 | 232 |
224 void SetupForResumingBackgroundVideo() { | 233 void SetupForResumingBackgroundVideo() { |
225 #if !defined(OS_ANDROID) | 234 #if !defined(OS_ANDROID) |
226 // Need to enable media suspend to test resuming background videos. | 235 // Need to enable media suspend to test resuming background videos. |
227 base::CommandLine::ForCurrentProcess()->AppendSwitch( | 236 base::CommandLine::ForCurrentProcess()->AppendSwitch( |
(...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
646 | 655 |
647 EXPECT_CALL(delegate_, IsPlayingBackgroundVideo()).WillOnce(Return(false)); | 656 EXPECT_CALL(delegate_, IsPlayingBackgroundVideo()).WillOnce(Return(false)); |
648 EXPECT_CALL(delegate_, IsHidden()).WillRepeatedly(Return(true)); | 657 EXPECT_CALL(delegate_, IsHidden()).WillRepeatedly(Return(true)); |
649 | 658 |
650 state = ComputeBackgroundedPlayState(); | 659 state = ComputeBackgroundedPlayState(); |
651 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PAUSED, state.delegate_state); | 660 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PAUSED, state.delegate_state); |
652 EXPECT_FALSE(state.is_memory_reporting_enabled); | 661 EXPECT_FALSE(state.is_memory_reporting_enabled); |
653 EXPECT_TRUE(state.is_suspended); | 662 EXPECT_TRUE(state.is_suspended); |
654 } | 663 } |
655 | 664 |
| 665 TEST_F(WebMediaPlayerImplTest, AutoplayMuted_StartsAndStops) { |
| 666 InitializeDefaultWebMediaPlayerImpl(); |
| 667 SetMetadata(true, true); |
| 668 SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); |
| 669 SetPaused(false); |
| 670 |
| 671 EXPECT_CALL(delegate_, DidPlay(_, true, false, false, _)); |
| 672 client_.set_is_autoplaying_muted(true); |
| 673 SetDelegateState(WebMediaPlayerImpl::DelegateState::PLAYING); |
| 674 |
| 675 EXPECT_CALL(delegate_, DidPlay(_, true, true, false, _)); |
| 676 client_.set_is_autoplaying_muted(false); |
| 677 SetDelegateState(WebMediaPlayerImpl::DelegateState::PLAYING); |
| 678 } |
| 679 |
| 680 TEST_F(WebMediaPlayerImplTest, AutoplayMuted_SetVolume) { |
| 681 InitializeDefaultWebMediaPlayerImpl(); |
| 682 SetMetadata(true, true); |
| 683 SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); |
| 684 SetPaused(false); |
| 685 |
| 686 EXPECT_CALL(delegate_, DidPlay(_, true, false, false, _)); |
| 687 client_.set_is_autoplaying_muted(true); |
| 688 SetDelegateState(WebMediaPlayerImpl::DelegateState::PLAYING); |
| 689 |
| 690 EXPECT_CALL(delegate_, DidPlay(_, true, true, false, _)); |
| 691 client_.set_is_autoplaying_muted(false); |
| 692 wmpi_->setVolume(1.0); |
| 693 } |
| 694 |
656 } // namespace media | 695 } // namespace media |
OLD | NEW |