Bug 1487018 [wpt PR 12732] - Add test for "Allow delaying autoplay until video elements become visible, a=testonly
☠☠ backed out by fb94ec981a7d ☠ ☠
authorkaixinjxq <xiuqix.jiang@intel.com>
Fri, 30 Nov 2018 18:01:58 +0000
changeset 449792 3284125abf45c01db257394a38783575f047ff47
parent 449791 724c1eeb79109ca83e1349c03197bb440922a2fa
child 449793 950188672908f391071ba3e1af1986088c82fe85
push id110426
push userwptsync@mozilla.com
push dateTue, 11 Dec 2018 03:07:11 +0000
treeherdermozilla-inbound@fcd0236d7afa [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstestonly
bugs1487018, 12732
milestone66.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
Bug 1487018 [wpt PR 12732] - Add test for "Allow delaying autoplay until video elements become visible, a=testonly Automatic update from web-platform-tests Add test for "Allow delaying autoplay until video elements become visible (#12732) -- wpt-commits: 0570493aa6334949ba3c67b86247ece5bbafbe56 wpt-pr: 12732
testing/web-platform/tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-hidden.optional.html
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>