Bug 1450845 - Add crashtest for seekToNextFrame when a seek is already in progress. r?jya draft
authorBryce Van Dyk <bvandyk@mozilla.com>
Thu, 07 Jun 2018 09:44:48 -0400
changeset 805275 26e58eee1cb26075427b222ba1ccc61c0652a621
parent 805274 6fe8aac5584e7bd04ae934e6987070f5e0356c16
push id112612
push userbvandyk@mozilla.com
push dateThu, 07 Jun 2018 16:04:45 +0000
reviewersjya
bugs1450845
milestone62.0a1
Bug 1450845 - Add crashtest for seekToNextFrame when a seek is already in progress. r?jya MozReview-Commit-ID: 892uIqNuLSg
dom/media/test/crashtests/1450845.html
dom/media/test/crashtests/crashtests.list
new file mode 100644
--- /dev/null
+++ b/dom/media/test/crashtests/1450845.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<head>
+  <title>Bug 1450845: Avoid seek to next frame when already seeking</title>
+  <script>
+    async function boom() {
+      let video = document.getElementById('video');
+
+      // Internally play causes a seek, make sure we don't crash during this
+      video.play();
+      try {
+        await document.getElementById('video').seekToNextFrame();
+      } catch (e) {
+        // We don't mind if the promise was rejected so long as we don't crash
+      }
+      // Didn't crash
+
+      // Stop playback and cause a seek to 0
+      video.pause();
+      video.currentTime = 0;
+      try {
+        await document.getElementById('video').seekToNextFrame();
+      } finally {
+        // Didn't crash
+        document.documentElement.removeAttribute("class");
+      }
+    }
+    window.addEventListener('load', boom)
+  </script>
+</head>
+<body>
+  <video id='video' src='data:video/webm;base64,GkXfowEAAAAAAAAfQoaBAUL3gQFC8oEEQvOBQoWBAhhTgGcBAAAAAAAB6BFNm3RALE27i1OrhBVJqWZTrIHfTbuMU6uEFlSua1OsggEwTbuMU6uEHFO7a1OsggHL7AEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmAQAAAAAAAEUqTYCNTGF2ZjU3LjI5LjEwMVdBjUxhdmY1Ny4yOS4xMDFzpJBAb17Yv2oNAF1ZEESuco33RImIQFCAAAAAAAAWVK5rAQAAAAAAADyuAQAAAAAAADPXgQFzxYEBnIEAIrWcg3VuZIaFVl9WUDmDgQEj44OEAfygVeABAAAAAAAAB7CCAUC6gfAfQ7Z1AQAAAAAAAEfngQCjqYEAAICCSYNCABPwDvYAOCQcGFQAAFBh9jAAABML7AAATEnjdRwIJ+gAo5eBACEAhgBAkpwATEAABCasAABekcXgAB'>
+</body>
+</html>
--- a/dom/media/test/crashtests/crashtests.list
+++ b/dom/media/test/crashtests/crashtests.list
@@ -92,16 +92,17 @@ load 1304948.html
 load 1319486.html
 load 1368490.html
 load 1291702.html
 load 1378826.html
 load 1384248.html
 load 1389304.html
 load 1393272.webm
 load 1411322.html
+load 1450845.html
 load disconnect-wrong-destination.html
 load analyser-channels-1.html
 load audiocontext-double-suspend.html
 load buffer-source-duration-1.html
 load buffer-source-ended-1.html
 load buffer-source-resampling-start-1.html
 load buffer-source-slow-resampling-1.html
 load doppler-1.html