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:
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: [],