commit 8835f200186d7a983e8c4a594f06f4106458ffdb
parent ddd5433aa42d9166d7e85bdf6e97b0c3e3dddec8
Author: Daisuke Akatsuka <daisuke@birchill.co.jp>
Date: Thu, 11 Dec 2025 01:12:06 +0000
Bug 1995227: Remove search type special handling r=adw
Differential Revision: https://phabricator.services.mozilla.com/D275572
Diffstat:
8 files changed, 41 insertions(+), 35 deletions(-)
diff --git a/browser/components/urlbar/UrlbarProviderAliasEngines.sys.mjs b/browser/components/urlbar/UrlbarProviderAliasEngines.sys.mjs
@@ -65,7 +65,10 @@ export class UrlbarProviderAliasEngines extends UrlbarProvider {
if (!engine || instance != this.queryInstance) {
return;
}
- let query = UrlbarUtils.substringAfter(queryContext.searchString, alias);
+ let query = UrlbarUtils.substringAfter(
+ queryContext.searchString,
+ alias
+ ).trimStart();
let result = new lazy.UrlbarResult({
type: UrlbarUtils.RESULT_TYPE.SEARCH,
source: UrlbarUtils.RESULT_SOURCE.SEARCH,
@@ -73,7 +76,8 @@ export class UrlbarProviderAliasEngines extends UrlbarProvider {
payload: {
engine: engine.name,
keyword: alias,
- query: query.trimStart(),
+ query,
+ title: query,
icon,
},
});
diff --git a/browser/components/urlbar/UrlbarProviderHeuristicFallback.sys.mjs b/browser/components/urlbar/UrlbarProviderHeuristicFallback.sys.mjs
@@ -276,12 +276,14 @@ export class UrlbarProviderHeuristicFallback extends UrlbarProvider {
});
}
+ query = query.trimStart();
return new lazy.UrlbarResult({
type: UrlbarUtils.RESULT_TYPE.SEARCH,
source: UrlbarUtils.RESULT_SOURCE.OTHER_LOCAL,
heuristic: true,
payload: {
- query: query.trimStart(),
+ query,
+ title: query,
keyword: firstToken,
},
});
@@ -328,6 +330,7 @@ export class UrlbarProviderHeuristicFallback extends UrlbarProvider {
engine: engine.name,
icon: UrlbarUtils.ICON.SEARCH_GLASS,
query,
+ title: query,
keyword,
},
highlights: {
diff --git a/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs b/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
@@ -328,6 +328,7 @@ function makeUrlbarResult(queryContext, info) {
Services.urlFormatter.formatURLPref("app.support.baseURL") +
"awesome-bar-result-menu",
suggestion: action.params.searchSuggestion,
+ title: action.params.searchSuggestion,
lowerCaseSuggestion:
action.params.searchSuggestion.toLocaleLowerCase(),
},
diff --git a/browser/components/urlbar/UrlbarProviderPrivateSearch.sys.mjs b/browser/components/urlbar/UrlbarProviderPrivateSearch.sys.mjs
@@ -109,6 +109,7 @@ export class UrlbarProviderPrivateSearch extends UrlbarProvider {
payload: {
engine: engine.name,
query: searchString,
+ title: searchString,
icon,
inPrivateWindow: true,
isPrivateEngine,
diff --git a/browser/components/urlbar/UrlbarProviderRecentSearches.sys.mjs b/browser/components/urlbar/UrlbarProviderRecentSearches.sys.mjs
@@ -133,6 +133,7 @@ export class UrlbarProviderRecentSearches extends UrlbarProvider {
payload: {
engine: engine.name,
suggestion: result.value,
+ title: result.value,
isBlockable: true,
blockL10n: { id: "urlbar-result-menu-remove-from-history" },
helpUrl:
diff --git a/browser/components/urlbar/UrlbarProviderSearchSuggestions.sys.mjs b/browser/components/urlbar/UrlbarProviderSearchSuggestions.sys.mjs
@@ -492,14 +492,26 @@ export class UrlbarProviderSearchSuggestions extends UrlbarProvider {
}
try {
+ let query = searchString.trim();
+ let suggestion = entry.value;
+ let title;
+ if (tail && entry.tailOffsetIndex >= 0) {
+ title = tail;
+ } else if (suggestion) {
+ title = suggestion;
+ } else {
+ title = query;
+ }
+
results.push(
new lazy.UrlbarResult({
type: UrlbarUtils.RESULT_TYPE.SEARCH,
source: UrlbarUtils.RESULT_SOURCE.SEARCH,
isRichSuggestion: !!entry.icon,
payload: {
+ title,
engine: engine.name,
- suggestion: entry.value,
+ suggestion,
lowerCaseSuggestion: entry.value.toLocaleLowerCase(),
tailPrefix,
tail,
@@ -507,7 +519,7 @@ export class UrlbarProviderSearchSuggestions extends UrlbarProvider {
keyword: alias || undefined,
trending: entry.trending,
description: entry.description || undefined,
- query: searchString.trim(),
+ query,
icon: !entry.value ? await engine.getIconURL() : entry.icon,
helpUrl: entry.trending ? TRENDING_HELP_URL : undefined,
},
@@ -642,6 +654,7 @@ function makeFormHistoryResult(queryContext, engine, entry) {
payload: {
engine: engine.name,
suggestion: entry.value,
+ title: entry.value,
lowerCaseSuggestion: entry.value.toLocaleLowerCase(),
isBlockable: true,
blockL10n: { id: "urlbar-result-menu-remove-from-history" },
diff --git a/browser/components/urlbar/UrlbarResult.sys.mjs b/browser/components/urlbar/UrlbarResult.sys.mjs
@@ -318,11 +318,6 @@ export class UrlbarResult {
}
}
- let isTitle = payloadName == "title";
- if (isTitle) {
- payloadName = this.#getDisplayableTitlePayloadName();
- }
-
let value = this.payload[payloadName];
if (!value) {
return {};
@@ -363,31 +358,6 @@ export class UrlbarResult {
return cached;
}
- #getDisplayableTitlePayloadName() {
- switch (this.type) {
- case lazy.UrlbarUtils.RESULT_TYPE.KEYWORD:
- case lazy.UrlbarUtils.RESULT_TYPE.TAB_SWITCH:
- case lazy.UrlbarUtils.RESULT_TYPE.URL:
- case lazy.UrlbarUtils.RESULT_TYPE.OMNIBOX:
- case lazy.UrlbarUtils.RESULT_TYPE.REMOTE_TAB:
- return "title";
- case lazy.UrlbarUtils.RESULT_TYPE.SEARCH:
- if (this.payload.title) {
- return "title";
- }
- if (this.payload.providesSearchMode) {
- return null;
- }
- if (this.payload.tail && this.payload.tailOffsetIndex >= 0) {
- return "tail";
- } else if (this.payload.suggestion) {
- return "suggestion";
- }
- return "query";
- }
- return null;
- }
-
/**
* Returns the given payload if it's valid or throws an error if it's not.
* The schemas in UrlbarUtils.RESULT_PAYLOAD_SCHEMA are used for validation.
diff --git a/browser/components/urlbar/tests/unit/head.js b/browser/components/urlbar/tests/unit/head.js
@@ -505,6 +505,7 @@ function makeFormHistoryResult(queryContext, { suggestion, engineName }) {
payload: {
engine: engineName,
suggestion,
+ title: suggestion,
lowerCaseSuggestion: suggestion.toLocaleLowerCase(),
isBlockable: true,
blockL10n: { id: "urlbar-result-menu-remove-from-history" },
@@ -514,6 +515,7 @@ function makeFormHistoryResult(queryContext, { suggestion, engineName }) {
},
highlights: {
suggestion: UrlbarUtils.HIGHLIGHT.SUGGESTED,
+ title: UrlbarUtils.HIGHLIGHT.SUGGESTED,
},
});
}
@@ -804,9 +806,20 @@ function makeSearchResult(
isPrivateEngine,
};
+ if (providesSearchMode) {
+ // No title.
+ } else if (payload.tail && payload.tailOffsetIndex >= 0) {
+ payload.title = payload.tail;
+ } else if (payload.suggestion != undefined) {
+ payload.title = payload.suggestion;
+ } else if (payload.query != undefined) {
+ payload.title = payload.query;
+ }
+
if (uri) {
payload.url = uri;
}
+
if (providerName == "UrlbarProviderTabToSearch") {
if (searchUrlDomainWithoutSuffix.startsWith("www.")) {
searchUrlDomainWithoutSuffix = searchUrlDomainWithoutSuffix.substring(4);