Commit a2ac19aa authored by Tommy Steimel's avatar Tommy Steimel Committed by Commit Bot

Prevent MediaControls from scrubbing state before video is ready

This CL changes the scrubbing check in MediaControlsImpl::State to only
return the scrubbing state when the video is actually scrubbable. This
fixes a bug where the video CSS class would have a ready state when no
video source was available.

Bug: 802155
Change-Id: Ib7dfd26cb1be98dde2fc53ea6e230103162f64b1
Reviewed-on: https://chromium-review.googlesource.com/884262Reviewed-by: default avatarMounir Lamouri (slow) <mlamouri@chromium.org>
Commit-Queue: Tommy Steimel <steimel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532906}
parent 627b89c9
......@@ -610,23 +610,27 @@ void MediaControlsImpl::UpdateCSSClassFromState() {
}
MediaControlsImpl::ControlsState MediaControlsImpl::State() const {
if (is_scrubbing_)
HTMLMediaElement::NetworkState network_state =
MediaElement().getNetworkState();
HTMLMediaElement::ReadyState ready_state = MediaElement().getReadyState();
if (is_scrubbing_ && ready_state != HTMLMediaElement::kHaveNothing)
return ControlsState::kScrubbing;
switch (MediaElement().getNetworkState()) {
switch (network_state) {
case HTMLMediaElement::kNetworkEmpty:
case HTMLMediaElement::kNetworkNoSource:
return ControlsState::kNoSource;
case HTMLMediaElement::kNetworkLoading:
if (MediaElement().getReadyState() == HTMLMediaElement::kHaveNothing)
if (ready_state == HTMLMediaElement::kHaveNothing)
return ControlsState::kLoadingMetadata;
if (!MediaElement().paused() &&
MediaElement().getReadyState() != HTMLMediaElement::kHaveEnoughData) {
ready_state != HTMLMediaElement::kHaveEnoughData) {
return ControlsState::kBuffering;
}
break;
case HTMLMediaElement::kNetworkIdle:
if (MediaElement().getReadyState() == HTMLMediaElement::kHaveNothing)
if (ready_state == HTMLMediaElement::kHaveNothing)
return ControlsState::kNotLoaded;
break;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment