Bug 1447012 - Use waitForNewTab instead of progress listener in addJsonViewTab draft
authorOriol Brufau <oriol-bugzilla@hotmail.com>
Mon, 19 Mar 2018 02:55:17 +0100
changeset 769414 d5f2eebf126530ce9c2f0c7576efca4b47ecd7f1
parent 769320 4f1014eb5039bdfdd7a39fb7785d102df1994a6f
push id103116
push userbmo:oriol-bugzilla@hotmail.com
push dateMon, 19 Mar 2018 15:09:11 +0000
bugs1447012
milestone61.0a1
Bug 1447012 - Use waitForNewTab instead of progress listener in addJsonViewTab MozReview-Commit-ID: KInGiOtMLex
devtools/client/jsonview/test/head.js
--- a/devtools/client/jsonview/test/head.js
+++ b/devtools/client/jsonview/test/head.js
@@ -45,30 +45,20 @@ registerCleanupFunction(() => {
  *      - "complete" (default): Since there aren't sub-resources like images,
  *        behaves as "interactive". Note the app might not be loaded yet.
  */
 async function addJsonViewTab(url, {
   appReadyState = "complete",
   docReadyState = "complete",
 } = {}) {
   info("Adding a new JSON tab with URL: '" + url + "'");
+  let tabAdded = BrowserTestUtils.waitForNewTab(gBrowser, url);
   let tabLoaded = addTab(url);
-  let tab = gBrowser.selectedTab;
+  let tab = await Promise.race([tabAdded, tabLoaded]);
   let browser = tab.linkedBrowser;
-  await Promise.race([tabLoaded, new Promise(resolve => {
-    browser.webProgress.addProgressListener({
-      QueryInterface: XPCOMUtils.generateQI(["nsIWebProgressListener",
-                                             "nsISupportsWeakReference"]),
-      onLocationChange(webProgress) {
-        // Fires when the tab is ready but before completely loaded.
-        webProgress.removeProgressListener(this);
-        resolve();
-      },
-    }, Ci.nsIWebProgress.NOTIFY_LOCATION);
-  })]);
 
   // Load devtools/shared/test/frame-script-utils.js
   loadFrameScriptUtils();
   let rootDir = getRootDirectory(gTestPath);
 
   // Catch RequireJS errors (usually timeouts)
   let error = tabLoaded.then(() => ContentTask.spawn(browser, null, function() {
     return new Promise((resolve, reject) => {