Chromium Code Reviews| Index: Source/core/html/HTMLMediaElement.cpp |
| diff --git a/Source/core/html/HTMLMediaElement.cpp b/Source/core/html/HTMLMediaElement.cpp |
| index 91ef6708e6f5e78594ef9b36ad751aec9955cc39..87de96b99a1ebb32f8dc7dd150974bac34caaca9 100644 |
| --- a/Source/core/html/HTMLMediaElement.cpp |
| +++ b/Source/core/html/HTMLMediaElement.cpp |
| @@ -354,6 +354,8 @@ HTMLMediaElement::HTMLMediaElement(const QualifiedName& tagName, Document& docum |
| , m_tracksAreReady(true) |
| , m_haveVisibleTextTrack(false) |
| , m_processingPreferenceChange(false) |
| + , m_remoteRoutesAvailable(false) |
| + , m_playingRemotely(false) |
| #if ENABLE(OILPAN) |
| , m_isFinalizing(false) |
| , m_closeMediaSourceWhenFinalizing(false) |
| @@ -2280,6 +2282,22 @@ void HTMLMediaElement::pause() |
| updatePlayState(); |
| } |
| +void HTMLMediaElement::requestRemotePlayback() |
| +{ |
| + if (!m_player) |
|
acolwell GONE FROM CHROMIUM
2014/09/06 00:32:02
Please add code to clearMediaPlayer() and createMe
aberent
2014/09/09 18:35:30
Done.
|
| + return; |
| + ASSERT(m_remoteRoutesAvailable); |
| + webMediaPlayer()->requestRemotePlayback(); |
| +} |
| + |
| +void HTMLMediaElement::requestRemotePlaybackControl() |
| +{ |
| + if (!m_player) |
| + return; |
| + ASSERT(m_remoteRoutesAvailable); |
| + webMediaPlayer()->requestRemotePlaybackControl(); |
| +} |
| + |
| void HTMLMediaElement::closeMediaSource() |
| { |
| if (!m_mediaSource) |
| @@ -3194,6 +3212,27 @@ void HTMLMediaElement::mediaPlayerRequestSeek(double time) |
| setCurrentTime(time, IGNORE_EXCEPTION); |
| } |
| +void HTMLMediaElement::remoteRouteAvailabilityChanged(bool routesAvailable) |
| +{ |
| + m_remoteRoutesAvailable = routesAvailable; |
| + if (hasMediaControls()) |
| + mediaControls()->refreshCastButtonVisibility(); |
| +} |
| + |
| +void HTMLMediaElement::connectedToRemoteDevice() |
| +{ |
| + m_playingRemotely = true; |
| + if (hasMediaControls()) |
| + mediaControls()->startedCasting(); |
| +} |
| + |
| +void HTMLMediaElement::disconnectedFromRemoteDevice() |
| +{ |
| + m_playingRemotely = false; |
|
acolwell GONE FROM CHROMIUM
2014/09/06 00:32:01
You'll probably need to reset this on m_player ass
aberent
2014/09/09 18:35:30
Done.
|
| + if (hasMediaControls()) |
| + mediaControls()->stoppedCasting(); |
| +} |
| + |
| // MediaPlayerPresentation methods |
| void HTMLMediaElement::mediaPlayerRepaint() |
| { |
| @@ -3647,7 +3686,7 @@ bool HTMLMediaElement::createMediaControls() |
| void HTMLMediaElement::configureMediaControls() |
| { |
| - if (!shouldShowControls() || !inDocument()) { |
| + if (!inDocument()) { |
| if (hasMediaControls()) |
| mediaControls()->hide(); |
| return; |
| @@ -3657,7 +3696,10 @@ void HTMLMediaElement::configureMediaControls() |
| return; |
| mediaControls()->reset(); |
| - mediaControls()->show(); |
| + if (shouldShowControls()) |
| + mediaControls()->show(); |
| + else |
| + mediaControls()->hide(); |
| } |
| void HTMLMediaElement::configureTextTrackDisplay(VisibilityChangeAssumption assumption) |