Bug 791019 - Advanced preferences changes for win8 handling. r=felipe

This commit is contained in:
Brian R. Bondy 2012-09-21 10:05:24 -04:00
parent b2a9eaf94d
commit dba09bf524
2 changed files with 51 additions and 4 deletions

View File

@ -30,7 +30,28 @@ var gAdvancedPane = {
#ifdef HAVE_SHELL_SERVICE
this.updateSetDefaultBrowser();
#ifdef XP_WIN
let shellSvc = getShellService();
// In Windows 8 we launch the control panel since it's the only
// way to get all file type association prefs. So we don't know
// when the user will select the default. We refresh here periodically
// in case the default changes.
if (!shellSvc.isDefaultBrowser(false, true)) {
var isWin8OrHigher = false;
try {
let version = Components.classes["@mozilla.org/system-info;1"].
getService(Components.interfaces.nsIPropertyBag2).
getProperty("version");
isWin8OrHigher = parseFloat(version) >= 6.2;
} catch (ex) { }
if (isWin8OrHigher) {
window.setInterval(this.updateSetDefaultBrowser, 1000);
}
}
#endif
#endif
#ifdef MOZ_UPDATER
this.updateReadPrefs();
#endif
@ -697,7 +718,8 @@ var gAdvancedPane = {
document.getElementById("alwaysCheckDefault").disabled = true;
return;
}
let selectedIndex = shellSvc.isDefaultBrowser(false) ? 1 : 0;
let selectedIndex =
shellSvc.isDefaultBrowser(false, true) ? 1 : 0;
setDefaultPane.selectedIndex = selectedIndex;
},
@ -710,7 +732,9 @@ var gAdvancedPane = {
if (!shellSvc)
return;
shellSvc.setDefaultBrowser(true, false);
document.getElementById("setDefaultPane").selectedIndex = 1;
let selectedIndex =
shellSvc.isDefaultBrowser(false, true) ? 1 : 0;
document.getElementById("setDefaultPane").selectedIndex = selectedIndex;
}
#endif
};

View File

@ -22,6 +22,26 @@ var gAdvancedPane = {
#ifdef HAVE_SHELL_SERVICE
this.updateSetDefaultBrowser();
#ifdef XP_WIN
let shellSvc = getShellService();
// In Windows 8 we launch the control panel since it's the only
// way to get all file type association prefs. So we don't know
// when the user will select the default. We refresh here periodically
// in case the default changes.
if (!shellSvc.isDefaultBrowser(false, true)) {
var isWin8OrHigher = false;
try {
let version = Components.classes["@mozilla.org/system-info;1"].
getService(Components.interfaces.nsIPropertyBag2).
getProperty("version");
isWin8OrHigher = parseFloat(version) >= 6.2;
} catch (ex) { }
if (isWin8OrHigher) {
window.setInterval(this.updateSetDefaultBrowser, 1000);
}
}
#endif
#endif
#ifdef MOZ_UPDATER
this.updateReadPrefs();
@ -672,7 +692,8 @@ var gAdvancedPane = {
document.getElementById("alwaysCheckDefault").disabled = true;
return;
}
let selectedIndex = shellSvc.isDefaultBrowser(false) ? 1 : 0;
let selectedIndex =
shellSvc.isDefaultBrowser(false, true) ? 1 : 0;
setDefaultPane.selectedIndex = selectedIndex;
},
@ -685,7 +706,9 @@ var gAdvancedPane = {
if (!shellSvc)
return;
shellSvc.setDefaultBrowser(true, false);
document.getElementById("setDefaultPane").selectedIndex = 1;
let selectedIndex =
shellSvc.isDefaultBrowser(false, true) ? 1 : 0;
document.getElementById("setDefaultPane").selectedIndex = selectedIndex;
}
#endif
};