зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1195295 - Fix browser_tab_detach_restore.js and browser_popupNotifications_4.js r=felipe
These tests seemed to rely on the synchronous infrastructure that the now defunct SyncHandler for SessionStore provided. This moves them to safer, more modern alternatives. --HG-- extra : commitid : QYhBXsLvPO extra : rebase_source : bea13b3d34d7375e8d1f44491844742f68d81c11 extra : __touch-noise__ : 4185659896 extra : histedit_source : bc0f22800f4976f8bd622c606ef47e245bd1a7be
This commit is contained in:
Родитель
f2127e9ebb
Коммит
3d567c8694
|
@ -19,7 +19,7 @@ add_task(function*() {
|
||||||
yield new Promise(resolve => whenDelayedStartupFinished(win, resolve));
|
yield new Promise(resolve => whenDelayedStartupFinished(win, resolve));
|
||||||
|
|
||||||
is(win.gBrowser.selectedBrowser.permanentKey, key, "Should have properly copied the permanentKey");
|
is(win.gBrowser.selectedBrowser.permanentKey, key, "Should have properly copied the permanentKey");
|
||||||
yield promiseWindowClosed(win);
|
yield BrowserTestUtils.closeWindow(win);
|
||||||
|
|
||||||
is(SessionStore.getClosedWindowCount(), 1, "Should have restore data for the closed window");
|
is(SessionStore.getClosedWindowCount(), 1, "Should have restore data for the closed window");
|
||||||
|
|
||||||
|
|
|
@ -46,41 +46,19 @@ function promiseTopicObserved(topic)
|
||||||
* The tab to load into.
|
* The tab to load into.
|
||||||
* @param [optional] url
|
* @param [optional] url
|
||||||
* The url to load, or the current url.
|
* The url to load, or the current url.
|
||||||
* @param [optional] event
|
|
||||||
* The load event type to wait for. Defaults to "load".
|
|
||||||
* @return {Promise} resolved when the event is handled.
|
* @return {Promise} resolved when the event is handled.
|
||||||
* @resolves to the received event
|
* @resolves to the received event
|
||||||
* @rejects if a valid load event is not received within a meaningful interval
|
* @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();
|
let browser = tab.linkedBrowser;
|
||||||
info("Wait tab event: " + eventType);
|
|
||||||
|
|
||||||
function handle(event) {
|
if (url) {
|
||||||
if (event.originalTarget != tab.linkedBrowser.contentDocument ||
|
browser.loadURI(url);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let timeout = setTimeout(() => {
|
return BrowserTestUtils.browserLoaded(browser, false, url);
|
||||||
if (tab.linkedBrowser)
|
|
||||||
tab.linkedBrowser.removeEventListener(eventType, handle, true);
|
|
||||||
deferred.reject(new Error("Timed out while waiting for a '" + eventType + "'' event"));
|
|
||||||
}, 30000);
|
|
||||||
|
|
||||||
tab.linkedBrowser.addEventListener(eventType, handle, true, true);
|
|
||||||
if (url)
|
|
||||||
tab.linkedBrowser.loadURI(url);
|
|
||||||
return deferred.promise;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const PREF_SECURITY_DELAY_INITIAL = Services.prefs.getIntPref("security.notification_enable_delay");
|
const PREF_SECURITY_DELAY_INITIAL = Services.prefs.getIntPref("security.notification_enable_delay");
|
||||||
|
|
Загрузка…
Ссылка в новой задаче