Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(389)

Unified Diff: third_party/WebKit/Source/core/html/HTMLMediaElement.cpp

Issue 1417683004: Media controls refer to less magic state. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: added sliders and whitespace. Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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/23 17:41:21 Yep, looks good. Later it may be possible to bake
+ controls->networkStateChanged();
+}
+
#if ENABLE(WEB_AUDIO)
void HTMLMediaElement::clearWeakMembers(Visitor* visitor)
{
« no previous file with comments | « third_party/WebKit/Source/core/html/HTMLMediaElement.h ('k') | third_party/WebKit/Source/core/html/shadow/MediaControls.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698