Bug 1336763 - Don't wait for response from content process in browser_closeTab.js UITour test to avoid a timeout. r=MattN

The closeTab API call from UITour tells the parent process to close the current tab,
and doing so might end up disconnecting the message manager. This means that the
Promise that the ContentTask returns may never resolve. Instead of waiting for it
to resolve, we just wait for the TabClose event in the parent process.

MozReview-Commit-ID: Ci7ck9j4llK

--HG--
extra : rebase_source : a7d3625cc001072c097af5c3f78dd19585f68e4e
This commit is contained in:
Mike Conley 2017-04-27 15:04:46 -04:00
Родитель 58788522cd
Коммит 009b75654d
1 изменённых файлов: 6 добавлений и 1 удалений

Просмотреть файл

@ -12,7 +12,12 @@ add_UITour_task(function* test_closeTab() {
// Setting gTestTab to null indicates that the tab has already been closed,
// and if this does not happen the test run will fail.
let closePromise = BrowserTestUtils.waitForEvent(gBrowser.tabContainer, "TabClose");
yield gContentAPI.closeTab();
// In the e10s-case, having content request a tab close might mean
// that the ContentTask used to send this closeTab message won't
// get a response (since the message manager may have closed down).
// So we ignore the Promise that closeTab returns, and use the TabClose
// event to tell us when the tab has gone away.
gContentAPI.closeTab();
yield closePromise;
gTestTab = null;
});