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 962c8f161c
commit b3a55c21f4
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
};