tor-browser

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

commit 0d2014ac189f66307d9627b0f24b166b9066decd
parent 44bd5382c0624911496b73b1356ee475eb7ec64b
Author: Daisuke Akatsuka <daisuke@birchill.co.jp>
Date:   Thu, 18 Dec 2025 22:10:15 +0000

Bug 1968218: Handles empty arrays or undefined includeParams r=jteow

Differential Revision: https://phabricator.services.mozilla.com/D268245

Diffstat:
Mbrowser/components/urlbar/UrlbarSearchTermsPersistence.sys.mjs | 3++-
Mbrowser/components/urlbar/tests/unit/test_urlbar_search_terms_persistence.js | 61+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 63 insertions(+), 1 deletion(-)

diff --git a/browser/components/urlbar/UrlbarSearchTermsPersistence.sys.mjs b/browser/components/urlbar/UrlbarSearchTermsPersistence.sys.mjs @@ -459,7 +459,8 @@ class _UrlbarSearchTermsPersistence { if (!searchParams.size) { return false; } - if (provider.includeParams) { + + if (provider.includeParams?.length) { let foundMatch = false; for (let param of provider.includeParams) { // The param might not be present on page load. diff --git a/browser/components/urlbar/tests/unit/test_urlbar_search_terms_persistence.js b/browser/components/urlbar/tests/unit/test_urlbar_search_terms_persistence.js @@ -44,6 +44,19 @@ const PROVIDERS = [ }, ], }, + { + id: "example3", + queryParamNames: ["q"], + searchPageRegexp: "^https://example3\\.com/", + includeParams: [], + excludeParams: [], + }, + { + id: "example4", + queryParamNames: ["q"], + searchPageRegexp: "^https://example4\\.com/", + excludeParams: [], + }, ]; const TESTS = [ @@ -188,6 +201,28 @@ const TESTS = [ }, ], }, + { + title: "Empty includeParams", + name: "example3", + cases: [ + { + title: "With search query param value", + originalURI: "https://example3.com/?q=foo", + expected: "foo", + }, + ], + }, + { + title: "No includeParams", + name: "example4", + cases: [ + { + title: "With search query param value", + originalURI: "https://example4.com/?q=foo", + expected: "foo", + }, + ], + }, ]; add_setup(async function () { @@ -241,6 +276,32 @@ add_setup(async function () { }, }, { + recordType: "engine", + identifier: "example3", + base: { + name: "example3", + urls: { + search: { + base: "https://example3.com/", + searchTermParamName: "q", + }, + }, + }, + }, + { + recordType: "engine", + identifier: "example4", + base: { + name: "example4", + urls: { + search: { + base: "https://example4.com/", + searchTermParamName: "q", + }, + }, + }, + }, + { recordType: "defaultEngines", globalDefault: "Example", specificDefaults: [],