Bug 1090315 - Remove uses of CPOWs in browser/base/content/test/general/head.js. r=felipe

This commit is contained in:
Blake Kaplan 2016-04-12 12:03:09 -07:00
parent 86ad6a62bb
commit 724c0bbe9d

View File

@ -608,34 +608,31 @@ var FullZoomHelper = {
* @resolves to the received event
* @rejects if a valid load event is not received within a meaningful interval
*/
function promiseTabLoadEvent(tab, url, eventType="load")
function promiseTabLoadEvent(tab, url)
{
let deferred = Promise.defer();
info("Wait tab event: " + eventType);
info("Wait tab event: " + load);
function handle(event) {
if (event.originalTarget != tab.linkedBrowser.contentDocument ||
event.target.location.href == "about:blank" ||
(url && event.target.location.href != url)) {
info("Skipping spurious '" + eventType + "'' event" +
" for " + event.target.location.href);
return;
}
clearTimeout(timeout);
tab.linkedBrowser.removeEventListener(eventType, handle, true);
info("Tab event received: " + eventType);
deferred.resolve(event);
}
// Create two promises: one resolved from the content process when the page
// loads and one that is rejected if we take too long to load the url.
let loaded = BrowserTestUtils.browserLoaded(tab.linkedBrowser, false, url);
let timeout = setTimeout(() => {
tab.linkedBrowser.removeEventListener(eventType, handle, true);
deferred.reject(new Error("Timed out while waiting for a '" + eventType + "'' event"));
deferred.reject(new Error("Timed out while waiting for a 'load' event"));
}, 30000);
tab.linkedBrowser.addEventListener(eventType, handle, true, true);
loaded.then(() => {
clearTimeout(timeout);
deferred.resolve()
});
if (url)
tab.linkedBrowser.loadURI(url);
return deferred.promise;
BrowserTestUtils.loadURI(tab.linkedBrowser, url);
// Promise.all rejects if either promise rejects (i.e. if we time out) and
// if our loaded promise resolves before the timeout, then we resolve the
// timeout promise as well, causing the all promise to resolve.
return Promise.all([deferred.promise, loaded]);
}
/**