Chromium Code Reviews| Index: third_party/WebKit/Source/core/html/HTMLMediaElement.cpp |
| diff --git a/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp b/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp |
| index f1334c3da09a4fd48e046b02ace7b7001c81cc40..961a1ea4d4b29d63b8342f0c8ea90dd26723460d 100644 |
| --- a/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp |
| +++ b/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp |
| @@ -754,7 +754,7 @@ void HTMLMediaElement::prepareForLoad() |
| scheduleEvent(EventTypeNames::emptied); |
| // 4.2 - If a fetching process is in progress for the media element, the user agent should stop it. |
| - m_networkState = NETWORK_EMPTY; |
| + setNetworkState(NETWORK_EMPTY); |
| // 4.3 - Forget the media element's media-resource-specific tracks. |
| forgetResourceSpecificTracks(); |
| @@ -797,7 +797,7 @@ void HTMLMediaElement::prepareForLoad() |
| // The resource selection algorithm |
| // 1 - Set the networkState to NETWORK_NO_SOURCE |
| - m_networkState = NETWORK_NO_SOURCE; |
| + setNetworkState(NETWORK_NO_SOURCE); |
| // 2 - Asynchronously await a stable state. |
| @@ -854,7 +854,7 @@ void HTMLMediaElement::selectMediaResource() |
| // synchronous section ends. |
| m_loadState = WaitingForSource; |
| setShouldDelayLoadEvent(false); |
| - m_networkState = NETWORK_EMPTY; |
| + setNetworkState(NETWORK_EMPTY); |
| updateDisplayState(); |
| WTF_LOG(Media, "HTMLMediaElement::selectMediaResource(%p), nothing to load", this); |
| @@ -865,7 +865,7 @@ void HTMLMediaElement::selectMediaResource() |
| // 4 - Set the media element's delaying-the-load-event flag to true (this delays the load event), |
| // and set its networkState to NETWORK_LOADING. |
| setShouldDelayLoadEvent(true); |
| - m_networkState = NETWORK_LOADING; |
| + setNetworkState(NETWORK_LOADING); |
| // 5 - Queue a task to fire a simple event named loadstart at the media element. |
| scheduleEvent(EventTypeNames::loadstart); |
| @@ -931,7 +931,7 @@ void HTMLMediaElement::loadResource(const KURL& url, ContentType& contentType, c |
| } |
| // The resource fetch algorithm |
| - m_networkState = NETWORK_LOADING; |
| + setNetworkState(NETWORK_LOADING); |
| // Set m_currentSrc *before* changing to the cache url, the fact that we are loading from the app |
| // cache is an internal detail not exposed through the media element API. |
| @@ -1103,7 +1103,7 @@ void HTMLMediaElement::executeDeferredLoad() |
| // delays the load event again, in case it hasn't been fired yet). |
| setShouldDelayLoadEvent(true); |
| // 7. Set the networkState to NETWORK_LOADING. |
| - m_networkState = NETWORK_LOADING; |
| + setNetworkState(NETWORK_LOADING); |
| startProgressEventTimer(); |
| @@ -1238,7 +1238,7 @@ void HTMLMediaElement::waitForSourceChange() |
| m_loadState = WaitingForSource; |
| // 6.17 - Waiting: Set the element's networkState attribute to the NETWORK_NO_SOURCE value |
| - m_networkState = NETWORK_NO_SOURCE; |
| + setNetworkState(NETWORK_NO_SOURCE); |
| // 6.18 - Set the element's delaying-the-load-event flag to false. This stops delaying the load event. |
| setShouldDelayLoadEvent(false); |
| @@ -1269,7 +1269,7 @@ void HTMLMediaElement::noneSupported() |
| forgetResourceSpecificTracks(); |
| // 6.3 - Set the element's networkState attribute to the NETWORK_NO_SOURCE value. |
| - m_networkState = NETWORK_NO_SOURCE; |
| + setNetworkState(NETWORK_NO_SOURCE); |
| // 7 - Queue a task to fire a simple event named error at the media element. |
| scheduleEvent(EventTypeNames::error); |
| @@ -1305,7 +1305,7 @@ void HTMLMediaElement::mediaEngineError(MediaError* err) |
| scheduleEvent(EventTypeNames::error); |
| // 4 - Set the element's networkState attribute to the NETWORK_IDLE value. |
| - m_networkState = NETWORK_IDLE; |
| + setNetworkState(NETWORK_IDLE); |
| // 5 - Set the element's delaying-the-load-event flag to false. This stops delaying the load event. |
| setShouldDelayLoadEvent(false); |
| @@ -1379,7 +1379,7 @@ void HTMLMediaElement::setNetworkState(WebMediaPlayer::NetworkState state) |
| if (state == WebMediaPlayer::NetworkStateEmpty) { |
| // Just update the cached state and leave, we can't do anything. |
| - m_networkState = NETWORK_EMPTY; |
| + setNetworkState(NETWORK_EMPTY); |
| return; |
| } |
| @@ -1395,14 +1395,14 @@ void HTMLMediaElement::setNetworkState(WebMediaPlayer::NetworkState state) |
| changeNetworkStateFromLoadingToIdle(); |
| setShouldDelayLoadEvent(false); |
| } else { |
| - m_networkState = NETWORK_IDLE; |
| + setNetworkState(NETWORK_IDLE); |
| } |
| } |
| if (state == WebMediaPlayer::NetworkStateLoading) { |
| if (m_networkState < NETWORK_LOADING || m_networkState == NETWORK_NO_SOURCE) |
| startProgressEventTimer(); |
| - m_networkState = NETWORK_LOADING; |
| + setNetworkState(NETWORK_LOADING); |
| m_completelyLoaded = false; |
| } |
| @@ -1422,7 +1422,7 @@ void HTMLMediaElement::changeNetworkStateFromLoadingToIdle() |
| if (webMediaPlayer() && webMediaPlayer()->didLoadingProgress()) |
| scheduleEvent(EventTypeNames::progress); |
| scheduleEvent(EventTypeNames::suspend); |
| - m_networkState = NETWORK_IDLE; |
| + setNetworkState(NETWORK_IDLE); |
| } |
| void HTMLMediaElement::readyStateChanged() |
| @@ -2659,7 +2659,7 @@ void HTMLMediaElement::sourceWasAdded(HTMLSourceElement* source) |
| setShouldDelayLoadEvent(true); |
| // 24. Set the networkState back to NETWORK_LOADING. |
| - m_networkState = NETWORK_LOADING; |
| + setNetworkState(NETWORK_LOADING); |
| // 25. Jump back to the find next candidate step above. |
| m_nextChildNodeToConsider = source; |
| @@ -3003,10 +3003,10 @@ void HTMLMediaElement::userCancelledLoad() |
| // simple event named emptied at the element. Otherwise, set the element's networkState |
| // attribute to the NETWORK_IDLE value. |
| if (readyState == HAVE_NOTHING) { |
| - m_networkState = NETWORK_EMPTY; |
| + setNetworkState(NETWORK_EMPTY); |
| scheduleEvent(EventTypeNames::emptied); |
| } else { |
| - m_networkState = NETWORK_IDLE; |
| + setNetworkState(NETWORK_IDLE); |
| } |
| // 5 - Set the element's delaying-the-load-event flag to false. This stops delaying the load event. |
| @@ -3583,6 +3583,13 @@ void HTMLMediaElement::setInitialPlayWithoutUserGestures(bool value) |
| m_initialPlayWithoutUserGesture = value; |
| } |
| +void HTMLMediaElement::setNetworkState(NetworkState state) |
| +{ |
| + m_networkState = state; |
| + if (MediaControls* controls = mediaControls()) |
|
philipj_slow
2015/10/28 15:14:02
I haven't investigated, but I wouldn't be too surp
liberato (no reviews please)
2015/10/29 16:10:26
Done.
|
| + controls->networkStateChanged(); |
| +} |
| + |
| #if ENABLE(WEB_AUDIO) |
| void HTMLMediaElement::clearWeakMembers(Visitor* visitor) |
| { |