Chromium Code Reviews| Index: media/blink/webmediaplayer_impl.cc |
| diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc |
| index 64a44f770d4990fecbb35f8ce4b99328774cdd9f..8c0208beded0d17caaf57b4a7941ffead108e387 100644 |
| --- a/media/blink/webmediaplayer_impl.cc |
| +++ b/media/blink/webmediaplayer_impl.cc |
| @@ -985,17 +985,16 @@ void WebMediaPlayerImpl::OnPipelineMetadata( |
| video_weblayer_->layer()->SetContentsOpaque(opaque_); |
| video_weblayer_->SetContentsOpaqueIsFixed(true); |
| client_->setWebLayer(video_weblayer_.get()); |
| - |
| - // If there is video and the frame is hidden, then it may be time to suspend |
| - // playback. |
| - if (delegate_ && delegate_->IsHidden()) |
| - OnHidden(); |
| } |
| // Tell the delegate we can now be safely suspended due to inactivity if a |
| // subsequent play event does not occur. |
| if (paused_) |
| NotifyPlaybackPaused(); |
| + |
| + // If the frame is hidden, it may be time to suspend playback. |
| + if (delegate_ && delegate_->IsHidden()) |
| + OnHidden(); |
| } |
| void WebMediaPlayerImpl::OnPipelineBufferingStateChanged( |
| @@ -1066,6 +1065,10 @@ void WebMediaPlayerImpl::OnHidden() { |
| return; |
| #endif |
| + // Don't suspend before matadata is available. |
|
DaleCurtis
2016/03/21 19:54:34
What happens during a seek? Do we transition to ha
sandersd (OOO until July 31)
2016/03/21 19:59:43
During seek, we set the state to ReadyStateHaveMet
|
| + if (ready_state_ < WebMediaPlayer::ReadyStateHaveMetadata) |
| + return; |
| + |
| // Don't suspend players which only have audio and have not completed |
| // playback. The user can still control these players via the MediaSession UI. |
| // If the player has never started playback, OnSuspendRequested() will handle |
| @@ -1092,8 +1095,10 @@ void WebMediaPlayerImpl::OnShown() { |
| return; |
| #endif |
| - if (!ended_ && !paused_) |
| + if (ready_state_ < WebMediaPlayer::ReadyStateHaveMetadata || |
|
DaleCurtis
2016/03/21 20:04:50
We want to resume when it's less than have metadat
sandersd (OOO until July 31)
2016/03/21 20:12:26
Yes. I added a comment to explain.
|
| + (!ended_ && !paused_)) { |
| pipeline_controller_.Resume(); |
| + } |
| } |
| void WebMediaPlayerImpl::OnSuspendRequested(bool must_suspend) { |