| Index: media/blink/webmediaplayer_impl.cc
|
| diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc
|
| index b6c00f295fc68ba4429e93aac084db788f0b8af3..9b7507d539eb837714774884d7e57a92d1fd7b7f 100644
|
| --- a/media/blink/webmediaplayer_impl.cc
|
| +++ b/media/blink/webmediaplayer_impl.cc
|
| @@ -649,7 +649,10 @@ void WebMediaPlayerImpl::selectedVideoTrackChanged(
|
|
|
| std::ostringstream logstr;
|
| std::vector<MediaTrack::Id> selectedVideoMediaTrackId;
|
| - if (selectedTrackId) {
|
| + bool canAddVideoTrack =
|
| + !base::FeatureList::IsEnabled(kBackgroundVideoTrackOptimization) ||
|
| + !IsHidden();
|
| + if (selectedTrackId && canAddVideoTrack) {
|
| selectedVideoMediaTrackId.push_back(selectedTrackId->utf8().data());
|
| logstr << selectedVideoMediaTrackId[0];
|
| }
|
| @@ -1307,6 +1310,9 @@ void WebMediaPlayerImpl::OnVideoOpacityChange(bool opaque) {
|
|
|
| void WebMediaPlayerImpl::OnHidden() {
|
| DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| +
|
| + client_->hidden();
|
| +
|
| if (watch_time_reporter_)
|
| watch_time_reporter_->OnHidden();
|
|
|
| @@ -1322,6 +1328,8 @@ void WebMediaPlayerImpl::OnShown() {
|
| if (watch_time_reporter_)
|
| watch_time_reporter_->OnShown();
|
|
|
| + client_->shown();
|
| +
|
| must_suspend_ = false;
|
| background_pause_timer_.Stop();
|
|
|
| @@ -1690,8 +1698,7 @@ void WebMediaPlayerImpl::UpdatePlayState() {
|
| #endif
|
|
|
| bool is_suspended = pipeline_controller_.IsSuspended();
|
| - bool is_backgrounded =
|
| - IsBackgroundedSuspendEnabled() && delegate_ && delegate_->IsHidden();
|
| + bool is_backgrounded = IsBackgroundedSuspendEnabled() && IsHidden();
|
| PlayState state = UpdatePlayState_ComputePlayState(is_remote, is_suspended,
|
| is_backgrounded);
|
| SetDelegateState(state.delegate_state);
|
| @@ -1949,10 +1956,16 @@ void WebMediaPlayerImpl::CreateWatchTimeReporter() {
|
| pipeline_metadata_.natural_size,
|
| base::Bind(&GetCurrentTimeInternal, this)));
|
| watch_time_reporter_->OnVolumeChange(volume_);
|
| - if (delegate_ && delegate_->IsHidden())
|
| + if (IsHidden())
|
| watch_time_reporter_->OnHidden();
|
| else
|
| watch_time_reporter_->OnShown();
|
| }
|
|
|
| +bool WebMediaPlayerImpl::IsHidden() const {
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| +
|
| + return delegate_ && delegate_->IsHidden();
|
| +}
|
| +
|
| } // namespace media
|
|
|