From 10c75a682c45d3067f2feee8511d79999cc28818 Mon Sep 17 00:00:00 2001 From: Lata Date: Mon, 27 Mar 2023 21:46:02 +0000 Subject: [PATCH] Bug 1790780 - The options of a select do not honor text-transform. r=emilio Differential Revision: https://phabricator.services.mozilla.com/D173607 --- browser/base/content/test/forms/browser.ini | 3 ++ .../browser_selectpopup_text_transform.js | 40 +++++++++++++++++++ toolkit/actors/SelectChild.sys.mjs | 1 + toolkit/actors/SelectParent.sys.mjs | 1 + 4 files changed, 45 insertions(+) create mode 100644 browser/base/content/test/forms/browser_selectpopup_text_transform.js diff --git a/browser/base/content/test/forms/browser.ini b/browser/base/content/test/forms/browser.ini index c8aa0702d0a7..8ac0f1f963c3 100644 --- a/browser/base/content/test/forms/browser.ini +++ b/browser/base/content/test/forms/browser.ini @@ -14,5 +14,8 @@ skip-if = os == "linux" # Bug 1329991 - test fails intermittently on Linux build [browser_selectpopup_dir.js] [browser_selectpopup_large.js] [browser_selectpopup_searchfocus.js] +[browser_selectpopup_text_transform.js] [browser_selectpopup_user_input.js] [browser_selectpopup_width.js] + + diff --git a/browser/base/content/test/forms/browser_selectpopup_text_transform.js b/browser/base/content/test/forms/browser_selectpopup_text_transform.js new file mode 100644 index 000000000000..5b5f0d3137bb --- /dev/null +++ b/browser/base/content/test/forms/browser_selectpopup_text_transform.js @@ -0,0 +1,40 @@ +const PAGE = ` + + +`; + +add_task(async function() { + await SpecialPowers.pushPrefEnv({ + set: [["dom.forms.select.customstyling", true]], + }); + const url = "data:text/html," + encodeURI(PAGE); + await BrowserTestUtils.withNewTab( + { + gBrowser, + url, + }, + async function(browser) { + let popup = await openSelectPopup("click"); + let menuitems = popup.querySelectorAll("menuitem"); + is(menuitems[0].textContent, "abc", "Option text should be lowercase"); + is(menuitems[1].textContent, "defg", "Option text should be lowercase"); + + let optionStyle = getComputedStyle(menuitems[0]); + is( + optionStyle.textTransform, + "uppercase", + "Option text should be transformed to uppercase" + ); + + optionStyle = getComputedStyle(menuitems[1]); + is( + optionStyle.textTransform, + "uppercase", + "Option text should be transformed to uppercase" + ); + } + ); +}); diff --git a/toolkit/actors/SelectChild.sys.mjs b/toolkit/actors/SelectChild.sys.mjs index 70b7ffa8fcef..e3647321d72e 100644 --- a/toolkit/actors/SelectChild.sys.mjs +++ b/toolkit/actors/SelectChild.sys.mjs @@ -22,6 +22,7 @@ const SUPPORTED_OPTION_OPTGROUP_PROPERTIES = [ "color", "background-color", "text-shadow", + "text-transform", "font-family", "font-weight", "font-size", diff --git a/toolkit/actors/SelectParent.sys.mjs b/toolkit/actors/SelectParent.sys.mjs index 092f21328009..69979b87ff02 100644 --- a/toolkit/actors/SelectParent.sys.mjs +++ b/toolkit/actors/SelectParent.sys.mjs @@ -42,6 +42,7 @@ const SUPPORTED_OPTION_OPTGROUP_PROPERTIES = [ "color", "background-color", "text-shadow", + "text-transform", "font-family", "font-weight", "font-size",