Index: Source/WebCore/html/HTMLMediaElement.cpp |
diff --git a/Source/WebCore/html/HTMLMediaElement.cpp b/Source/WebCore/html/HTMLMediaElement.cpp |
index b606cf74360f7efab48ffb1009a115c36726907e..4a6d3d8dd6c6254bd5c007b138f0b9909ff4a6a7 100644 |
--- a/Source/WebCore/html/HTMLMediaElement.cpp |
+++ b/Source/WebCore/html/HTMLMediaElement.cpp |
@@ -1166,6 +1166,9 @@ void HTMLMediaElement::setNetworkState(MediaPlayer::NetworkState state) |
if (state == MediaPlayer::Idle) { |
if (m_networkState > NETWORK_IDLE) { |
m_progressEventTimer.stop(); |
+ if (hasMediaControls() && m_player->bytesLoaded() != m_previousProgress) |
+ mediaControls()->bufferingProgressed(); |
+ |
scheduleEvent(eventNames().suspendEvent); |
setShouldDelayLoadEvent(false); |
} |
@@ -1181,6 +1184,8 @@ void HTMLMediaElement::setNetworkState(MediaPlayer::NetworkState state) |
if (state == MediaPlayer::Loaded) { |
if (m_networkState != NETWORK_IDLE) { |
m_progressEventTimer.stop(); |
+ if (hasMediaControls() && m_player->bytesLoaded() != m_previousProgress) |
+ mediaControls()->bufferingProgressed(); |
// Schedule one last progress event so we guarantee that at least one is fired |
// for files that load very quickly. |
@@ -1332,6 +1337,8 @@ void HTMLMediaElement::progressEventTimerFired(Timer<HTMLMediaElement>*) |
m_sentStalledEvent = false; |
if (renderer()) |
renderer()->updateFromElement(); |
+ if (hasMediaControls()) |
+ mediaControls()->bufferingProgressed(); |
} |
} |