Bug 1487018 [wpt PR 12732] - Add test for "Allow delaying autoplay until video elements become visible, a=testonly
authorkaixinjxq <xiuqix.jiang@intel.com>
Fri, 30 Nov 2018 18:01:58 +0000
changeset 450012 45693efd1a3cf99f7d7618220a2ab3048371ea9f
parent 450011 c584fcea7ced007edd2471810b4755a2ab05cb6d
child 450013 c5a2229b7580be67f1c00ad9651867b993b12743
push id35189
push userccoroiu@mozilla.com
push dateTue, 11 Dec 2018 21:33:05 +0000
treeherdermozilla-central@ac7f3beb6333 [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>