tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit f73e57efddcb1a167d97f4cbf8ed3e48537853bf
parent 8b2f6bfb6bf969cc106ba2131706dc772141e244
Author: Cristina Horotan <chorotan@mozilla.com>
Date:   Mon, 15 Dec 2025 17:19:04 +0200

Revert "Bug 2005772 - Create directory for new searchbar mochitests. r=dao,search-reviewers,urlbar-reviewers" for causing bc failures on browser_searchModeSwitcher_basic.js

This reverts commit d74feb639f8b9fe0cc4b8ae9e4066c0969668775.

Diffstat:
Mbrowser/components/search/test/browser/browser.toml | 4++++
Abrowser/components/search/test/browser/browser_new_searchbar_init.js | 51+++++++++++++++++++++++++++++++++++++++++++++++++++
Abrowser/components/search/test/browser/browser_new_searchbar_searchmode.js | 57+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mbrowser/components/urlbar/SearchModeSwitcher.sys.mjs | 7+------
Mbrowser/components/urlbar/moz.build | 1-
Dbrowser/components/urlbar/tests/browser/searchbar/browser.toml | 12------------
Dbrowser/components/urlbar/tests/browser/searchbar/browser_new_searchbar_init.js | 48------------------------------------------------
Dbrowser/components/urlbar/tests/browser/searchbar/browser_searchmode.js | 46----------------------------------------------
Dbrowser/components/urlbar/tests/browser/searchbar/head.js | 31-------------------------------
9 files changed, 113 insertions(+), 144 deletions(-)

