author | kaixinjxq <xiuqix.jiang@intel.com> |
Fri, 30 Nov 2018 18:01:58 +0000 | |
changeset 450012 | 45693efd1a3cf99f7d7618220a2ab3048371ea9f |
parent 450011 | c584fcea7ced007edd2471810b4755a2ab05cb6d |
child 450013 | c5a2229b7580be67f1c00ad9651867b993b12743 |
push id | 35189 |
push user | ccoroiu@mozilla.com |
push date | Tue, 11 Dec 2018 21:33:05 +0000 |
treeherder | mozilla-central@ac7f3beb6333 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | testonly |
bugs | 1487018, 12732 |
milestone | 66.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
testing/web-platform/tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-hidden.optional.html | file | annotate | diff | comparison | revisions |
new file mode 100644 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-hidden.optional.html @@ -0,0 +1,35 @@ +<!doctype html> +<title>autoplay hidden</title> +<link rel="author" title="Intel" href="http://www.intel.com"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/media.html#ready-states"/> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/media.js"></script> +<div id="log"></div> +<script> + +promise_test(async t => { + let video = document.createElement("video"); + video.src = getVideoURI("/media/movie_5"); + video.autoplay = true; + // In Safari and Chrome, the video needs to be muted in order to be paused when + // hidden. They decided to do this in order to save resources when a video + // goes out of view and isn't expected to make any sound. + video.muted = true; + video.loop = true; + let watcher = new EventWatcher(t, video, ["playing", "pause"]); + document.body.appendChild(video); + + await watcher.wait_for("playing"); + assert_false(video.paused, "paused when video is display"); + video.hidden = true; + + await watcher.wait_for("pause"); + assert_true(video.paused, "paused when video is hidden"); + video.hidden = false; + + await watcher.wait_for("playing"); + assert_false(video.paused, "paused when video is display"); +}, "Allow delaying autoplay until video elements become visible"); + +</script>