Bug 1398491 - Use SpecialPowers.pushPermissions instead of Services.perms.add in browser_notification_open_settings.js. r=MattN, a=test-only
authorEdouard Oger <eoger@fastmail.com>
Mon, 09 Oct 2017 17:07:22 -0400
changeset 432362 5ce1a536ea4d0e14bdd194d4dc3d2c8cf33aec3b
parent 432361 38e9b861e872448bca29ee7d3520c5d6ba9d4ffc
child 432363 a0b348c406e497cebc42be847445711b6a4322c6
push id7946
push userryanvm@gmail.com
push dateWed, 11 Oct 2017 17:47:53 +0000
treeherdermozilla-beta@465b880a2af9 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersMattN, test-only
bugs1398491
milestone57.0
Bug 1398491 - Use SpecialPowers.pushPermissions instead of Services.perms.add in browser_notification_open_settings.js. r=MattN, a=test-only MozReview-Commit-ID: NzlSA8Kt2t
browser/base/content/test/alerts/browser_notification_open_settings.js
--- a/browser/base/content/test/alerts/browser_notification_open_settings.js
+++ b/browser/base/content/test/alerts/browser_notification_open_settings.js
@@ -19,48 +19,48 @@ add_task(async function test_settingsOpe
     let tab = await tabPromise;
     ok(tab, "The notification settings tab opened");
     await syncPaneLoadedPromise;
     await BrowserTestUtils.removeTab(tab);
   });
 });
 
 add_task(async function test_settingsOpen_button() {
-  let pm = Services.perms;
   info("Adding notification permission");
-  pm.add(makeURI(notificationURL), "desktop-notification", pm.ALLOW_ACTION);
+  await new Promise(resolve => {
+    SpecialPowers.pushPermissions([{
+      type: "desktop-notification",
+      allow: true,
+      context: notificationURL,
+    }], resolve);
+  });
 
-  try {
-    await BrowserTestUtils.withNewTab({
-      gBrowser,
-      url: notificationURL
-    }, async function tabTask(aBrowser) {
-      // Ensure preferences is loaded before removing the tab.
-      let syncPaneLoadedPromise = TestUtils.topicObserved("sync-pane-loaded", () => true);
+  await BrowserTestUtils.withNewTab({
+    gBrowser,
+    url: notificationURL
+  }, async function tabTask(aBrowser) {
+    // Ensure preferences is loaded before removing the tab.
+    let syncPaneLoadedPromise = TestUtils.topicObserved("sync-pane-loaded", () => true);
 
-      info("Waiting for notification");
-      await openNotification(aBrowser, "showNotification2");
+    info("Waiting for notification");
+    await openNotification(aBrowser, "showNotification2");
 
-      let alertWindow = Services.wm.getMostRecentWindow("alert:alert");
-      if (!alertWindow) {
-        ok(true, "Notifications don't use XUL windows on all platforms.");
-        await closeNotification(aBrowser);
-        return;
-      }
-
-      let closePromise = promiseWindowClosed(alertWindow);
-      let tabPromise = BrowserTestUtils.waitForNewTab(gBrowser, expectedURL);
-      let openSettingsMenuItem = alertWindow.document.getElementById("openSettingsMenuItem");
-      openSettingsMenuItem.click();
+    let alertWindow = Services.wm.getMostRecentWindow("alert:alert");
+    if (!alertWindow) {
+      ok(true, "Notifications don't use XUL windows on all platforms.");
+      await closeNotification(aBrowser);
+      return;
+    }
 
-      info("Waiting for notification settings tab");
-      let tab = await tabPromise;
-      ok(tab, "The notification settings tab opened");
+    let closePromise = promiseWindowClosed(alertWindow);
+    let tabPromise = BrowserTestUtils.waitForNewTab(gBrowser, expectedURL);
+    let openSettingsMenuItem = alertWindow.document.getElementById("openSettingsMenuItem");
+    openSettingsMenuItem.click();
 
-      await syncPaneLoadedPromise;
-      await closePromise;
-      await BrowserTestUtils.removeTab(tab);
-    });
-  } finally {
-    info("Removing notification permission");
-    pm.remove(makeURI(notificationURL), "desktop-notification");
-  }
+    info("Waiting for notification settings tab");
+    let tab = await tabPromise;
+    ok(tab, "The notification settings tab opened");
+
+    await syncPaneLoadedPromise;
+    await closePromise;
+    await BrowserTestUtils.removeTab(tab);
+  });
 });