diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc b/chromium/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc index 772ddeaa7d0..89c356e3e28 100644 --- a/chromium/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc +++ b/chromium/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc @@ -871,6 +871,7 @@ void MediaControlsImpl::MaybeShow() { timeline_->OnControlsShown(); UpdateCSSClassFromState(); + UpdateActingAsAudioControls(); } void MediaControlsImpl::Hide() { @@ -896,6 +897,7 @@ void MediaControlsImpl::Hide() { timeline_->OnControlsHidden(); UpdateCSSClassFromState(); + UpdateActingAsAudioControls(); } bool MediaControlsImpl::IsVisible() const { @@ -1603,13 +1605,7 @@ void MediaControlsImpl::OnLoadedMetadata() { // to be changed. Reset(); UpdateCSSClassFromState(); - - if (ShouldActAsAudioControls() != is_acting_as_audio_controls_) { - if (is_acting_as_audio_controls_) - StopActingAsAudioControls(); - else - StartActingAsAudioControls(); - } + UpdateActingAsAudioControls(); } void MediaControlsImpl::OnEnteredFullscreen() { @@ -1828,8 +1824,9 @@ MediaControlsImpl::ToggleClosedCaptions() { bool MediaControlsImpl::ShouldActAsAudioControls() const { // A video element should act like an audio element when it has an audio track // but no video track. - return IsModern() && MediaElement().IsHTMLVideoElement() && - MediaElement().HasAudio() && !MediaElement().HasVideo(); + return IsModern() && MediaElement().ShouldShowControls() && + MediaElement().IsHTMLVideoElement() && MediaElement().HasAudio() && + !MediaElement().HasVideo(); } void MediaControlsImpl::StartActingAsAudioControls() { @@ -1850,6 +1847,15 @@ void MediaControlsImpl::StopActingAsAudioControls() { Reset(); } +void MediaControlsImpl::UpdateActingAsAudioControls() { + if (ShouldActAsAudioControls() != is_acting_as_audio_controls_) { + if (is_acting_as_audio_controls_) + StopActingAsAudioControls(); + else + StartActingAsAudioControls(); + } +} + bool MediaControlsImpl::ShouldShowAudioControls() const { return IsModern() && (MediaElement().IsHTMLAudioElement() || is_acting_as_audio_controls_); |