Bug 1290980 - Fix intermittent e10s issue with oninstall. r=mconley, a=test-only
authorMarcos Caceres <marcos@marcosc.com>
Sun, 18 Sep 2016 21:28:00 -0400
changeset 350365 35d7d3c4d627a3d88cff51e42eb4b1cbea0133ef
parent 350364 0d9d7e558f8fd68c16e3eef98a0c0faae4e0a5bd
child 350366 a00bd4772feb80835569ff24a8f1434175953935
push id1230
push userjlund@mozilla.com
push dateMon, 31 Oct 2016 18:13:35 +0000
treeherdermozilla-release@5e06e3766db2 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmconley, test-only
bugs1290980
milestone50.0
Bug 1290980 - Fix intermittent e10s issue with oninstall. r=mconley, a=test-only
dom/manifest/test/browser_fire_install_event.js
--- a/dom/manifest/test/browser_fire_install_event.js
+++ b/dom/manifest/test/browser_fire_install_event.js
@@ -16,26 +16,28 @@ function enableOnInstallPref() {
   };
   return SpecialPowers.pushPrefEnv(ops);
 }
 
 // Send a message for the even to be fired.
 // This cause file_reg_install_event.html to be dynamically change.
 function* theTest(aBrowser) {
   aBrowser.allowEvents = true;
-  // Resolves when we get a custom event with the correct name
-  const responsePromise = new Promise((resolve) => {
-    aBrowser.contentDocument.addEventListener("dom.manifest.oninstall", resolve);
+  let waitForInstall = ContentTask.spawn(aBrowser, null, function*() {
+    yield ContentTaskUtils.waitForEvent(content.window, "install");
   });
-  const mm = aBrowser.messageManager;
-  const msgKey = "DOM:Manifest:FireInstallEvent";
-  const { data: { success } } = yield PromiseMessage.send(mm, msgKey);
+  const { data: { success } } = yield PromiseMessage
+    .send(aBrowser.messageManager, "DOM:Manifest:FireInstallEvent");
   ok(success, "message sent and received successfully.");
-  const { detail: { result } } = yield responsePromise;
-  ok(result, "the page sent us an acknowledgment as a custom event");
+  try {
+    yield waitForInstall;
+    ok(true, "Install event fired");
+  } catch (err) {
+    ok(false, "Install event didn't fire: " + err.message);
+  }
 }
 
 // Open a tab and run the test
 add_task(function*() {
   yield enableOnInstallPref();
   let tabOptions = {
     gBrowser: gBrowser,
     url: testURL.href,