Commit a5ae6e16 authored by avayvod@chromium.org's avatar avayvod@chromium.org

[Cast] Disable autohide of media controls for remote playback

BUG=420651

Review URL: https://codereview.chromium.org/650893002

git-svn-id: svn://svn.chromium.org/blink/trunk@183701 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent d024a758
......@@ -49,6 +49,7 @@ crbug.com/24182 jquery/offset.html [ Slow ]
crbug.com/24182 jquery/traversing.html [ Slow ]
crbug.com/24182 media/track/track-cues-cuechange.html [ Slow ]
crbug.com/24182 media/track/track-cues-enter-exit.html [ Slow ]
crbug.com/24182 media/controls-cast-do-not-fade-out.html [ Slow ]
crbug.com/24182 perf/append-text-nodes-without-renderers.html [ Slow ]
crbug.com/24182 perf/set-attribute.html [ Slow ]
crbug.com/24182 svg/filters/big-sized-filter.svg [ Slow ]
......
EXPECTED (getComputedStyle(controls).opacity == '1') OK
EXPECTED (getComputedStyle(controls).opacity == '0') OK
This is a testharness.js-based test.
PASS This tests that controls do not fade out when the video is playing remotely.
Harness: the test ran to completion.
<!doctype html>
<html>
<head>
<title>This tests that controls do not fade out when the video is playing remotely.</title>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="media-file.js"></script>
<script src="media-controls.js"></script>
<script src="video-test.js"></script>
</head>
<body>
<video controls loop></video>
<script>
var controls;
var test;
function playing()
{
internals.mediaPlayerPlayingRemotelyChanged(video, true);
runAfterHideMediaControlsTimerFired(function()
{
controls = mediaControlsButton(video, "panel");
testExpected("getComputedStyle(controls).opacity", 1);
consoleWrite("");
internals.mediaPlayerPlayingRemotelyChanged(video, false);
runAfterHideMediaControlsTimerFired(function()
{
testExpected("getComputedStyle(controls).opacity", 0);
consoleWrite("");
test.done();
},
video);
}, video);
}
async_test(function(t)
{
test = t;
findMediaElement();
video.src = findMediaFile("video", "content/test");
video.addEventListener("playing", playing);
video.play();
});
</script>
</body>
</html>
\ No newline at end of file
......@@ -244,7 +244,7 @@ void MediaControls::makeTransparent()
bool MediaControls::shouldHideMediaControls(unsigned behaviorFlags) const
{
// Never hide for a media element without visual representation.
if (!mediaElement().hasVideo())
if (!mediaElement().hasVideo() || mediaElement().isPlayingRemotely())
return false;
// Don't hide if the mouse is over the controls.
const bool ignoreControlsHover = behaviorFlags & IgnoreControlsHover;
......
......@@ -1768,6 +1768,14 @@ void Internals::mediaPlayerRemoteRouteAvailabilityChanged(HTMLMediaElement* medi
mediaElement->remoteRouteAvailabilityChanged(available);
}
void Internals::mediaPlayerPlayingRemotelyChanged(HTMLMediaElement* mediaElement, bool remote)
{
if (remote)
mediaElement->connectedToRemoteDevice();
else
mediaElement->disconnectedFromRemoteDevice();
}
void Internals::registerURLSchemeAsBypassingContentSecurityPolicy(const String& scheme)
{
SchemeRegistry::registerURLSchemeAsBypassingContentSecurityPolicy(scheme);
......
......@@ -253,7 +253,8 @@ public:
void mediaPlayerRequestFullscreen(HTMLMediaElement*);
double effectiveMediaVolume(HTMLMediaElement*);
void mediaPlayerRemoteRouteAvailabilityChanged(HTMLMediaElement *, bool);
void mediaPlayerRemoteRouteAvailabilityChanged(HTMLMediaElement*, bool);
void mediaPlayerPlayingRemotelyChanged(HTMLMediaElement*, bool);
void registerURLSchemeAsBypassingContentSecurityPolicy(const String& scheme);
void removeURLSchemeRegisteredAsBypassingContentSecurityPolicy(const String& scheme);
......
......@@ -200,6 +200,7 @@
void mediaPlayerRequestFullscreen(HTMLMediaElement mediaElement);
double effectiveMediaVolume(HTMLMediaElement mediaElement);
void mediaPlayerRemoteRouteAvailabilityChanged(HTMLMediaElement mediaElement, boolean available);
void mediaPlayerPlayingRemotelyChanged(HTMLMediaElement mediaElement, boolean remote);
void registerURLSchemeAsBypassingContentSecurityPolicy(DOMString scheme);
void removeURLSchemeRegisteredAsBypassingContentSecurityPolicy(DOMString scheme);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment