Bug 1360796 fix intermittent assert, r?mattw draft
authorShane Caraveo <scaraveo@mozilla.com>
Mon, 15 May 2017 14:40:10 -0700
changeset 578085 031950007db0daf75520a05f15cbb9b174cc36ea
parent 577862 0f4df67c5f162e00d6f52825badf468aefbfba19
child 628688 dce3658f941804af75df74fa74a4be50749ced06
push id58891
push usermixedpuppy@gmail.com
push dateMon, 15 May 2017 21:41:31 +0000
reviewersmattw
bugs1360796
milestone55.0a1
Bug 1360796 fix intermittent assert, r?mattw MozReview-Commit-ID: IEQeZ6NwVsz
browser/components/extensions/test/browser/browser_ext_tabs_executeScript_bad.js
--- a/browser/components/extensions/test/browser/browser_ext_tabs_executeScript_bad.js
+++ b/browser/components/extensions/test/browser/browser_ext_tabs_executeScript_bad.js
@@ -147,16 +147,19 @@ add_task(async function testMatchDataURI
     files: {
       "page.html": `<!DOCTYPE html>
         <meta charset="utf-8">
         <script src="page.js"></script>
         <iframe id="inherited" src="data:text/html;charset=utf-8,inherited"></iframe>
       `,
       "page.js": function() {
         browser.test.onMessage.addListener((msg, url) => {
+          if (msg !== "navigate") {
+            return;
+          }
           window.location.href = url;
         });
       },
     },
     background() {
       browser.tabs.create({active: true, url: browser.runtime.getURL("page.html")});
     },
   });
@@ -169,17 +172,20 @@ add_task(async function testMatchDataURI
       browser.webNavigation.onCompleted.addListener(({url, frameId}) => {
         browser.test.log(`Document loading complete: ${url}`);
         if (frameId === 0) {
           browser.test.sendMessage("tab-ready", url);
         }
       });
 
       browser.test.onMessage.addListener(async msg => {
-        browser.test.assertRejects(
+        if (msg !== "execute") {
+          return;
+        }
+        await browser.test.assertRejects(
           browser.tabs.executeScript({
             code: "location.href;",
             allFrames: true,
           }),
           /Missing host permission/,
           "Should not execute in `data:` frame");
 
         browser.test.sendMessage("done");