Index: Source/core/html/HTMLMediaElement.cpp |
diff --git a/Source/core/html/HTMLMediaElement.cpp b/Source/core/html/HTMLMediaElement.cpp |
index 86ec6ffd1cbf01b7fa3a9448b3b356fe1b01e574..858f37d98c0f35f81bfc83fabb2b999a823680b5 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_casting(false) |
#if ENABLE(OILPAN) |
, m_isFinalizing(false) |
, m_closeMediaSourceWhenFinalizing(false) |
@@ -2278,6 +2280,20 @@ void HTMLMediaElement::pause() |
updatePlayState(); |
} |
+void HTMLMediaElement::requestRemotePlayback() |
+{ |
+ if (!m_player) |
+ return; |
+ m_player->requestRemotePlayback(); |
acolwell GONE FROM CHROMIUM
2014/08/05 19:36:34
Use webMediaPlayer() here and below.
acolwell GONE FROM CHROMIUM
2014/08/05 19:36:34
ASSERT(m_remoteRoutesAvailable) here and below so
aberent
2014/08/22 14:08:33
Done.
aberent
2014/08/22 14:08:33
Done.
|
+} |
+ |
+void HTMLMediaElement::requestRemotePlaybackControl() |
+{ |
+ if (!m_player) |
+ return; |
+ m_player->requestRemotePlaybackControl(); |
+} |
+ |
void HTMLMediaElement::closeMediaSource() |
{ |
if (!m_mediaSource) |
@@ -3167,6 +3183,27 @@ void HTMLMediaElement::mediaPlayerRequestSeek(double time) |
setCurrentTime(time, IGNORE_EXCEPTION); |
} |
+void HTMLMediaElement::mediaPlayerRemoteRouteAvailabilityChanged(bool routesAvailable) |
+{ |
+ m_remoteRoutesAvailable = routesAvailable; |
+ if (hasMediaControls()) |
+ mediaControls()->refreshCastButtonVisibility(); |
+} |
+ |
+void HTMLMediaElement::mediaPlayerConnectedToRemoteDevice() |
+{ |
+ m_casting = true; |
+ if (hasMediaControls()) |
+ mediaControls()->startedCasting(); |
+} |
+ |
+void HTMLMediaElement::mediaPlayerDisconnectedFromRemoteDevice() |
+{ |
+ m_casting = false; |
+ if (hasMediaControls()) |
+ mediaControls()->stoppedCasting(); |
+} |
+ |
// MediaPlayerPresentation methods |
void HTMLMediaElement::mediaPlayerRepaint() |
{ |
@@ -3642,7 +3679,7 @@ bool HTMLMediaElement::createMediaControls() |
void HTMLMediaElement::configureMediaControls() |
{ |
- if (!shouldShowControls() || !inDocument()) { |
acolwell GONE FROM CHROMIUM
2014/08/05 19:36:34
Doesn't removing this end up causing the controls
aberent
2014/08/22 14:08:33
The problem I have is that I need the overlay cast
|
+ if (!inDocument()) { |
if (hasMediaControls()) |
mediaControls()->hide(); |
return; |
@@ -3652,7 +3689,10 @@ void HTMLMediaElement::configureMediaControls() |
return; |
mediaControls()->reset(); |
- mediaControls()->show(); |
+ if (shouldShowControls()) |
+ mediaControls()->show(); |
+ else |
+ mediaControls()->hide(); |
} |
void HTMLMediaElement::configureTextTrackDisplay(VisibilityChangeAssumption assumption) |
@@ -3712,9 +3752,9 @@ void HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured() |
void* HTMLMediaElement::preDispatchEventHandler(Event* event) |
{ |
- if (event && event->type() == EventTypeNames::webkitfullscreenchange) |
+ if (event && event->type() == EventTypeNames::webkitfullscreenchange) { |
acolwell GONE FROM CHROMIUM
2014/08/05 19:36:34
nit: Revert. Change isn't necessary.
aberent
2014/08/22 14:08:33
Done.
|
configureMediaControls(); |
- |
+ } |
return 0; |
} |