Backing out bug 632290 due to more permanent failures.
authorDave Townsend <dtownsend@oxymoronical.com>
Thu, 18 Dec 2014 12:40:29 -0800
changeset 246208 16f2c2fe21d5567872c318c3ea23a7ce507258c7
parent 246207 326f890f61a5b6165b716f86981df14652193b9d
child 246209 a081d845627d3dbb053b6b46aa18ecc287ef18ad
push id4489
push userraliiev@mozilla.com
push dateMon, 23 Feb 2015 15:17:55 +0000
treeherdermozilla-beta@fd7c3dc24146 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs632290
milestone37.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
Backing out bug 632290 due to more permanent failures.
toolkit/mozapps/extensions/test/browser/browser_about.js
--- a/toolkit/mozapps/extensions/test/browser/browser_about.js
+++ b/toolkit/mozapps/extensions/test/browser/browser_about.js
@@ -9,86 +9,76 @@
  * Addon object not passed to custom about dialogs.
  */
 
 var gManagerWindow;
 
 const URI_ABOUT_DEFAULT = "chrome://mozapps/content/extensions/about.xul";
 const URI_ABOUT_CUSTOM = CHROMEROOT + "addon_about.xul";
 
- add_task(function* test() {
+function test() {
+  requestLongerTimeout(2);
+
+  waitForExplicitFinish();
+
   var gProvider = new MockProvider();
   gProvider.createAddons([{
     id: "test1@tests.mozilla.org",
     name: "Test add-on 1",
     description: "foo"
   },
   {
     id: "test2@tests.mozilla.org",
     name: "Test add-on 2",
     description: "bar",
     aboutURL: URI_ABOUT_CUSTOM
   }]);
 
-  gManagerWindow = yield open_manager("addons://list/extension");
-
-  yield test_about_window("Test add-on 1", URI_ABOUT_DEFAULT);
-  yield test_about_window("Test add-on 2", URI_ABOUT_CUSTOM);
-  yield close_manager(gManagerWindow);
-});
-
-function test_about_window(aAddonItemName, aExpectedAboutUri) {
-  return new Promise((resolve, reject) => {
-    let addonList = gManagerWindow.document.getElementById("addon-list");
-    let selectedItem = null;
-
-    for (let addonItem of addonList.childNodes) {
-      if (addonItem.hasAttribute("name") &&
-          addonItem.getAttribute("name") === aAddonItemName) {
-        selectedItem = addonItem;
-        break;
-      }
-    }
-    ok(selectedItem, "Found addon item for " + aAddonItemName);
-
-    info("Waiting for about dialog");
-    // This gets notified inside a modal dialog that spins the event loop, so we're
-    // stuck with callbacks rather than Task/Promise.
-    Services.ww.registerNotification(function TEST_ww_observer(aSubject, aTopic,
-                                                               aData) {
-      if (aTopic == "domwindowclosed") {
-        Services.ww.unregisterNotification(TEST_ww_observer);
+  open_manager("addons://list/extension", function(aManager) {
+    gManagerWindow = aManager;
 
-        info("About dialog closing, waiting for focus on browser window");
-      } else if (aTopic == "domwindowopened") {
-        // Always let the stack unwind...
-        executeSoon(() => {
-          info("About dialog opened, waiting for focus");
-
-          let win = aSubject.QueryInterface(Ci.nsIDOMEventTarget);
-          waitForFocus(function() {
-            info("Saw about dialog");
-
-            is(win.location,
-               aExpectedAboutUri,
-               "The correct add-on about window should have opened");
-
-            is(win.arguments && win.arguments[0] && win.arguments[0].name,
-               aAddonItemName,
-               "window.arguments[0] should refer to the add-on object");
-
-            win.close();
-          }, win);
-        });
-      } else {
-        info("Got window notification " + aTopic);
-      }
+    test_about_window("Test add-on 1", URI_ABOUT_DEFAULT, function() {
+      test_about_window("Test add-on 2", URI_ABOUT_CUSTOM, function() {
+        close_manager(gManagerWindow, finish);
+      });
     });
-
-    // This opens a modal dialog, so the main execution thread doesn't get control
-    // (and the event loop spins under us) until the WindowWatcher domwindowopened
-    // callback closes it.
-    gManagerWindow.gViewController.doCommand("cmd_showItemAbout",
-                                             selectedItem.mAddon);
-    // wait for focus back on manager window
-    waitForFocus(resolve);
   });
 }
+
+function test_about_window(aAddonItemName, aExpectedAboutUri, aCallback) {
+  var addonList = gManagerWindow.document.getElementById("addon-list");
+  for (var addonItem of addonList.childNodes) {
+    if (addonItem.hasAttribute("name") &&
+        addonItem.getAttribute("name") === aAddonItemName)
+      break;
+  }
+
+  info("Waiting for about dialog");
+  Services.ww.registerNotification(function TEST_ww_observer(aSubject, aTopic,
+                                                             aData) {
+    if (aTopic == "domwindowclosed") {
+      Services.ww.unregisterNotification(TEST_ww_observer);
+
+      info("About dialog closed, waiting for focus on browser window");
+      waitForFocus(() => executeSoon(aCallback));
+    } else if (aTopic == "domwindowopened") {
+      info("About dialog opened, waiting for focus");
+
+      let win = aSubject.QueryInterface(Ci.nsIDOMEventTarget);
+      waitForFocus(function() {
+        info("Saw about dialog");
+
+        is(win.location,
+           aExpectedAboutUri,
+           "The correct add-on about window should have opened");
+
+        is(win.arguments && win.arguments[0] && win.arguments[0].name,
+           aAddonItemName,
+           "window.arguments[0] should refer to the add-on object");
+
+        executeSoon(() => win.close());
+      }, win);
+    }
+  });
+
+  gManagerWindow.gViewController.doCommand("cmd_showItemAbout",
+                                           addonItem.mAddon);
+}