Bug 1673092, disable skeleton ui if tabsintitlebar pref is false r=dthayer

If browser.tabs.drawInTitlebar is false, we should not paint the skeleton
UI. It creates an additional top bar with the icon and name of the current
tab, so our skeleton UI will not match the window, and we risk creating
a poor experience for our users.

Differential Revision: https://phabricator.services.mozilla.com/D97206
This commit is contained in:
Emma Malysz 2020-12-01 16:05:40 +00:00
parent 3b72538413
commit 8a24c9d37f
2 changed files with 14 additions and 1 deletions

View File

@ -70,6 +70,15 @@ add_task(async function testWritesEnabledOnPrefChange() {
);
is(enabled, 0, "Pre-XUL skeleton UI is disabled in the Windows registry");
Services.prefs.setBoolPref("browser.startup.preXulSkeletonUI", true);
Services.prefs.setBoolPref("browser.tabs.drawInTitlebar", false);
enabled = WindowsRegistry.readRegKey(
Ci.nsIWindowsRegKey.ROOT_KEY_CURRENT_USER,
"Software\\Mozilla\\Firefox\\PreXULSkeletonUISettings",
`${firefoxPath}|Enabled`
);
is(enabled, 0, "Pre-XUL skeleton UI is disabled in the Windows registry");
await BrowserTestUtils.closeWindow(win);
});

View File

@ -274,6 +274,7 @@ static const char kPrefThemeId[] = "extensions.activeThemeID";
static const char kPrefBrowserStartupBlankWindow[] =
"browser.startup.blankWindow";
static const char kPrefPreXulSkeletonUI[] = "browser.startup.preXulSkeletonUI";
static const char kPrefDrawTabsInTitlebar[] = "browser.tabs.drawInTitlebar";
#endif // defined(XP_WIN)
int gArgc;
@ -1954,7 +1955,8 @@ static void ReflectSkeletonUIPrefToRegistry(const char* aPref, void* aData) {
bool shouldBeEnabled =
Preferences::GetBool(kPrefPreXulSkeletonUI, false) &&
Preferences::GetBool(kPrefBrowserStartupBlankWindow, false);
Preferences::GetBool(kPrefBrowserStartupBlankWindow, false) &&
Preferences::GetBool(kPrefDrawTabsInTitlebar, false);
if (shouldBeEnabled && Preferences::HasUserValue(kPrefThemeId)) {
nsCString themeId;
Preferences::GetCString(kPrefThemeId, themeId);
@ -1983,6 +1985,8 @@ static void SetupSkeletonUIPrefs() {
Preferences::RegisterCallback(&ReflectSkeletonUIPrefToRegistry,
kPrefBrowserStartupBlankWindow);
Preferences::RegisterCallback(&ReflectSkeletonUIPrefToRegistry, kPrefThemeId);
Preferences::RegisterCallback(&ReflectSkeletonUIPrefToRegistry,
kPrefDrawTabsInTitlebar);
}
# if defined(MOZ_LAUNCHER_PROCESS)