Skip to content

Commit 055e8ad

Browse files
mandysGitrvandermeulen
authored andcommitted
Bug 1982959 - Handle accept languages params for URL results from the search config. a=RyanVM DONTBUILD
Original Revision: https://phabricator.services.mozilla.com/D261052 Differential Revision: https://phabricator.services.mozilla.com/D262026
1 parent f6e353f commit 055e8ad

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

toolkit/components/search/SearchEngine.sys.mjs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ const OS_PARAM_COUNT_DEF = "20"; // 20 results
4444
const OS_PARAM_START_INDEX_DEF = "1"; // start at 1st result
4545
const OS_PARAM_START_PAGE_DEF = "1"; // 1st page
4646

47+
const PARAM_ACCEPT_LANGUAGES = "acceptLanguages";
48+
4749
// A array of arrays containing parameters that we don't fully support, and
4850
// their default values. We will only send values for these parameters if
4951
// required, since our values are just really arbitrary "guesses" that should
@@ -163,6 +165,15 @@ function paramSubstitution(paramValue, searchTerms, queryCharset) {
163165
return queryCharset;
164166
}
165167

168+
// Handle languages for URL results.
169+
if (name == PARAM_ACCEPT_LANGUAGES) {
170+
let languages = Services.prefs
171+
.getComplexValue("intl.accept_languages", Ci.nsIPrefLocalizedString)
172+
.data.replace(/\s+/g, "");
173+
174+
return languages || "";
175+
}
176+
166177
// Handle the less common OpenSearch parameters we're confident about.
167178
if (name == OS_PARAM_LANGUAGE) {
168179
return Services.locale.requestedLocale || OS_PARAM_LANGUAGE_DEF;

toolkit/components/search/tests/xpcshell/test_getSubmission_params.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@ const TESTS = [
1818

1919
{ param: "{language}", expected: Services.locale.requestedLocale },
2020
{ param: "{language?}", expected: Services.locale.requestedLocale },
21+
{
22+
param: "{acceptLanguages}",
23+
expected: Services.prefs
24+
.getComplexValue("intl.accept_languages", Ci.nsIPrefLocalizedString)
25+
.data.replace(/\s+/g, ""),
26+
},
2127

2228
{ param: "{inputEncoding}", charset: "UTF-8", expected: "UTF-8" },
2329
{

0 commit comments

Comments
 (0)