Backed out changeset 81c607ae7fa3 (bug 1906140) for causing mochitest failures CLOSED TREE

This commit is contained in:
Noemi Erli 2024-08-03 04:30:26 +03:00
parent 02d3c8c7e9
commit 6d50d1006c
9 changed files with 36 additions and 187 deletions

View File

@ -17,7 +17,7 @@ add_task(async function testFilterFeatures() {
id: "test-featureA",
preference: "test.featureA",
title: "Experimental Feature 1",
group: "experimental-features-group-customize-browsing",
group: "experimental-features-group-browsing",
description: "This is a fun experimental feature you can enable",
result: true,
},
@ -25,7 +25,7 @@ add_task(async function testFilterFeatures() {
id: "test-featureB",
preference: "test.featureB",
title: "Experimental Thing 2",
group: "experimental-features-group-customize-browsing",
group: "experimental-features-group-browsing",
description: "This is a very boring experimental tool",
// Visible since it's grouped with other features that match the search.
result: true,
@ -34,7 +34,7 @@ add_task(async function testFilterFeatures() {
id: "test-featureC",
preference: "test.featureC",
title: "Experimental Thing 3",
group: "experimental-features-group-customize-browsing",
group: "experimental-features-group-browsing",
description: "This is a fun experimental feature for you can enable",
result: true,
},

View File

@ -203,7 +203,7 @@ class DefinitionServer {
id: "test-feature",
// These l10n IDs are just random so we have some text to display
title: "experimental-features-media-jxl",
group: "experimental-features-group-customize-browsing",
group: "experimental-features-group-browsing",
description: "pane-experimental-description3",
restartRequired: false,
type: "boolean",

View File

@ -166,6 +166,7 @@ class TestSessionRestore(SessionStoreTestCase):
self.marionette.execute_script(
"""
const window = BrowserWindowTracker.getTopWindow();
window.SidebarController.toolbarButton.click();
return window.SidebarController.sidebarContainer.hidden;
"""
),

View File

@ -21,8 +21,7 @@ var SidebarController = {
return document.getElementById(elementId);
},
get title() {
let element = document.getElementById(elementId);
return element?.getAttribute("label");
return document.getElementById(elementId).getAttribute("label");
},
...rest,
};
@ -38,9 +37,8 @@ var SidebarController = {
const viewItem = document.getElementById(sidebar.menuId);
viewItem.hidden = !visible;
let menuItem = document.getElementById(config.elementId);
// Add/remove switcher menu item.
if (visible && !menuItem) {
if (visible) {
switcherMenuitem = this.createMenuItem(commandID, sidebar);
switcherMenuitem.setAttribute("id", config.elementId);
switcherMenuitem.removeAttribute("type");
@ -69,10 +67,6 @@ var SidebarController = {
return this._sidebars;
}
return this.generateSidebarsMap();
},
generateSidebarsMap() {
this._sidebars = new Map([
[
"viewHistorySidebar",
@ -204,11 +198,6 @@ var SidebarController = {
_switcherTarget: null,
_switcherArrow: null,
_inited: false,
_switcherListenersAdded: false,
_verticalNewTabListenerAdded: false,
_localesObserverAdded: false,
_mainResizeObserverAdded: false,
_mainResizeObserver: null,
/**
* @type {MutationObserver | null}
@ -257,6 +246,11 @@ var SidebarController = {
this._switcherPanel = document.getElementById("sidebarMenu-popup");
this._switcherTarget = document.getElementById("sidebar-switcher-target");
this._switcherArrow = document.getElementById("sidebar-switcher-arrow");
let newTabButton = document.getElementById("vertical-tabs-newtab-button");
newTabButton.addEventListener("command", event => {
BrowserCommands.openTab({ event });
});
if (
Services.prefs.getBoolPref(
"browser.tabs.allow_transparent_browser",
@ -277,10 +271,8 @@ var SidebarController = {
menubar.appendChild(menuitem);
}
}
if (this._mainResizeObserver) {
this._mainResizeObserver.disconnect();
}
this._mainResizeObserver = new ResizeObserver(async ([entry]) => {
let mainResizeObserver = new ResizeObserver(async ([entry]) => {
let sidebarBox = document.getElementById("sidebar-box");
sidebarBox.style.maxWidth = `calc(75vw - ${entry.contentBoxSize[0].inlineSize}px)`;
});
@ -297,43 +289,27 @@ var SidebarController = {
!window.toolbar.visible ||
(this.sidebarRevampVisibility === "hide-sidebar" && !this.isOpen);
document.getElementById("sidebar-header").hidden = true;
if (!this._mainResizeObserverAdded) {
this._mainResizeObserver.observe(this.sidebarMain);
this._mainResizeObserverAdded = true;
}
mainResizeObserver.observe(this.sidebarMain);
if (this.sidebarVerticalTabsEnabled) {
this.toggleTabstrip();
}
let newTabButton = document.getElementById("vertical-tabs-newtab-button");
if (!this._verticalNewTabListenerAdded) {
newTabButton.addEventListener("command", event => {
BrowserCommands.openTab({ event });
});
this._verticalNewTabListenerAdded = true;
}
} else {
this._switcherCloseButton = document.getElementById("sidebar-close");
if (!this._switcherListenersAdded) {
this._switcherCloseButton.addEventListener("command", () => {
this.hide();
});
this._switcherTarget.addEventListener("command", () => {
this.toggleSwitcherPanel();
});
this._switcherTarget.addEventListener("keydown", event => {
this.handleKeydown(event);
});
this._switcherListenersAdded = true;
}
this._switcherCloseButton.addEventListener("command", () => {
this.hide();
});
this._switcherTarget.addEventListener("command", () => {
this.toggleSwitcherPanel();
});
this._switcherTarget.addEventListener("keydown", event => {
this.handleKeydown(event);
});
}
this._inited = true;
if (!this._localesObserverAdded) {
Services.obs.addObserver(this, "intl:app-locales-changed");
this._localesObserverAdded = true;
}
Services.obs.addObserver(this, "intl:app-locales-changed");
this._initDeferred.resolve();
},
@ -355,11 +331,6 @@ var SidebarController = {
this._observer = null;
}
if (this._mainResizeObserver) {
this._mainResizeObserver.disconnect();
this._mainResizeObserver = null;
}
if (this.revampComponentsLoaded) {
// Explicitly disconnect the `sidebar-main` element so that listeners
// setup by reactive controllers will also be removed.
@ -537,41 +508,6 @@ var SidebarController = {
}
},
/**
* Show/hide new sidebar based on sidebar.revamp pref
*/
async toggleRevampSidebar() {
if (this.isOpen) {
this.hide();
}
// Reset sidebars map but preserve any existing extensions
let extensionsArr = [];
for (const [commandID, sidebar] of this.sidebars.entries()) {
if (sidebar.hasOwnProperty("extensionId")) {
extensionsArr.push({ commandID, sidebar });
}
}
this.sidebars = this.generateSidebarsMap();
for (const extension of extensionsArr) {
this.sidebars.set(extension.commandID, extension.sidebar);
}
if (!this.sidebarRevampEnabled) {
this.sidebarMain.hidden = true;
document.getElementById("sidebar-header").hidden = false;
// Disable vertical tabs if revamped sidebar is turned off
if (this.sidebarVerticalTabsEnabled) {
Services.prefs.setBoolPref("sidebar.verticalTabs", false);
}
} else {
this.sidebarMain.hidden = false;
}
if (!this._sidebars.get(this.lastOpenedId)) {
this.lastOpenedId = this.DEFAULT_SIDEBAR_ID;
}
this.show(this.lastOpenedId);
await this.init();
},
/**
* Try and adopt the status of the sidebar from another window.
*
@ -1215,7 +1151,7 @@ var SidebarController = {
// until about:blank has loaded (which does not happen as long as the
// element is hidden).
this.browser.setAttribute("src", "about:blank");
this.browser.docShell?.createAboutBlankDocumentViewer(null, null);
this.browser.docShell.createAboutBlankDocumentViewer(null, null);
this._box.removeAttribute("checked");
this._box.hidden = this._splitter.hidden = true;
@ -1270,11 +1206,6 @@ var SidebarController = {
arrowScrollbox.setAttribute("orient", "vertical");
tabStrip.setAttribute("orient", "vertical");
verticalTabs.append(tabStrip);
// Enable revamped sidebar if vertical tabs is enabled
if (!this.sidebarRevampEnabled) {
Services.prefs.setBoolPref("sidebar.revamp", true);
}
} else {
arrowScrollbox.setAttribute("orient", "horizontal");
tabStrip.setAttribute("orient", "horizontal");
@ -1310,8 +1241,7 @@ XPCOMUtils.defineLazyPreferenceGetter(
SidebarController,
"sidebarRevampEnabled",
"sidebar.revamp",
false,
SidebarController.toggleRevampSidebar.bind(SidebarController)
false
);
XPCOMUtils.defineLazyPreferenceGetter(
SidebarController,

View File

@ -28,4 +28,4 @@ add_task(async function test_switcher_twice() {
ok(SidebarController.isOpen, "Stays open on second click");
SidebarController.hide();
}).skip(); // bug 1896421
});

View File

@ -142,53 +142,3 @@ add_task(async function test_conditional_tools() {
await BrowserTestUtils.closeWindow(win);
});
/**
* Check that the new sidebar is hidden/shown automatically (without a browser restart)
* when flipping the sidebar.revamp pref
*/
add_task(async function test_flip_revamp_pref() {
const win = await BrowserTestUtils.openNewBrowserWindow();
const sidebar = win.document.querySelector("sidebar-main");
await sidebar.updateComplete;
let verticalTabs = win.document.querySelector("#vertical-tabs");
ok(
!BrowserTestUtils.isVisible(verticalTabs),
"Vertical tabs slot is not visible initially"
);
// Open history sidebar
await toggleSidebarPanel(win, "viewHistorySidebar");
await SpecialPowers.pushPrefEnv({ set: [["sidebar.verticalTabs", true]] });
ok(BrowserTestUtils.isVisible(verticalTabs), "Vertical tabs slot is visible");
ok(sidebar, "Revamped sidebar is shown initially.");
await SpecialPowers.pushPrefEnv({ set: [["sidebar.revamp", false]] });
await TestUtils.waitForCondition(() => {
let isSidebarMainShown = !win.document.querySelector("sidebar-main").hidden;
let isSwitcherPanelShown =
!win.document.getElementById("sidebar-header").hidden;
// Vertical tabs pref should be turned off when revamp pref is turned off
let isVerticalTabsShown = BrowserTestUtils.isVisible(verticalTabs);
return !isSidebarMainShown && isSwitcherPanelShown && !isVerticalTabsShown;
}, "The new sidebar is hidden and the old sidebar is shown.");
ok(true, "The new sidebar is hidden and the old sidebar is shown.");
await SpecialPowers.pushPrefEnv({
set: [["sidebar.revamp", true]],
});
await sidebar.updateComplete;
await TestUtils.waitForCondition(() => {
let isSidebarMainShown = !document.querySelector("sidebar-main").hidden;
let isSwitcherPanelShown =
!win.document.getElementById("sidebar-header").hidden;
return isSidebarMainShown && !isSwitcherPanelShown;
}, "The old sidebar is hidden and the new sidebar is shown.");
ok(true, "The old sidebar is hidden and the new sidebar is shown.");
await BrowserTestUtils.closeWindow(win);
});

View File

@ -201,4 +201,4 @@ add_task(async function test_states_for_hide_sidebar() {
await BrowserTestUtils.closeWindow(win);
await BrowserTestUtils.closeWindow(newWin);
await SpecialPowers.popPrefEnv();
}).skip(); //bug 1896421
});

View File

@ -14,32 +14,8 @@
# based on the order of appearance in this file. Settings within
# a group will also be determined by their order in this file.
[sidebar]
group = "experimental-features-group-customize-browsing"
title = "sidebar-title"
description = "sidebar-description"
description-links = {connect= "https://connect.mozilla.org/t5/discussions/firefox-sidebar-and-vertical-tabs-try-them-out-in-nightly/m-p/63231#M22243"}
restart-required = false
preference = "sidebar.revamp"
type = "boolean"
bug-numbers = [1906140]
is-public-jexl = "nightly_build"
default-value-jexl = "false"
[vertical-tabs]
group = "experimental-features-group-customize-browsing"
title = "vertical-tabs-title"
description = "vertical-tabs-description"
description-links = {connect= "https://connect.mozilla.org/t5/discussions/firefox-sidebar-and-vertical-tabs-try-them-out-in-nightly/m-p/63231#M22243"}
restart-required = false
preference = "sidebar.verticalTabs"
type = "boolean"
bug-numbers = [1906140]
is-public-jexl = "nightly_build"
default-value-jexl = "false"
[genai-chat]
group = "experimental-features-group-customize-browsing"
group = "experimental-features-group-browsing"
title = "genai-settings-chat-title"
description = "genai-settings-chat-description"
description-links = {connect= "https://connect.mozilla.org/t5/discussions/share-your-feedback-on-the-ai-services-experiment-in-nightly/m-p/60519#M21202"}
@ -51,7 +27,7 @@ is-public-jexl = "nightly_build"
default-value-jexl = "false"
[url-bar-ime-search]
group = "experimental-features-group-customize-browsing"
group = "experimental-features-group-browsing"
title = "experimental-features-ime-search"
description = "experimental-features-ime-search-description"
restart-required = false
@ -62,7 +38,7 @@ is-public-jexl = "true"
default-value-jexl = "false"
[auto-pip]
group = "experimental-features-group-customize-browsing"
group = "experimental-features-group-browsing"
title = "experimental-features-auto-pip"
description = "experimental-features-auto-pip-description"
restart-required = false
@ -73,7 +49,7 @@ is-public-jexl = "true"
default-value-jexl = "false"
[webrtc-global-mute-toggles]
group = "experimental-features-group-customize-browsing"
group = "experimental-features-group-browsing"
title = "experimental-features-webrtc-global-mute-toggles"
description = "experimental-features-webrtc-global-mute-toggles-description"
restart-required = false
@ -84,7 +60,7 @@ is-public-jexl = "nightly_build"
default-value-jexl = "false"
[cookie-samesite-none-requires-secure]
group = "experimental-features-group-customize-browsing"
group = "experimental-features-group-browsing"
title = "experimental-features-cookie-samesite-none-requires-secure2"
description = "experimental-features-cookie-samesite-none-requires-secure2-description"
restart-required = false

View File

@ -51,18 +51,10 @@ experimental-features-auto-pip =
.label = Picture-in-Picture: auto-open on tab switch
experimental-features-auto-pip-description = Enable Picture-in-Picture on active videos when switching tabs.
# Updated sidebar settings
sidebar-title =
.label = Sidebar
sidebar-description = Easily access your history, tabs from other devices, sidebar extensions, and more as you browse. <a data-l10n-name="connect">Share feedback</a>
vertical-tabs-title =
.label = Vertical tabs
vertical-tabs-description = Move your tabs from the top of the browser to the side. Requires you also try the sidebar. <a data-l10n-name="connect">Share feedback</a>
experimental-features-group-browsing =
.label = Browsing
experimental-features-group-developer-tools =
.label = Developer Tools
experimental-features-group-webpage-display =
.label = Webpage Display
experimental-features-group-customize-browsing =
.label = Customize your browsing
experimental-features-group-customize-browsing-description = If you try these features, <a data-l10n-name="connect">share your thoughts on Connect</a>