tor-browser

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

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:
Mbrowser/components/urlbar/UrlbarProviderAliasEngines.sys.mjs | 8++++++--
Mbrowser/components/urlbar/UrlbarProviderHeuristicFallback.sys.mjs | 5++++-
Mbrowser/components/urlbar/UrlbarProviderPlaces.sys.mjs | 1+
Mbrowser/components/urlbar/UrlbarProviderPrivateSearch.sys.mjs | 1+
Mbrowser/components/urlbar/UrlbarProviderRecentSearches.sys.mjs | 1+
Mbrowser/components/urlbar/UrlbarProviderSearchSuggestions.sys.mjs | 17+++++++++++++++--
Mbrowser/components/urlbar/UrlbarResult.sys.mjs | 30------------------------------
Mbrowser/components/urlbar/tests/unit/head.js | 13+++++++++++++
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);