Bug 1432037 - Wait for tab animation end when closing test tabs. r=bgrins draft
authorAlexandre Poirot <poirot.alex@gmail.com>
Tue, 06 Feb 2018 06:26:49 -0800
changeset 751509 2ba4a7a14edf3ea040ce0e64e372f491b41da85c
parent 751493 2c9fb331ba570d969833f9defe66116e90a02e49
push id97990
push userbmo:poirot.alex@gmail.com
push dateTue, 06 Feb 2018 14:27:45 +0000
reviewersbgrins
bugs1432037
milestone60.0a1
Bug 1432037 - Wait for tab animation end when closing test tabs. r=bgrins MozReview-Commit-ID: 2XxcOFOqJo
testing/talos/talos/tests/devtools/addon/content/damp.js
--- a/testing/talos/talos/tests/devtools/addon/content/damp.js
+++ b/testing/talos/talos/tests/devtools/addon/content/damp.js
@@ -274,18 +274,23 @@ Damp.prototype = {
       let tab = this._win.gBrowser.selectedTab = this._win.gBrowser.addTab(url);
       let browser = tab.linkedBrowser;
       browser.addEventListener("load", function onload() {
         resolve(tab);
       }, {capture: true, once: true});
     });
   },
 
-  closeCurrentTab() {
+  async closeCurrentTab() {
+    let onTransition = new Promise(done => {
+      this._win.gBrowser.tabContainer.addEventListener("transitionend", done,
+        { once: true });
+    });
     this._win.BrowserCloseTabOrWindow();
+    await onTransition;
     return this._win.gBrowser.selectedTab;
   },
 
   reloadPage(onReload) {
     return new Promise(resolve => {
       let browser = gBrowser.selectedBrowser;
       if (typeof (onReload) == "function") {
         onReload().then(resolve);
@@ -903,17 +908,17 @@ async _consoleOpenWithCachedMessagesTest
     let tab = await this.addTab(url);
     await new Promise(resolve => {
       setTimeout(resolve, this._config.rest);
     });
     return tab;
   },
 
   async testTeardown(url) {
-    this.closeCurrentTab();
+    await this.closeCurrentTab();
 
     // Force freeing memory now so that it doesn't happen during the next test
     await garbageCollect();
 
     this._nextCommand();
   },
 
   // Everything below here are common pieces needed for the test runner to function,