Bug 1386391 - Poll to check if a document has loaded rather than a definite timeout. r=smaug, a=test-only
authorHenry Chang <hchang@mozilla.com>
Mon, 14 Aug 2017 10:34:04 +0800
changeset 423584 36c4a1d0b3bea5f7b55c54c7c2741e1dcc3a0c02
parent 423583 1dd09478ec89230c01f0acbe33871ac5d48ca757
child 423585 df818e102acdcce0430cd0d782b2fb46921f2f95
push id1517
push userjlorenzo@mozilla.com
push dateThu, 14 Sep 2017 16:50:54 +0000
treeherdermozilla-release@3b41fd564418 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerssmaug, test-only
bugs1386391
milestone56.0
Bug 1386391 - Poll to check if a document has loaded rather than a definite timeout. r=smaug, a=test-only MozReview-Commit-ID: B293QZe3LIz
docshell/test/navigation/file_fragment_handling_during_load.html
--- a/docshell/test/navigation/file_fragment_handling_during_load.html
+++ b/docshell/test/navigation/file_fragment_handling_during_load.html
@@ -1,25 +1,27 @@
 <html>
   <head>
     <script>
-      var timerID = 0;
-      function testDone() {
-        clearTimeout(timerID);
-        var l = document.body.firstChild.contentWindow.location.href;
-        opener.ok(l.endsWith("file_fragment_handling_during_load_frame2.html"),
-                 "Should have loaded a new document");
+      function checkHaveLoadedNewDoc() {
+        let l = document.body.firstChild.contentWindow.location.href;
+        if (!l.endsWith("file_fragment_handling_during_load_frame2.html")) {
+          opener.ok(true, "Fine. We will check later.");
+          setTimeout(checkHaveLoadedNewDoc, 500);
+          return;
+        }
+        opener.ok(true, "Have loaded a new document.");
         opener.nextTest();
         window.close();
       }
       function test() {
         var ifr = document.getElementsByTagName("iframe")[0];
-        ifr.onload = testDone;
+        ifr.onload = checkHaveLoadedNewDoc;
         ifr.contentWindow.location.hash = "b";
         ifr.contentWindow.location.href = "file_fragment_handling_during_load_frame2.html";
         history.back();
-        timerID = setTimeout(testDone, 2000);
+        checkHaveLoadedNewDoc();
       }
     </script>
   </head>
   <body onload="setTimeout(test, 0)"><iframe src="file_fragment_handling_during_load_frame1.html#a"></iframe>
   </body>
 </html>