| 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 | 
| 11 #include "base/bind.h" | 11 #include "base/bind.h" | 
| 12 #include "base/callback_helpers.h" | 12 #include "base/callback_helpers.h" | 
| 13 #include "base/command_line.h" | 13 #include "base/command_line.h" | 
| 14 #include "base/memory/ptr_util.h" | 14 #include "base/memory/ptr_util.h" | 
| 15 #include "base/memory/ref_counted.h" | 15 #include "base/memory/ref_counted.h" | 
| 16 #include "base/memory/weak_ptr.h" | 16 #include "base/memory/weak_ptr.h" | 
| 17 #include "base/message_loop/message_loop.h" | 17 #include "base/message_loop/message_loop.h" | 
| 18 #include "base/run_loop.h" | 18 #include "base/run_loop.h" | 
|  | 19 #include "base/test/simple_test_tick_clock.h" | 
| 19 #include "base/threading/thread.h" | 20 #include "base/threading/thread.h" | 
| 20 #include "base/threading/thread_task_runner_handle.h" | 21 #include "base/threading/thread_task_runner_handle.h" | 
| 21 #include "media/base/media_log.h" | 22 #include "media/base/media_log.h" | 
| 22 #include "media/base/media_switches.h" | 23 #include "media/base/media_switches.h" | 
| 23 #include "media/base/test_helpers.h" | 24 #include "media/base/test_helpers.h" | 
| 24 #include "media/blink/webmediaplayer_delegate.h" | 25 #include "media/blink/webmediaplayer_delegate.h" | 
| 25 #include "media/blink/webmediaplayer_params.h" | 26 #include "media/blink/webmediaplayer_params.h" | 
| 26 #include "media/renderers/default_renderer_factory.h" | 27 #include "media/renderers/default_renderer_factory.h" | 
| 27 #include "testing/gmock/include/gmock/gmock.h" | 28 #include "testing/gmock/include/gmock/gmock.h" | 
| 28 #include "testing/gtest/include/gtest/gtest.h" | 29 #include "testing/gtest/include/gtest/gtest.h" | 
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 120                                          blink::WebPageVisibilityStateVisible)), | 121                                          blink::WebPageVisibilityStateVisible)), | 
| 121         web_local_frame_( | 122         web_local_frame_( | 
| 122             blink::WebLocalFrame::create(blink::WebTreeScopeType::Document, | 123             blink::WebLocalFrame::create(blink::WebTreeScopeType::Document, | 
| 123                                          &web_frame_client_)), | 124                                          &web_frame_client_)), | 
| 124         media_log_(new MediaLog()), | 125         media_log_(new MediaLog()), | 
| 125         audio_parameters_(TestAudioParameters::Normal()) { | 126         audio_parameters_(TestAudioParameters::Normal()) { | 
| 126     web_view_->setMainFrame(web_local_frame_); | 127     web_view_->setMainFrame(web_local_frame_); | 
| 127     media_thread_.StartAndWaitForTesting(); | 128     media_thread_.StartAndWaitForTesting(); | 
| 128   } | 129   } | 
| 129 | 130 | 
| 130   void InitializeDefaultWebMediaPlayerImpl() { | 131   void InitializeWebMediaPlayerImpl() { | 
| 131     InitializeWebMediaPlayerImpl(delegate_.AsWeakPtr()); |  | 
| 132   } |  | 
| 133 |  | 
| 134   void InitializeWebMediaPlayerImpl( |  | 
| 135       base::WeakPtr<MockWebMediaPlayerDelegate> delegate) { |  | 
| 136     wmpi_.reset(new WebMediaPlayerImpl( | 132     wmpi_.reset(new WebMediaPlayerImpl( | 
| 137         web_local_frame_, &client_, nullptr, delegate, | 133         web_local_frame_, &client_, nullptr, delegate_.AsWeakPtr(), | 
| 138         base::MakeUnique<DefaultRendererFactory>( | 134         base::MakeUnique<DefaultRendererFactory>( | 
| 139             media_log_, nullptr, DefaultRendererFactory::GetGpuFactoriesCB()), | 135             media_log_, nullptr, DefaultRendererFactory::GetGpuFactoriesCB()), | 
| 140         url_index_, | 136         url_index_, | 
| 141         WebMediaPlayerParams( | 137         WebMediaPlayerParams( | 
| 142             WebMediaPlayerParams::DeferLoadCB(), | 138             WebMediaPlayerParams::DeferLoadCB(), | 
| 143             scoped_refptr<SwitchableAudioRendererSink>(), media_log_, | 139             scoped_refptr<SwitchableAudioRendererSink>(), media_log_, | 
| 144             media_thread_.task_runner(), message_loop_.task_runner(), | 140             media_thread_.task_runner(), message_loop_.task_runner(), | 
| 145             message_loop_.task_runner(), WebMediaPlayerParams::Context3DCB(), | 141             message_loop_.task_runner(), WebMediaPlayerParams::Context3DCB(), | 
| 146             base::Bind(&OnAdjustAllocatedMemory), nullptr, nullptr, nullptr))); | 142             base::Bind(&OnAdjustAllocatedMemory), nullptr, nullptr, nullptr))); | 
| 147   } | 143   } | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
| 159   } | 155   } | 
| 160 | 156 | 
| 161  protected: | 157  protected: | 
| 162   void SetReadyState(blink::WebMediaPlayer::ReadyState state) { | 158   void SetReadyState(blink::WebMediaPlayer::ReadyState state) { | 
| 163     wmpi_->SetReadyState(state); | 159     wmpi_->SetReadyState(state); | 
| 164   } | 160   } | 
| 165 | 161 | 
| 166   void SetPaused(bool is_paused) { wmpi_->paused_ = is_paused; } | 162   void SetPaused(bool is_paused) { wmpi_->paused_ = is_paused; } | 
| 167   void SetSeeking(bool is_seeking) { wmpi_->seeking_ = is_seeking; } | 163   void SetSeeking(bool is_seeking) { wmpi_->seeking_ = is_seeking; } | 
| 168   void SetEnded(bool is_ended) { wmpi_->ended_ = is_ended; } | 164   void SetEnded(bool is_ended) { wmpi_->ended_ = is_ended; } | 
|  | 165   void SetTickClock(base::TickClock* clock) { wmpi_->tick_clock_.reset(clock); } | 
| 169 | 166 | 
| 170   void SetFullscreen(bool is_fullscreen) { | 167   void SetFullscreen(bool is_fullscreen) { | 
| 171     wmpi_->overlay_enabled_ = is_fullscreen; | 168     wmpi_->overlay_enabled_ = is_fullscreen; | 
| 172   } | 169   } | 
| 173 | 170 | 
| 174   void SetMetadata(bool has_audio, bool has_video) { | 171   void SetMetadata(bool has_audio, bool has_video) { | 
| 175     wmpi_->SetNetworkState(blink::WebMediaPlayer::NetworkStateLoaded); | 172     wmpi_->SetNetworkState(blink::WebMediaPlayer::NetworkStateLoaded); | 
| 176     wmpi_->SetReadyState(blink::WebMediaPlayer::ReadyStateHaveMetadata); | 173     wmpi_->SetReadyState(blink::WebMediaPlayer::ReadyStateHaveMetadata); | 
| 177     wmpi_->pipeline_metadata_.has_audio = has_audio; | 174     wmpi_->pipeline_metadata_.has_audio = has_audio; | 
| 178     wmpi_->pipeline_metadata_.has_video = has_video; | 175     wmpi_->pipeline_metadata_.has_video = has_video; | 
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 267   testing::NiceMock<MockWebMediaPlayerDelegate> delegate_; | 264   testing::NiceMock<MockWebMediaPlayerDelegate> delegate_; | 
| 268 | 265 | 
| 269   // The WebMediaPlayerImpl instance under test. | 266   // The WebMediaPlayerImpl instance under test. | 
| 270   std::unique_ptr<WebMediaPlayerImpl> wmpi_; | 267   std::unique_ptr<WebMediaPlayerImpl> wmpi_; | 
| 271 | 268 | 
| 272  private: | 269  private: | 
| 273   DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerImplTest); | 270   DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerImplTest); | 
| 274 }; | 271 }; | 
| 275 | 272 | 
| 276 TEST_F(WebMediaPlayerImplTest, ConstructAndDestroy) { | 273 TEST_F(WebMediaPlayerImplTest, ConstructAndDestroy) { | 
| 277   InitializeDefaultWebMediaPlayerImpl(); | 274   InitializeWebMediaPlayerImpl(); | 
| 278 } | 275 } | 
| 279 | 276 | 
| 280 TEST_F(WebMediaPlayerImplTest, DidLoadingProgressClearsIdle) { | 277 TEST_F(WebMediaPlayerImplTest, IdleSuspendIsEnabledBeforeLoadingBegins) { | 
| 281   testing::StrictMock<MockWebMediaPlayerDelegate> strict_delegate; | 278   InitializeWebMediaPlayerImpl(); | 
| 282   EXPECT_CALL(strict_delegate, AddObserver(_)); | 279   wmpi_->OnSuspendRequested(false); | 
| 283   EXPECT_CALL(strict_delegate, IsPlayingBackgroundVideo()).Times(AnyNumber()); | 280   base::RunLoop().RunUntilIdle(); | 
| 284   InitializeWebMediaPlayerImpl(strict_delegate.AsWeakPtr()); | 281   EXPECT_TRUE(IsSuspended()); | 
|  | 282 } | 
|  | 283 | 
|  | 284 TEST_F(WebMediaPlayerImplTest, | 
|  | 285        IdleSuspendIsDisabledIfLoadingProgressedRecently) { | 
|  | 286   InitializeWebMediaPlayerImpl(); | 
|  | 287   base::SimpleTestTickClock* clock = new base::SimpleTestTickClock(); | 
|  | 288   clock->Advance(base::TimeDelta::FromSeconds(1)); | 
|  | 289   SetTickClock(clock); | 
|  | 290   AddBufferedRanges(); | 
|  | 291   wmpi_->didLoadingProgress(); | 
|  | 292   // Advance less than the loading timeout. | 
|  | 293   clock->Advance(base::TimeDelta::FromSeconds(1)); | 
|  | 294   wmpi_->OnSuspendRequested(false); | 
|  | 295   base::RunLoop().RunUntilIdle(); | 
|  | 296   EXPECT_FALSE(IsSuspended()); | 
|  | 297 } | 
|  | 298 | 
|  | 299 TEST_F(WebMediaPlayerImplTest, IdleSuspendIsEnabledIfLoadingHasStalled) { | 
|  | 300   InitializeWebMediaPlayerImpl(); | 
|  | 301   base::SimpleTestTickClock* clock = new base::SimpleTestTickClock(); | 
|  | 302   clock->Advance(base::TimeDelta::FromSeconds(1)); | 
|  | 303   SetTickClock(clock); | 
|  | 304   AddBufferedRanges(); | 
|  | 305   wmpi_->didLoadingProgress(); | 
|  | 306   // Advance more than the loading timeout. | 
|  | 307   clock->Advance(base::TimeDelta::FromSeconds(4)); | 
|  | 308   wmpi_->OnSuspendRequested(false); | 
|  | 309   base::RunLoop().RunUntilIdle(); | 
|  | 310   EXPECT_TRUE(IsSuspended()); | 
|  | 311 } | 
|  | 312 | 
|  | 313 TEST_F(WebMediaPlayerImplTest, DidLoadingProgressTriggersResume) { | 
|  | 314   InitializeWebMediaPlayerImpl(); | 
| 285   EXPECT_FALSE(IsSuspended()); | 315   EXPECT_FALSE(IsSuspended()); | 
| 286   wmpi_->OnSuspendRequested(false); | 316   wmpi_->OnSuspendRequested(false); | 
| 287   base::RunLoop().RunUntilIdle(); | 317   base::RunLoop().RunUntilIdle(); | 
| 288   EXPECT_TRUE(IsSuspended()); | 318   EXPECT_TRUE(IsSuspended()); | 
| 289   AddBufferedRanges(); | 319   AddBufferedRanges(); | 
| 290   wmpi_->didLoadingProgress(); | 320   wmpi_->didLoadingProgress(); | 
| 291   base::RunLoop().RunUntilIdle(); | 321   base::RunLoop().RunUntilIdle(); | 
| 292   EXPECT_FALSE(IsSuspended()); | 322   EXPECT_FALSE(IsSuspended()); | 
| 293 } | 323 } | 
| 294 | 324 | 
| 295 TEST_F(WebMediaPlayerImplTest, ComputePlayState_AfterConstruction) { | 325 TEST_F(WebMediaPlayerImplTest, ComputePlayState_AfterConstruction) { | 
| 296   InitializeDefaultWebMediaPlayerImpl(); | 326   InitializeWebMediaPlayerImpl(); | 
| 297   WebMediaPlayerImpl::PlayState state; | 327   WebMediaPlayerImpl::PlayState state; | 
| 298 | 328 | 
| 299   state = ComputePlayState(); | 329   state = ComputePlayState(); | 
| 300   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 330   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 
| 301   EXPECT_FALSE(state.is_memory_reporting_enabled); | 331   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 302   EXPECT_FALSE(state.is_suspended); | 332   EXPECT_FALSE(state.is_suspended); | 
| 303 | 333 | 
| 304   state = ComputeIdlePlayState(); | 334   state = ComputeIdlePlayState(); | 
| 305   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 335   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 
| 306   EXPECT_FALSE(state.is_memory_reporting_enabled); | 336   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 307   EXPECT_TRUE(state.is_suspended); | 337   EXPECT_TRUE(state.is_suspended); | 
| 308 | 338 | 
| 309   state = ComputeBackgroundedPlayState(); | 339   state = ComputeBackgroundedPlayState(); | 
| 310   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 340   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 
| 311   EXPECT_FALSE(state.is_memory_reporting_enabled); | 341   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 312   EXPECT_FALSE(state.is_suspended); | 342   EXPECT_FALSE(state.is_suspended); | 
| 313 | 343 | 
| 314   state = ComputeMustSuspendPlayState(); | 344   state = ComputeMustSuspendPlayState(); | 
| 315   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 345   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 
| 316   EXPECT_FALSE(state.is_memory_reporting_enabled); | 346   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 317   EXPECT_TRUE(state.is_suspended); | 347   EXPECT_TRUE(state.is_suspended); | 
| 318 } | 348 } | 
| 319 | 349 | 
| 320 TEST_F(WebMediaPlayerImplTest, ComputePlayState_AfterMetadata) { | 350 TEST_F(WebMediaPlayerImplTest, ComputePlayState_AfterMetadata) { | 
| 321   InitializeDefaultWebMediaPlayerImpl(); | 351   InitializeWebMediaPlayerImpl(); | 
| 322   WebMediaPlayerImpl::PlayState state; | 352   WebMediaPlayerImpl::PlayState state; | 
| 323   SetMetadata(true, true); | 353   SetMetadata(true, true); | 
| 324 | 354 | 
| 325   state = ComputePlayState(); | 355   state = ComputePlayState(); | 
| 326   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 356   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 
| 327   EXPECT_FALSE(state.is_memory_reporting_enabled); | 357   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 328   EXPECT_FALSE(state.is_suspended); | 358   EXPECT_FALSE(state.is_suspended); | 
| 329 | 359 | 
| 330   state = ComputeIdlePlayState(); | 360   state = ComputeIdlePlayState(); | 
| 331   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 361   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 
| 332   EXPECT_FALSE(state.is_memory_reporting_enabled); | 362   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 333   EXPECT_TRUE(state.is_suspended); | 363   EXPECT_TRUE(state.is_suspended); | 
| 334 | 364 | 
| 335   state = ComputeBackgroundedPlayState(); | 365   state = ComputeBackgroundedPlayState(); | 
| 336   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 366   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 
| 337   EXPECT_FALSE(state.is_memory_reporting_enabled); | 367   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 338   EXPECT_TRUE(state.is_suspended); | 368   EXPECT_TRUE(state.is_suspended); | 
| 339 | 369 | 
| 340   state = ComputeMustSuspendPlayState(); | 370   state = ComputeMustSuspendPlayState(); | 
| 341   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 371   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 
| 342   EXPECT_FALSE(state.is_memory_reporting_enabled); | 372   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 343   EXPECT_TRUE(state.is_suspended); | 373   EXPECT_TRUE(state.is_suspended); | 
| 344 } | 374 } | 
| 345 | 375 | 
| 346 TEST_F(WebMediaPlayerImplTest, ComputePlayState_AfterMetadata_AudioOnly) { | 376 TEST_F(WebMediaPlayerImplTest, ComputePlayState_AfterMetadata_AudioOnly) { | 
| 347   InitializeDefaultWebMediaPlayerImpl(); | 377   InitializeWebMediaPlayerImpl(); | 
| 348   WebMediaPlayerImpl::PlayState state; | 378   WebMediaPlayerImpl::PlayState state; | 
| 349   SetMetadata(true, false); | 379   SetMetadata(true, false); | 
| 350 | 380 | 
| 351   state = ComputePlayState(); | 381   state = ComputePlayState(); | 
| 352   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 382   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 
| 353   EXPECT_FALSE(state.is_memory_reporting_enabled); | 383   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 354   EXPECT_FALSE(state.is_suspended); | 384   EXPECT_FALSE(state.is_suspended); | 
| 355 | 385 | 
| 356   state = ComputeIdlePlayState(); | 386   state = ComputeIdlePlayState(); | 
| 357   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 387   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 
| 358   EXPECT_FALSE(state.is_memory_reporting_enabled); | 388   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 359   EXPECT_TRUE(state.is_suspended); | 389   EXPECT_TRUE(state.is_suspended); | 
| 360 | 390 | 
| 361   SetPaused(false); | 391   SetPaused(false); | 
| 362   state = ComputeBackgroundedPlayState(); | 392   state = ComputeBackgroundedPlayState(); | 
| 363   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 393   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 
| 364   EXPECT_FALSE(state.is_memory_reporting_enabled); | 394   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 365   EXPECT_FALSE(state.is_suspended); | 395   EXPECT_FALSE(state.is_suspended); | 
| 366 | 396 | 
| 367   state = ComputeMustSuspendPlayState(); | 397   state = ComputeMustSuspendPlayState(); | 
| 368   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 398   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 
| 369   EXPECT_FALSE(state.is_memory_reporting_enabled); | 399   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 370   EXPECT_TRUE(state.is_suspended); | 400   EXPECT_TRUE(state.is_suspended); | 
| 371 } | 401 } | 
| 372 | 402 | 
| 373 TEST_F(WebMediaPlayerImplTest, ComputePlayState_AfterFutureData) { | 403 TEST_F(WebMediaPlayerImplTest, ComputePlayState_AfterFutureData) { | 
| 374   InitializeDefaultWebMediaPlayerImpl(); | 404   InitializeWebMediaPlayerImpl(); | 
| 375   WebMediaPlayerImpl::PlayState state; | 405   WebMediaPlayerImpl::PlayState state; | 
| 376   SetMetadata(true, true); | 406   SetMetadata(true, true); | 
| 377   SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); | 407   SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); | 
| 378 | 408 | 
| 379   state = ComputePlayState(); | 409   state = ComputePlayState(); | 
| 380   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PAUSED, state.delegate_state); | 410   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PAUSED, state.delegate_state); | 
| 381   EXPECT_FALSE(state.is_memory_reporting_enabled); | 411   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 382   EXPECT_FALSE(state.is_suspended); | 412   EXPECT_FALSE(state.is_suspended); | 
| 383 | 413 | 
| 384   state = ComputeBackgroundedPlayState(); | 414   state = ComputeBackgroundedPlayState(); | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
| 396   EXPECT_FALSE(state.is_memory_reporting_enabled); | 426   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 397   EXPECT_TRUE(state.is_suspended); | 427   EXPECT_TRUE(state.is_suspended); | 
| 398 | 428 | 
| 399   state = ComputeMustSuspendPlayState(); | 429   state = ComputeMustSuspendPlayState(); | 
| 400   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 430   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 
| 401   EXPECT_FALSE(state.is_memory_reporting_enabled); | 431   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 402   EXPECT_TRUE(state.is_suspended); | 432   EXPECT_TRUE(state.is_suspended); | 
| 403 } | 433 } | 
| 404 | 434 | 
| 405 TEST_F(WebMediaPlayerImplTest, ComputePlayState_Playing) { | 435 TEST_F(WebMediaPlayerImplTest, ComputePlayState_Playing) { | 
| 406   InitializeDefaultWebMediaPlayerImpl(); | 436   InitializeWebMediaPlayerImpl(); | 
| 407   WebMediaPlayerImpl::PlayState state; | 437   WebMediaPlayerImpl::PlayState state; | 
| 408   SetMetadata(true, true); | 438   SetMetadata(true, true); | 
| 409   SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); | 439   SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); | 
| 410   SetPaused(false); | 440   SetPaused(false); | 
| 411 | 441 | 
| 412   state = ComputePlayState(); | 442   state = ComputePlayState(); | 
| 413   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PLAYING, state.delegate_state); | 443   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PLAYING, state.delegate_state); | 
| 414   EXPECT_TRUE(state.is_memory_reporting_enabled); | 444   EXPECT_TRUE(state.is_memory_reporting_enabled); | 
| 415   EXPECT_FALSE(state.is_suspended); | 445   EXPECT_FALSE(state.is_suspended); | 
| 416 | 446 | 
| 417   state = ComputeBackgroundedPlayState(); | 447   state = ComputeBackgroundedPlayState(); | 
| 418   if (base::FeatureList::IsEnabled(kResumeBackgroundVideo)) | 448   if (base::FeatureList::IsEnabled(kResumeBackgroundVideo)) | 
| 419     EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PAUSED, state.delegate_state); | 449     EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PAUSED, state.delegate_state); | 
| 420   else | 450   else | 
| 421     EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 451     EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 
| 422   EXPECT_FALSE(state.is_memory_reporting_enabled); | 452   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 423   EXPECT_TRUE(state.is_suspended); | 453   EXPECT_TRUE(state.is_suspended); | 
| 424 | 454 | 
| 425   state = ComputeMustSuspendPlayState(); | 455   state = ComputeMustSuspendPlayState(); | 
| 426   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 456   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 
| 427   EXPECT_FALSE(state.is_memory_reporting_enabled); | 457   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 428   EXPECT_TRUE(state.is_suspended); | 458   EXPECT_TRUE(state.is_suspended); | 
| 429 } | 459 } | 
| 430 | 460 | 
| 431 TEST_F(WebMediaPlayerImplTest, ComputePlayState_PlayingThenUnderflow) { | 461 TEST_F(WebMediaPlayerImplTest, ComputePlayState_PlayingThenUnderflow) { | 
| 432   InitializeDefaultWebMediaPlayerImpl(); | 462   InitializeWebMediaPlayerImpl(); | 
| 433   WebMediaPlayerImpl::PlayState state; | 463   WebMediaPlayerImpl::PlayState state; | 
| 434   SetMetadata(true, true); | 464   SetMetadata(true, true); | 
| 435   SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); | 465   SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); | 
| 436   SetPaused(false); | 466   SetPaused(false); | 
| 437   SetReadyState(blink::WebMediaPlayer::ReadyStateHaveCurrentData); | 467   SetReadyState(blink::WebMediaPlayer::ReadyStateHaveCurrentData); | 
| 438 | 468 | 
| 439   // Underflow should not trigger idle suspend. The user is still playing the | 469   // Underflow should not trigger idle suspend. The user is still playing the | 
| 440   // the video, just waiting on the network. | 470   // the video, just waiting on the network. | 
| 441   state = ComputePlayState(); | 471   state = ComputePlayState(); | 
| 442   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PLAYING, state.delegate_state); | 472   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PLAYING, state.delegate_state); | 
| (...skipping 10 matching lines...) Expand all  Loading... | 
| 453   EXPECT_TRUE(state.is_suspended); | 483   EXPECT_TRUE(state.is_suspended); | 
| 454 | 484 | 
| 455   // Forced suspend should still be possible during underflow. | 485   // Forced suspend should still be possible during underflow. | 
| 456   state = ComputeMustSuspendPlayState(); | 486   state = ComputeMustSuspendPlayState(); | 
| 457   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 487   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 
| 458   EXPECT_FALSE(state.is_memory_reporting_enabled); | 488   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 459   EXPECT_TRUE(state.is_suspended); | 489   EXPECT_TRUE(state.is_suspended); | 
| 460 } | 490 } | 
| 461 | 491 | 
| 462 TEST_F(WebMediaPlayerImplTest, ComputePlayState_Playing_AudioOnly) { | 492 TEST_F(WebMediaPlayerImplTest, ComputePlayState_Playing_AudioOnly) { | 
| 463   InitializeDefaultWebMediaPlayerImpl(); | 493   InitializeWebMediaPlayerImpl(); | 
| 464   WebMediaPlayerImpl::PlayState state; | 494   WebMediaPlayerImpl::PlayState state; | 
| 465   SetMetadata(true, false); | 495   SetMetadata(true, false); | 
| 466   SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); | 496   SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); | 
| 467   SetPaused(false); | 497   SetPaused(false); | 
| 468 | 498 | 
| 469   state = ComputePlayState(); | 499   state = ComputePlayState(); | 
| 470   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PLAYING, state.delegate_state); | 500   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PLAYING, state.delegate_state); | 
| 471   EXPECT_TRUE(state.is_memory_reporting_enabled); | 501   EXPECT_TRUE(state.is_memory_reporting_enabled); | 
| 472   EXPECT_FALSE(state.is_suspended); | 502   EXPECT_FALSE(state.is_suspended); | 
| 473 | 503 | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
| 485   EXPECT_FALSE(state.is_memory_reporting_enabled); | 515   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 486   EXPECT_TRUE(state.is_suspended); | 516   EXPECT_TRUE(state.is_suspended); | 
| 487 | 517 | 
| 488   state = ComputeMustSuspendPlayState(); | 518   state = ComputeMustSuspendPlayState(); | 
| 489   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 519   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 
| 490   EXPECT_FALSE(state.is_memory_reporting_enabled); | 520   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 491   EXPECT_TRUE(state.is_suspended); | 521   EXPECT_TRUE(state.is_suspended); | 
| 492 } | 522 } | 
| 493 | 523 | 
| 494 TEST_F(WebMediaPlayerImplTest, ComputePlayState_Paused_Seek) { | 524 TEST_F(WebMediaPlayerImplTest, ComputePlayState_Paused_Seek) { | 
| 495   InitializeDefaultWebMediaPlayerImpl(); | 525   InitializeWebMediaPlayerImpl(); | 
| 496   WebMediaPlayerImpl::PlayState state; | 526   WebMediaPlayerImpl::PlayState state; | 
| 497   SetMetadata(true, true); | 527   SetMetadata(true, true); | 
| 498   SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); | 528   SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); | 
| 499   SetSeeking(true); | 529   SetSeeking(true); | 
| 500 | 530 | 
| 501   state = ComputePlayState(); | 531   state = ComputePlayState(); | 
| 502   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PAUSED, state.delegate_state); | 532   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PAUSED, state.delegate_state); | 
| 503   EXPECT_FALSE(state.is_memory_reporting_enabled); | 533   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 504   EXPECT_FALSE(state.is_suspended); | 534   EXPECT_FALSE(state.is_suspended); | 
| 505 } | 535 } | 
| 506 | 536 | 
| 507 TEST_F(WebMediaPlayerImplTest, ComputePlayState_Paused_Fullscreen) { | 537 TEST_F(WebMediaPlayerImplTest, ComputePlayState_Paused_Fullscreen) { | 
| 508   InitializeDefaultWebMediaPlayerImpl(); | 538   InitializeWebMediaPlayerImpl(); | 
| 509   WebMediaPlayerImpl::PlayState state; | 539   WebMediaPlayerImpl::PlayState state; | 
| 510   SetMetadata(true, true); | 540   SetMetadata(true, true); | 
| 511   SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); | 541   SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); | 
| 512   SetFullscreen(true); | 542   SetFullscreen(true); | 
| 513 | 543 | 
| 514   state = ComputePlayState(); | 544   state = ComputePlayState(); | 
| 515   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PAUSED, state.delegate_state); | 545   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PAUSED, state.delegate_state); | 
| 516   EXPECT_FALSE(state.is_memory_reporting_enabled); | 546   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 517   EXPECT_FALSE(state.is_suspended); | 547   EXPECT_FALSE(state.is_suspended); | 
| 518 } | 548 } | 
| 519 | 549 | 
| 520 TEST_F(WebMediaPlayerImplTest, ComputePlayState_Ended) { | 550 TEST_F(WebMediaPlayerImplTest, ComputePlayState_Ended) { | 
| 521   InitializeDefaultWebMediaPlayerImpl(); | 551   InitializeWebMediaPlayerImpl(); | 
| 522   WebMediaPlayerImpl::PlayState state; | 552   WebMediaPlayerImpl::PlayState state; | 
| 523   SetMetadata(true, true); | 553   SetMetadata(true, true); | 
| 524   SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); | 554   SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); | 
| 525   SetEnded(true); | 555   SetEnded(true); | 
| 526 | 556 | 
| 527   // The pipeline is not suspended immediately on ended. | 557   // The pipeline is not suspended immediately on ended. | 
| 528   state = ComputePlayState(); | 558   state = ComputePlayState(); | 
| 529   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::ENDED, state.delegate_state); | 559   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::ENDED, state.delegate_state); | 
| 530   EXPECT_FALSE(state.is_memory_reporting_enabled); | 560   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 531   EXPECT_FALSE(state.is_suspended); | 561   EXPECT_FALSE(state.is_suspended); | 
| 532 | 562 | 
| 533   state = ComputeIdlePlayState(); | 563   state = ComputeIdlePlayState(); | 
| 534   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::ENDED, state.delegate_state); | 564   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::ENDED, state.delegate_state); | 
| 535   EXPECT_FALSE(state.is_memory_reporting_enabled); | 565   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 536   EXPECT_TRUE(state.is_suspended); | 566   EXPECT_TRUE(state.is_suspended); | 
| 537 } | 567 } | 
| 538 | 568 | 
| 539 TEST_F(WebMediaPlayerImplTest, ComputePlayState_Suspended) { | 569 TEST_F(WebMediaPlayerImplTest, ComputePlayState_Suspended) { | 
| 540   InitializeDefaultWebMediaPlayerImpl(); | 570   InitializeWebMediaPlayerImpl(); | 
| 541   WebMediaPlayerImpl::PlayState state; | 571   WebMediaPlayerImpl::PlayState state; | 
| 542   SetMetadata(true, true); | 572   SetMetadata(true, true); | 
| 543 | 573 | 
| 544   // Suspended players should be resumed unless we have reached the appropriate | 574   // Suspended players should be resumed unless we have reached the appropriate | 
| 545   // ready state and are not seeking. | 575   // ready state and are not seeking. | 
| 546   SetPaused(true); | 576   SetPaused(true); | 
| 547   state = ComputePlayStateSuspended(); | 577   state = ComputePlayStateSuspended(); | 
| 548   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 578   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); | 
| 549   EXPECT_FALSE(state.is_memory_reporting_enabled); | 579   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 550   EXPECT_FALSE(state.is_suspended); | 580   EXPECT_FALSE(state.is_suspended); | 
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 588   EXPECT_FALSE(state.is_suspended); | 618   EXPECT_FALSE(state.is_suspended); | 
| 589 | 619 | 
| 590   SetPaused(false); | 620   SetPaused(false); | 
| 591   state = ComputePlayStateSuspended(); | 621   state = ComputePlayStateSuspended(); | 
| 592   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PLAYING, state.delegate_state); | 622   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PLAYING, state.delegate_state); | 
| 593   EXPECT_TRUE(state.is_memory_reporting_enabled); | 623   EXPECT_TRUE(state.is_memory_reporting_enabled); | 
| 594   EXPECT_FALSE(state.is_suspended); | 624   EXPECT_FALSE(state.is_suspended); | 
| 595 } | 625 } | 
| 596 | 626 | 
| 597 TEST_F(WebMediaPlayerImplTest, NaturalSizeChange) { | 627 TEST_F(WebMediaPlayerImplTest, NaturalSizeChange) { | 
| 598   InitializeDefaultWebMediaPlayerImpl(); | 628   InitializeWebMediaPlayerImpl(); | 
| 599   PipelineMetadata metadata; | 629   PipelineMetadata metadata; | 
| 600   metadata.has_video = true; | 630   metadata.has_video = true; | 
| 601   metadata.natural_size = gfx::Size(320, 240); | 631   metadata.natural_size = gfx::Size(320, 240); | 
| 602 | 632 | 
| 603   OnMetadata(metadata); | 633   OnMetadata(metadata); | 
| 604   ASSERT_EQ(blink::WebSize(320, 240), wmpi_->naturalSize()); | 634   ASSERT_EQ(blink::WebSize(320, 240), wmpi_->naturalSize()); | 
| 605 | 635 | 
| 606   // TODO(sandersd): Verify that the client is notified of the size change? | 636   // TODO(sandersd): Verify that the client is notified of the size change? | 
| 607   OnVideoNaturalSizeChange(gfx::Size(1920, 1080)); | 637   OnVideoNaturalSizeChange(gfx::Size(1920, 1080)); | 
| 608   ASSERT_EQ(blink::WebSize(1920, 1080), wmpi_->naturalSize()); | 638   ASSERT_EQ(blink::WebSize(1920, 1080), wmpi_->naturalSize()); | 
| 609 } | 639 } | 
| 610 | 640 | 
| 611 TEST_F(WebMediaPlayerImplTest, NaturalSizeChange_Rotated) { | 641 TEST_F(WebMediaPlayerImplTest, NaturalSizeChange_Rotated) { | 
| 612   InitializeDefaultWebMediaPlayerImpl(); | 642   InitializeWebMediaPlayerImpl(); | 
| 613   PipelineMetadata metadata; | 643   PipelineMetadata metadata; | 
| 614   metadata.has_video = true; | 644   metadata.has_video = true; | 
| 615   metadata.natural_size = gfx::Size(320, 240); | 645   metadata.natural_size = gfx::Size(320, 240); | 
| 616   metadata.video_rotation = VIDEO_ROTATION_90; | 646   metadata.video_rotation = VIDEO_ROTATION_90; | 
| 617 | 647 | 
| 618   // For 90/270deg rotations, the natural size should be transposed. | 648   // For 90/270deg rotations, the natural size should be transposed. | 
| 619   OnMetadata(metadata); | 649   OnMetadata(metadata); | 
| 620   ASSERT_EQ(blink::WebSize(240, 320), wmpi_->naturalSize()); | 650   ASSERT_EQ(blink::WebSize(240, 320), wmpi_->naturalSize()); | 
| 621 | 651 | 
| 622   OnVideoNaturalSizeChange(gfx::Size(1920, 1080)); | 652   OnVideoNaturalSizeChange(gfx::Size(1920, 1080)); | 
| 623   ASSERT_EQ(blink::WebSize(1080, 1920), wmpi_->naturalSize()); | 653   ASSERT_EQ(blink::WebSize(1080, 1920), wmpi_->naturalSize()); | 
| 624 } | 654 } | 
| 625 | 655 | 
| 626 // Audible backgrounded videos are not suspended if delegate_ allows it. | 656 // Audible backgrounded videos are not suspended if delegate_ allows it. | 
| 627 TEST_F(WebMediaPlayerImplTest, ComputePlayState_BackgroundedVideoPlaying) { | 657 TEST_F(WebMediaPlayerImplTest, ComputePlayState_BackgroundedVideoPlaying) { | 
| 628   InitializeDefaultWebMediaPlayerImpl(); | 658   InitializeWebMediaPlayerImpl(); | 
| 629   WebMediaPlayerImpl::PlayState state; | 659   WebMediaPlayerImpl::PlayState state; | 
| 630   SetMetadata(true, true); | 660   SetMetadata(true, true); | 
| 631   SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); | 661   SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); | 
| 632 | 662 | 
| 633   SetupForResumingBackgroundVideo(); | 663   SetupForResumingBackgroundVideo(); | 
| 634 | 664 | 
| 635   EXPECT_CALL(delegate_, IsPlayingBackgroundVideo()) | 665   EXPECT_CALL(delegate_, IsPlayingBackgroundVideo()) | 
| 636       .WillRepeatedly(Return(true)); | 666       .WillRepeatedly(Return(true)); | 
| 637   EXPECT_CALL(delegate_, IsHidden()).WillRepeatedly(Return(true)); | 667   EXPECT_CALL(delegate_, IsHidden()).WillRepeatedly(Return(true)); | 
| 638 | 668 | 
| 639   SetPaused(false); | 669   SetPaused(false); | 
| 640   state = ComputeBackgroundedPlayState(); | 670   state = ComputeBackgroundedPlayState(); | 
| 641   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PLAYING, state.delegate_state); | 671   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PLAYING, state.delegate_state); | 
| 642   EXPECT_TRUE(state.is_memory_reporting_enabled); | 672   EXPECT_TRUE(state.is_memory_reporting_enabled); | 
| 643   EXPECT_FALSE(state.is_suspended); | 673   EXPECT_FALSE(state.is_suspended); | 
| 644 } | 674 } | 
| 645 | 675 | 
| 646 // Backgrounding audible videos should suspend them and report as paused, not | 676 // Backgrounding audible videos should suspend them and report as paused, not | 
| 647 // gone. | 677 // gone. | 
| 648 TEST_F(WebMediaPlayerImplTest, ComputePlayState_BackgroundedVideoPaused) { | 678 TEST_F(WebMediaPlayerImplTest, ComputePlayState_BackgroundedVideoPaused) { | 
| 649   InitializeDefaultWebMediaPlayerImpl(); | 679   InitializeWebMediaPlayerImpl(); | 
| 650   WebMediaPlayerImpl::PlayState state; | 680   WebMediaPlayerImpl::PlayState state; | 
| 651   SetMetadata(true, true); | 681   SetMetadata(true, true); | 
| 652   SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); | 682   SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); | 
| 653 | 683 | 
| 654   SetupForResumingBackgroundVideo(); | 684   SetupForResumingBackgroundVideo(); | 
| 655 | 685 | 
| 656   EXPECT_CALL(delegate_, IsPlayingBackgroundVideo()).WillOnce(Return(false)); | 686   EXPECT_CALL(delegate_, IsPlayingBackgroundVideo()).WillOnce(Return(false)); | 
| 657   EXPECT_CALL(delegate_, IsHidden()).WillRepeatedly(Return(true)); | 687   EXPECT_CALL(delegate_, IsHidden()).WillRepeatedly(Return(true)); | 
| 658 | 688 | 
| 659   state = ComputeBackgroundedPlayState(); | 689   state = ComputeBackgroundedPlayState(); | 
| 660   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PAUSED, state.delegate_state); | 690   EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PAUSED, state.delegate_state); | 
| 661   EXPECT_FALSE(state.is_memory_reporting_enabled); | 691   EXPECT_FALSE(state.is_memory_reporting_enabled); | 
| 662   EXPECT_TRUE(state.is_suspended); | 692   EXPECT_TRUE(state.is_suspended); | 
| 663 } | 693 } | 
| 664 | 694 | 
| 665 TEST_F(WebMediaPlayerImplTest, AutoplayMuted_StartsAndStops) { | 695 TEST_F(WebMediaPlayerImplTest, AutoplayMuted_StartsAndStops) { | 
| 666   InitializeDefaultWebMediaPlayerImpl(); | 696   InitializeWebMediaPlayerImpl(); | 
| 667   SetMetadata(true, true); | 697   SetMetadata(true, true); | 
| 668   SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); | 698   SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); | 
| 669   SetPaused(false); | 699   SetPaused(false); | 
| 670 | 700 | 
| 671   EXPECT_CALL(delegate_, DidPlay(_, true, false, false, _)); | 701   EXPECT_CALL(delegate_, DidPlay(_, true, false, false, _)); | 
| 672   client_.set_is_autoplaying_muted(true); | 702   client_.set_is_autoplaying_muted(true); | 
| 673   SetDelegateState(WebMediaPlayerImpl::DelegateState::PLAYING); | 703   SetDelegateState(WebMediaPlayerImpl::DelegateState::PLAYING); | 
| 674 | 704 | 
| 675   EXPECT_CALL(delegate_, DidPlay(_, true, true, false, _)); | 705   EXPECT_CALL(delegate_, DidPlay(_, true, true, false, _)); | 
| 676   client_.set_is_autoplaying_muted(false); | 706   client_.set_is_autoplaying_muted(false); | 
| 677   SetDelegateState(WebMediaPlayerImpl::DelegateState::PLAYING); | 707   SetDelegateState(WebMediaPlayerImpl::DelegateState::PLAYING); | 
| 678 } | 708 } | 
| 679 | 709 | 
| 680 TEST_F(WebMediaPlayerImplTest, AutoplayMuted_SetVolume) { | 710 TEST_F(WebMediaPlayerImplTest, AutoplayMuted_SetVolume) { | 
| 681   InitializeDefaultWebMediaPlayerImpl(); | 711   InitializeWebMediaPlayerImpl(); | 
| 682   SetMetadata(true, true); | 712   SetMetadata(true, true); | 
| 683   SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); | 713   SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); | 
| 684   SetPaused(false); | 714   SetPaused(false); | 
| 685 | 715 | 
| 686   EXPECT_CALL(delegate_, DidPlay(_, true, false, false, _)); | 716   EXPECT_CALL(delegate_, DidPlay(_, true, false, false, _)); | 
| 687   client_.set_is_autoplaying_muted(true); | 717   client_.set_is_autoplaying_muted(true); | 
| 688   SetDelegateState(WebMediaPlayerImpl::DelegateState::PLAYING); | 718   SetDelegateState(WebMediaPlayerImpl::DelegateState::PLAYING); | 
| 689 | 719 | 
| 690   EXPECT_CALL(delegate_, DidPlay(_, true, true, false, _)); | 720   EXPECT_CALL(delegate_, DidPlay(_, true, true, false, _)); | 
| 691   client_.set_is_autoplaying_muted(false); | 721   client_.set_is_autoplaying_muted(false); | 
| 692   wmpi_->setVolume(1.0); | 722   wmpi_->setVolume(1.0); | 
| 693 } | 723 } | 
| 694 | 724 | 
| 695 }  // namespace media | 725 }  // namespace media | 
| OLD | NEW | 
|---|