diff --git a/browser/components/search/test/browser/browser.toml b/browser/components/search/test/browser/browser.toml @@ -83,6 +83,10 @@ skip-if = [ ["browser_ime_composition.js"] +["browser_new_searchbar_init.js"] + +["browser_new_searchbar_searchmode.js"] + ["browser_oneOff.js"] ["browser_oneOffContextMenu.js"] diff --git a/browser/components/search/test/browser/browser_new_searchbar_init.js b/browser/components/search/test/browser/browser_new_searchbar_init.js @@ -0,0 +1,51 @@ +/* Any copyright is dedicated to the Public Domain. + https://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +/** + * Tests whether the new and old searchbars get initialized/uninitialized + * when enabled/disabled. + */ + +add_setup(async function () { + await gCUITestUtils.addSearchBar(); + registerCleanupFunction(async function () { + gCUITestUtils.removeSearchBar(); + }); +}); + +add_task(async function () { + info("Opening new window (browser.search.widget.new=false)."); + let win = await BrowserTestUtils.openNewBrowserWindow(); + let newSearchbar = win.document.querySelector("#searchbar-new"); + let oldSearchbar = win.document.querySelector("#searchbar"); + Assert.ok(!newSearchbar.controller, "New searchbar wasn't initialized"); + Assert.ok(!!oldSearchbar.firstChild, "Old searchbar was initialized"); + + info("Enabling new searchbar."); + SpecialPowers.pushPrefEnv({ + set: [["browser.search.widget.new", true]], + }); + await TestUtils.waitForTick(); + Assert.ok(!!newSearchbar.controller, "New searchbar was initialized"); + Assert.ok(!oldSearchbar.firstChild, "Old searchbar was uninitialized"); + await BrowserTestUtils.closeWindow(win); + + info("Opening new window (browser.search.widget.new=true)."); + win = await BrowserTestUtils.openNewBrowserWindow(); + newSearchbar = win.document.querySelector("#searchbar-new"); + oldSearchbar = win.document.querySelector("#searchbar"); + Assert.ok(!!newSearchbar.controller, "New searchbar was initialized"); + Assert.ok(!oldSearchbar.firstChild, "Old searchbar wasn't initialized"); + + info("Disabling new searchbar."); + let spy = sinon.spy(newSearchbar, "_removeObservers"); + SpecialPowers.popPrefEnv(); + await TestUtils.waitForTick(); + Assert.ok(spy.calledOnce, "New searchbar was uninitialized"); + Assert.ok(!!oldSearchbar.firstChild, "Old searchbar was initialized"); + + sinon.restore(); + await BrowserTestUtils.closeWindow(win); +}); diff --git a/browser/components/search/test/browser/browser_new_searchbar_searchmode.js b/browser/components/search/test/browser/browser_new_searchbar_searchmode.js @@ -0,0 +1,57 @@ +/* Any copyright is dedicated to the Public Domain. + https://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +/** + * Tests whether search mode works as expected in the new search bar. + * E.g. there should be a global search mode and it + * should not be tied to the selected tab. + */ + +ChromeUtils.defineESModuleGetters(this, { + SearchbarTestUtils: "resource://testing-common/UrlbarTestUtils.sys.mjs", +}); + +add_setup(async function () { + SearchbarTestUtils.init(this); + SpecialPowers.pushPrefEnv({ + set: [["browser.search.widget.new", true]], + }); + await gCUITestUtils.addSearchBar(); + registerCleanupFunction(() => gCUITestUtils.removeSearchBar()); + + await SearchTestUtils.updateRemoteSettingsConfig([ + { identifier: "engine1" }, + { identifier: "engine2" }, + { identifier: "engine3" }, + ]); +}); + +add_task(async function searchModeSurvivesTabSwitch() { + let tab1 = gBrowser.selectedTab; + let tab2 = await BrowserTestUtils.openNewForegroundTab(gBrowser); + + let popup = await SearchbarTestUtils.openSearchModeSwitcher(window); + info("Press on the engine1 menu button to enter search mode"); + let popupHidden = SearchbarTestUtils.searchModeSwitcherPopupClosed(window); + popup.querySelector("menuitem[label=engine1]").click(); + await popupHidden; + + await SearchbarTestUtils.assertSearchMode(window, { + engineName: "engine1", + entry: "searchbutton", + source: 3, + }); + + info("Switching tab. Search mode should not be affected."); + await BrowserTestUtils.switchTab(gBrowser, tab1); + await SearchbarTestUtils.assertSearchMode(window, { + engineName: "engine1", + entry: "searchbutton", + source: 3, + }); + + SearchbarTestUtils.exitSearchMode(window); + gBrowser.removeTab(tab2); +}); diff --git a/browser/components/urlbar/SearchModeSwitcher.sys.mjs b/browser/components/urlbar/SearchModeSwitcher.sys.mjs @@ -200,12 +200,7 @@ export class SearchModeSwitcher { } observe(_subject, topic, data) { - if ( - !this.#input.window || - this.#input.window.closed || - // TODO bug 2005783 stop observing when input is disconnected. - !this.#input.window.isConnected - ) { + if (!this.#input.window || this.#input.window.closed) { return; } diff --git a/browser/components/urlbar/moz.build b/browser/components/urlbar/moz.build @@ -98,7 +98,6 @@ BROWSER_CHROME_MANIFESTS += [ "tests/browser-updateResults/browser.toml", "tests/browser/browser.toml", "tests/browser/browserSidebarRevamp.toml", - "tests/browser/searchbar/browser.toml", "tests/engagementTelemetry/browser/browser.toml", "tests/quicksuggest/browser/browser.toml", ] diff --git a/browser/components/urlbar/tests/browser/searchbar/browser.toml b/browser/components/urlbar/tests/browser/searchbar/browser.toml @@ -1,12 +0,0 @@ -[DEFAULT] -support-files = [ - "../head-common.js", - "head.js", -] -prefs = [ - "browser.search.widget.new=true", -] - -["browser_new_searchbar_init.js"] - -["browser_searchmode.js"] diff --git a/browser/components/urlbar/tests/browser/searchbar/browser_new_searchbar_init.js b/browser/components/urlbar/tests/browser/searchbar/browser_new_searchbar_init.js @@ -1,48 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - https://creativecommons.org/publicdomain/zero/1.0/ */ - -"use strict"; - -/** - * Tests whether the new and old searchbars get initialized/uninitialized - * when enabled/disabled. - */ - -add_task(async function () { - SpecialPowers.pushPrefEnv({ - set: [["browser.search.widget.new", false]], - }); - info("Opening new window (browser.search.widget.new=false)."); - let win = await BrowserTestUtils.openNewBrowserWindow(); - let newSearchbar = win.document.querySelector("#searchbar-new"); - let oldSearchbar = win.document.querySelector("#searchbar"); - Assert.ok(!newSearchbar.controller, "New searchbar wasn't initialized"); - Assert.ok(!!oldSearchbar.firstChild, "Old searchbar was initialized"); - - info("Enabling new searchbar."); - SpecialPowers.popPrefEnv(); - await TestUtils.waitForTick(); - Assert.ok(!!newSearchbar.controller, "New searchbar was initialized"); - Assert.ok(!oldSearchbar.firstChild, "Old searchbar was uninitialized"); - await BrowserTestUtils.closeWindow(win); - - info("Opening new window (browser.search.widget.new=true)."); - win = await BrowserTestUtils.openNewBrowserWindow(); - newSearchbar = win.document.querySelector("#searchbar-new"); - oldSearchbar = win.document.querySelector("#searchbar"); - Assert.ok(!!newSearchbar.controller, "New searchbar was initialized"); - Assert.ok(!oldSearchbar.firstChild, "Old searchbar wasn't initialized"); - - info("Disabling new searchbar."); - let spy = sinon.spy(newSearchbar, "_removeObservers"); - SpecialPowers.pushPrefEnv({ - set: [["browser.search.widget.new", false]], - }); - await TestUtils.waitForTick(); - Assert.ok(spy.calledOnce, "New searchbar was uninitialized"); - Assert.ok(!!oldSearchbar.firstChild, "Old searchbar was initialized"); - - sinon.restore(); - await BrowserTestUtils.closeWindow(win); - SpecialPowers.popPrefEnv(); -}); diff --git a/browser/components/urlbar/tests/browser/searchbar/browser_searchmode.js b/browser/components/urlbar/tests/browser/searchbar/browser_searchmode.js @@ -1,46 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - https://creativecommons.org/publicdomain/zero/1.0/ */ - -"use strict"; - -/** - * Tests whether search mode works as expected in the new search bar. - * E.g. there should be a global search mode and it - * should not be tied to the selected tab. - */ - -add_setup(async function () { - await SearchTestUtils.updateRemoteSettingsConfig([ - { identifier: "engine1" }, - { identifier: "engine2" }, - { identifier: "engine3" }, - ]); -}); - -add_task(async function searchModeSurvivesTabSwitch() { - let tab1 = gBrowser.selectedTab; - let tab2 = await BrowserTestUtils.openNewForegroundTab(gBrowser); - - let popup = await SearchbarTestUtils.openSearchModeSwitcher(window); - info("Press on the engine1 menu button to enter search mode"); - let popupHidden = SearchbarTestUtils.searchModeSwitcherPopupClosed(window); - popup.querySelector("menuitem[label=engine1]").click(); - await popupHidden; - - await SearchbarTestUtils.assertSearchMode(window, { - engineName: "engine1", - entry: "searchbutton", - source: 3, - }); - - info("Switching tab. Search mode should not be affected."); - await BrowserTestUtils.switchTab(gBrowser, tab1); - await SearchbarTestUtils.assertSearchMode(window, { - engineName: "engine1", - entry: "searchbutton", - source: 3, - }); - - SearchbarTestUtils.exitSearchMode(window); - gBrowser.removeTab(tab2); -}); diff --git a/browser/components/urlbar/tests/browser/searchbar/head.js b/browser/components/urlbar/tests/browser/searchbar/head.js @@ -1,31 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - http://creativecommons.org/publicdomain/zero/1.0/ */ - -"use strict"; - -ChromeUtils.defineESModuleGetters(this, { - CustomizableUITestUtils: - "resource://testing-common/CustomizableUITestUtils.sys.mjs", - SearchbarTestUtils: "resource://testing-common/UrlbarTestUtils.sys.mjs", - SearchUITestUtils: "resource://testing-common/SearchUITestUtils.sys.mjs", - SearchUtils: "moz-src:///toolkit/components/search/SearchUtils.sys.mjs", - TelemetryTestUtils: "resource://testing-common/TelemetryTestUtils.sys.mjs", - UrlbarPrefs: "moz-src:///browser/components/urlbar/UrlbarPrefs.sys.mjs", - UrlbarResult: "moz-src:///browser/components/urlbar/UrlbarResult.sys.mjs", - UrlbarUtils: "moz-src:///browser/components/urlbar/UrlbarUtils.sys.mjs", - UrlbarView: "moz-src:///browser/components/urlbar/UrlbarView.sys.mjs", - sinon: "resource://testing-common/Sinon.sys.mjs", -}); - -Services.scriptloader.loadSubScript( - "chrome://mochitests/content/browser/browser/components/urlbar/tests/browser/head-common.js", - this -); - -let gCUITestUtils = new CustomizableUITestUtils(window); -gCUITestUtils.addSearchBar(); -SearchbarTestUtils.init(this); - -registerCleanupFunction(async () => { - gCUITestUtils.removeSearchBar(); -});