Bug 1357154 - Schedule IsDefaultBrowser from about:preferences using requestIdleCallback. r=florian

MozReview-Commit-ID: 7KzO5LohKL6
This commit is contained in:
Perry Jiang 2017-06-27 16:44:55 -07:00
Родитель 45ea222ca2
Коммит 40c46ebf4f
1 изменённых файлов: 20 добавлений и 1 удалений

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

@ -5,6 +5,7 @@
/* import-globals-from preferences.js */
/* import-globals-from ../../../../toolkit/mozapps/preferences/fontbuilder.js */
Components.utils.import("resource://gre/modules/Services.jsm");
Components.utils.import("resource://gre/modules/Downloads.jsm");
Components.utils.import("resource://gre/modules/FileUtils.jsm");
Components.utils.import("resource:///modules/ShellService.jsm");
@ -56,7 +57,25 @@ var gMainPane = {
// when the user will select the default. We refresh here periodically
// in case the default changes. On other Windows OS's defaults can also
// be set while the prefs are open.
window.setInterval(this.updateSetDefaultBrowser.bind(this), 1000);
let win = Services.wm.getMostRecentWindow("navigator:browser");
let pollForDefaultBrowser = () => {
let uri = win.gBrowser.currentURI.spec;
if ((uri == "about:preferences" || uri == "about:preferences#general") &&
document.visibilityState == "visible") {
this.updateSetDefaultBrowser();
}
// approximately a "requestIdleInterval"
window.setTimeout(() => {
window.requestIdleCallback(pollForDefaultBrowser);
}, 1000);
};
window.setTimeout(() => {
window.requestIdleCallback(pollForDefaultBrowser);
}, 1000);
}
}