Bug 764515 - When setting default browser in Windows 8, should also set non http defaults. r=jimm

This commit is contained in:
Brian R. Bondy 2012-06-14 22:19:39 -04:00
Родитель a7c08adfaa
Коммит fe0a9bb2a2
1 изменённых файлов: 15 добавлений и 15 удалений

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

@ -603,20 +603,6 @@ DynSHOpenWithDialog(HWND hwndParent, const OPENASINFO *poainfo)
NS_IMETHODIMP
nsWindowsShellService::SetDefaultBrowser(bool aClaimAllTypes, bool aForAllUsers)
{
if (IsWin8OrLater()) {
OPENASINFO info;
info.pcszFile = L"http";
info.pcszClass = NULL;
info.oaifInFlags = OAIF_FORCE_REGISTRATION |
OAIF_URL_PROTOCOL |
OAIF_REGISTER_EXT;
nsresult rv = DynSHOpenWithDialog(NULL, &info);
NS_ENSURE_SUCCESS(rv, rv);
bool isDefaultBrowser = false;
return SUCCEEDED(IsDefaultBrowser(&isDefaultBrowser)) &&
isDefaultBrowser ? S_OK : NS_ERROR_FAILURE;
}
nsAutoString appHelperPath;
if (NS_FAILED(GetHelperPath(appHelperPath)))
return NS_ERROR_FAILURE;
@ -627,7 +613,21 @@ nsWindowsShellService::SetDefaultBrowser(bool aClaimAllTypes, bool aForAllUsers)
appHelperPath.AppendLiteral(" /SetAsDefaultAppUser");
}
return LaunchHelper(appHelperPath);
nsresult rv = LaunchHelper(appHelperPath);
if (NS_SUCCEEDED(rv) && IsWin8OrLater()) {
OPENASINFO info;
info.pcszFile = L"http";
info.pcszClass = NULL;
info.oaifInFlags = OAIF_FORCE_REGISTRATION |
OAIF_URL_PROTOCOL |
OAIF_REGISTER_EXT;
nsresult rv = DynSHOpenWithDialog(NULL, &info);
NS_ENSURE_SUCCESS(rv, rv);
bool isDefaultBrowser = false;
rv = NS_SUCCEEDED(IsDefaultBrowser(&isDefaultBrowser)) &&
isDefaultBrowser ? S_OK : NS_ERROR_FAILURE;
}
return rv;
}
NS_IMETHODIMP