import changes from `dev' branch of rmottola/Arctic-Fox:

- Bug 1015664. Part 1: Remove NS_HIDDEN_() usage. r=bsmedberg (afd6618205)
- Bug 1015664. Part 2: Remove some NS_HIDDEN usage. r=bsmedberg (0222fb6e5a)
- Bug 1041516 part 2: reset the "check for default browser" pref to true when setting ourselves as the default browser, r=Gijs (3ba909462c)
- Bug 1041516 part 1: clean up pref code in shell service, r=bsmedberg (b9bfe88eca)
- Bug 1191250 - Defer showing the default browser prompt to 2nd run (and only show it a maximum of three times). r=jimm (f7c75754bf)
- missingbits of 869836 AssignLiteral AppendLiteral (74ab86cdb4)
- Bug 1171361 - Fix -Wunreachable-code-break warnings in shell/nsMacShellService.cpp. r=mak (a38a5484a7)
- code sytle and missing bits of 784739 - Switch from NULL (b45cba6988)
- Bug 962709 - Fix about:home's sync entry point to work with about FxAccounts r=markh (5894b3a94b)
- missing bit of Bug 738646 - Show apps button by default on about:home (3157ac5329)
- partial of Bug 1101147 - Update about:newtab search styling. (464c18432d)
- Bug 1041663 - handle dragging the global webrtc sharing indicator, r=dolske. (097d61d263)
- Bug 1042163 - Visual issues with the global indicator for screen/device sharing, r=Gijs. (c27f666211)
This commit is contained in:
2022-05-11 11:00:04 +08:00
parent 451edd93da
commit da0d0ffadf
14 changed files with 377 additions and 157 deletions
@@ -279,20 +279,15 @@ nsWindowsShellService::ShortcutMaintenance()
return NS_ERROR_UNEXPECTED;
NS_NAMED_LITERAL_CSTRING(prefName, "browser.taskbar.lastgroupid");
nsCOMPtr<nsIPrefService> prefs =
nsCOMPtr<nsIPrefBranch> prefs =
do_GetService(NS_PREFSERVICE_CONTRACTID);
if (!prefs)
return NS_ERROR_UNEXPECTED;
nsCOMPtr<nsIPrefBranch> prefBranch;
prefs->GetBranch(nullptr, getter_AddRefs(prefBranch));
if (!prefBranch)
return NS_ERROR_UNEXPECTED;
nsCOMPtr<nsISupportsString> prefString;
rv = prefBranch->GetComplexValue(prefName.get(),
NS_GET_IID(nsISupportsString),
getter_AddRefs(prefString));
rv = prefs->GetComplexValue(prefName.get(),
NS_GET_IID(nsISupportsString),
getter_AddRefs(prefString));
if (NS_SUCCEEDED(rv)) {
nsAutoString version;
prefString->GetData(version);
@@ -308,9 +303,9 @@ nsWindowsShellService::ShortcutMaintenance()
return rv;
prefString->SetData(appId);
rv = prefBranch->SetComplexValue(prefName.get(),
NS_GET_IID(nsISupportsString),
prefString);
rv = prefs->SetComplexValue(prefName.get(),
NS_GET_IID(nsISupportsString),
prefString);
if (NS_FAILED(rv)) {
NS_WARNING("Couldn't set last user model id!");
return NS_ERROR_UNEXPECTED;
@@ -743,30 +738,84 @@ nsWindowsShellService::SetDefaultBrowser(bool aClaimAllTypes, bool aForAllUsers)
nsCOMPtr<nsIPrefBranch> prefs(do_GetService(NS_PREFSERVICE_CONTRACTID));
if (prefs) {
(void) prefs->SetBoolPref(PREF_CHECKDEFAULTBROWSER, true);
// Reset the number of times the dialog should be shown
// before it is silenced.
(void) prefs->SetIntPref(PREF_DEFAULTBROWSERCHECKCOUNT, 0);
}
return rv;
}
NS_IMETHODIMP
nsWindowsShellService::GetShouldSkipCheckDefaultBrowser(bool* aResult)
{
NS_ENSURE_ARG_POINTER(aResult);
nsresult rv;
nsCOMPtr<nsIPrefBranch> prefs(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv));
if (NS_FAILED(rv)) {
return rv;
}
rv = prefs->GetBoolPref(PREF_SKIPDEFAULTBROWSERCHECK, aResult);
if (NS_FAILED(rv)) {
return rv;
}
if (*aResult) {
// Only skip the default browser check once. The next attempt in
// a new session should proceed.
return prefs->SetBoolPref(PREF_SKIPDEFAULTBROWSERCHECK, false);
}
int32_t defaultBrowserCheckCount;
rv = prefs->GetIntPref(PREF_DEFAULTBROWSERCHECKCOUNT,
&defaultBrowserCheckCount);
if (NS_FAILED(rv)) {
return rv;
}
if (defaultBrowserCheckCount < 3) {
*aResult = false;
return prefs->SetIntPref(PREF_DEFAULTBROWSERCHECKCOUNT,
defaultBrowserCheckCount + 1);
}
// Disable the default browser check after three attempts.
// Don't modify PREF_CHECKDEFAULTBROWSER since that is a
// user-initiated action and it shouldn't get re-enabled
// if it has been user disabled.
*aResult = true;
return rv;
}
NS_IMETHODIMP
nsWindowsShellService::GetShouldCheckDefaultBrowser(bool* aResult)
{
NS_ENSURE_ARG_POINTER(aResult);
// If we've already checked, the browser has been started and this is a
// If we've already checked, the browser has been started and this is a
// new window open, and we don't want to check again.
if (mCheckedThisSession) {
*aResult = false;
return NS_OK;
}
nsCOMPtr<nsIPrefBranch> prefs;
nsresult rv;
nsCOMPtr<nsIPrefService> pserve(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv));
NS_ENSURE_SUCCESS(rv, rv);
#ifndef RELEASE_BUILD
bool skipDefaultBrowserCheck;
rv = GetShouldSkipCheckDefaultBrowser(&skipDefaultBrowserCheck);
if (NS_FAILED(rv)) {
return rv;
}
if (skipDefaultBrowserCheck) {
*aResult = false;
return rv;
}
#endif
rv = pserve->GetBranch("", getter_AddRefs(prefs));
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsIPrefBranch> prefs(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv));
if (NS_FAILED(rv)) {
return rv;
}
return prefs->GetBoolPref(PREF_CHECKDEFAULTBROWSER, aResult);
}
@@ -774,14 +823,11 @@ nsWindowsShellService::GetShouldCheckDefaultBrowser(bool* aResult)
NS_IMETHODIMP
nsWindowsShellService::SetShouldCheckDefaultBrowser(bool aShouldCheck)
{
nsCOMPtr<nsIPrefBranch> prefs;
nsresult rv;
nsCOMPtr<nsIPrefService> pserve(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv));
NS_ENSURE_SUCCESS(rv, rv);
rv = pserve->GetBranch("", getter_AddRefs(prefs));
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsIPrefBranch> prefs(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv));
if (NS_FAILED(rv)) {
return rv;
}
return prefs->SetBoolPref(PREF_CHECKDEFAULTBROWSER, aShouldCheck);
}