Bug 1355426 - Fix browser_bug495058.js to not wait for MozAfterPaint in non-remote browser case. r?jaws draft
authorMike Conley <mconley@mozilla.com>
Wed, 02 Aug 2017 14:05:53 -0400
changeset 619845 69b5f327ac66df787152b387425b526036884ca9
parent 619844 64e1dbeeea61ce8fcc194113deb4566f0b91f6a3
child 640521 7df41e2ada606ea43b9d4137032f1e4ca67a76d5
push id71845
push usermconley@mozilla.com
push dateWed, 02 Aug 2017 18:13:02 +0000
reviewersjaws
bugs1355426, 495058
milestone56.0a1
Bug 1355426 - Fix browser_bug495058.js to not wait for MozAfterPaint in non-remote browser case. r?jaws I'm not sure why the non-remote browser case needed to wait for MozAfterPaint. In the remote browser case, we do wait for MozAfterPaint in the content area before focusing the URL bar, but in the non-e10s case, we just focus it right away. MozReview-Commit-ID: gNsk8Oh6JO
browser/base/content/test/general/browser_bug495058.js
--- a/browser/base/content/test/general/browser_bug495058.js
+++ b/browser/base/content/test/general/browser_bug495058.js
@@ -10,29 +10,30 @@ const URIS = [
 ];
 
 add_task(async function() {
   for (let uri of URIS) {
     let tab = BrowserTestUtils.addTab(gBrowser);
     await BrowserTestUtils.loadURI(tab.linkedBrowser, uri);
 
     let win = gBrowser.replaceTabWithWindow(tab);
+
+    let contentPainted = Promise.resolve();
+    // In the e10s case, we wait for the content to first paint before we focus
+    // the URL in the new window, to optimize for content paint time.
+    if (tab.linkedBrowser.isRemoteBrowser) {
+      contentPainted =
+        BrowserTestUtils.waitForContentEvent(tab.linkedBrowser, "MozAfterPaint");
+    }
+
     await TestUtils.topicObserved("browser-delayed-startup-finished",
                                   subject => subject == win);
+    await contentPainted;
     tab = win.gBrowser.selectedTab;
 
-    // BrowserTestUtils doesn't get the add-on shims, which means that
-    // MozAfterPaint won't get shimmed over if we add an event handler
-    // for it in the parent.
-    if (tab.linkedBrowser.isRemoteBrowser) {
-      await BrowserTestUtils.waitForContentEvent(tab.linkedBrowser, "MozAfterPaint");
-    } else {
-      await BrowserTestUtils.waitForEvent(tab.linkedBrowser, "MozAfterPaint");
-    }
-
     Assert.equal(win.gBrowser.currentURI.spec, uri, uri + ": uri loaded in detached tab");
     Assert.equal(win.document.activeElement, win.gBrowser.selectedBrowser, uri + ": browser is focused");
     Assert.equal(win.gURLBar.value, "", uri + ": urlbar is empty");
     Assert.ok(win.gURLBar.placeholder, uri + ": placeholder text is present");
 
     await BrowserTestUtils.closeWindow(win);
   }
 });