From c19a78e7c85e06c343c7568992b0335548995e27 Mon Sep 17 00:00:00 2001 From: trav90 Date: Thu, 16 Mar 2017 04:03:41 -0500 Subject: [PATCH] Fix racey test_error_in_video_document.html This test assumes that the decoding machinery will have completed its work one event-loop-round-trip after the document loads (see the executeSoon call), which is a bogus assumption. --- .../test/test_error_in_video_document.html | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/dom/media/test/test_error_in_video_document.html b/dom/media/test/test_error_in_video_document.html index 39ec05d66f..5f30ed3a41 100644 --- a/dom/media/test/test_error_in_video_document.html +++ b/dom/media/test/test_error_in_video_document.html @@ -21,9 +21,13 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=604067 /** Test for Bug 604067 **/ +function documentVideo() { + return document.body.getElementsByTagName("iframe")[0] + .contentDocument.body.getElementsByTagName("video")[0]; +} + function check() { - var v = document.body.getElementsByTagName("iframe")[0] - .contentDocument.body.getElementsByTagName("video")[0]; + var v = documentVideo(); // Debug info for Bug 608634 ok(true, "iframe src=" + document.body.getElementsByTagName("iframe")[0].src); @@ -47,7 +51,15 @@ if (!t) { var f = document.createElement("iframe"); f.src = t.name; - f.addEventListener("load", function() { SimpleTest.executeSoon(check); }, false); + f.addEventListener("load", function() { + if (documentVideo().error) { + info("Error occured by the time we got |load| - checking directly."); + check(); + } else { + todo(false, "Error hasn't occurred yet - adding |error| event listener. This shouldn't happen, see bug 608634."); + documentVideo().addEventListener("error", check); + } + }, false); document.body.appendChild(f); }