Bug 1208197: Use addEventListener() in test_bug533845.xul to prevent raciness. r=smaug
authorJet Villegas <jvillegas@mozilla.com>
Fri, 02 Jun 2017 14:11:32 +0900
changeset 361993 c738c30dc6a248508e00d4d53bd909ef03f65be6
parent 361992 3d01e72f3e9c0167bab97654c391efd3a0b41541
child 361994 ca2579919062397cc5bd3f39e801f8d6f766816f
push id31953
push usercbook@mozilla.com
push dateFri, 02 Jun 2017 12:22:33 +0000
treeherdermozilla-central@2a8478029a0c [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerssmaug
bugs1208197, 533845
milestone55.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 1208197: Use addEventListener() in test_bug533845.xul to prevent raciness. r=smaug
layout/base/tests/chrome/test_bug533845.xul
--- a/layout/base/tests/chrome/test_bug533845.xul
+++ b/layout/base/tests/chrome/test_bug533845.xul
@@ -5,40 +5,49 @@
 <!--
 https://bugzilla.mozilla.org/show_bug.cgi?id=533845
 -->
 <window title="Mozilla Bug 533845"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
         onload="doTest()">
   <script type="application/javascript"
           src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
-<panel id="panel" width="50" height="50" onpopupshown="continueTest()">
+<panel id="panel" width="50" height="50">
   <iframe type="content" id="contentFrame" src="data:text/html,&lt;html&gt;&lt;body onclick='document.body.textContent=1'&gt;This is a panel!&lt;/body&gt;&lt;/html&gt;" width="500" height="500"/>
 </panel>
 <body xmlns="http://www.w3.org/1999/xhtml">
 <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=533845"
    target="_blank">Mozilla Bug 533845</a>
 </body>
   <!-- test code goes here -->
 <script type="application/javascript">
 <![CDATA[
 SimpleTest.waitForExplicitFinish();
 
 function doTest() {
-  document.getElementById('panel').showPopup();
+  let panel = document.getElementById("panel");
+  panel.addEventListener("popupshown", function onpopupshown() {
+    panel.removeEventListener("popupshown", onpopupshown);
+    continueTest();
+    panel.addEventListener("popuphidden", function onpopuphidden() {
+      panel.removeEventListener("popuphidden", onpopuphidden);
+      SimpleTest.finish();
+    });
+    panel.hidePopup();
+  });
+  panel.openPopup();
 }
 
 function continueTest() {
   var ifrwindow = document.getElementById("contentFrame").contentWindow;
   ifrwindow.focus();
   var utils = ifrwindow.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
                        .getInterface(Components.interfaces.nsIDOMWindowUtils);
   var rect = ifrwindow.document.body.getBoundingClientRect();
   var x = rect.left + (rect.width/2);
   var y = rect.top + (rect.height/2);
   utils.sendMouseEvent("mousedown", x, y, 0, 1, 0);
   utils.sendMouseEvent("mouseup", x, y, 0, 1, 0);
   is(ifrwindow.document.body.textContent, "1", "Should have got a click event!");
-  SimpleTest.finish();
 }
 
 ]]></script>
 </window>