diff --git a/devtools/shared/css/generated/properties-db.js b/devtools/shared/css/generated/properties-db.js index 8227254aae92..957ef7944b13 100644 --- a/devtools/shared/css/generated/properties-db.js +++ b/devtools/shared/css/generated/properties-db.js @@ -6756,15 +6756,9 @@ exports.CSS_PROPERTIES = { "supports": [], "values": [ "-moz-button", - "-moz-desktop", - "-moz-dialog", - "-moz-document", "-moz-field", - "-moz-info", "-moz-list", "-moz-pull-down-menu", - "-moz-window", - "-moz-workspace", "all-petite-caps", "all-small-caps", "bold", diff --git a/gfx/thebes/gfxMacPlatformFontList.mm b/gfx/thebes/gfxMacPlatformFontList.mm index 9284a96fe603..5fa1b977dcbb 100644 --- a/gfx/thebes/gfxMacPlatformFontList.mm +++ b/gfx/thebes/gfxMacPlatformFontList.mm @@ -1866,9 +1866,6 @@ void gfxMacPlatformFontList::LookupSystemFont(LookAndFeel::FontID aSystemFontID, break; case LookAndFeel::FontID::Icon: // used in urlbar; tried labelFont, but too small - case LookAndFeel::FontID::MozWorkspace: - case LookAndFeel::FontID::MozDesktop: - case LookAndFeel::FontID::MozInfo: font = [NSFont controlContentFontOfSize:0.0]; systemFontName = (char*)kSystemFont_system; break; @@ -1880,7 +1877,6 @@ void gfxMacPlatformFontList::LookupSystemFont(LookAndFeel::FontID aSystemFontID, case LookAndFeel::FontID::Caption: case LookAndFeel::FontID::Menu: - case LookAndFeel::FontID::MozDialog: default: font = [NSFont systemFontOfSize:0.0]; systemFontName = (char*)kSystemFont_system; diff --git a/layout/forms/test/test_unstyled_control_height.html b/layout/forms/test/test_unstyled_control_height.html index 9b0b33763ce6..ad5cd125d25f 100644 --- a/layout/forms/test/test_unstyled_control_height.html +++ b/layout/forms/test/test_unstyled_control_height.html @@ -10,9 +10,9 @@ /* Reduce the width so that container can fit all its children in 600px viewport width. */ width: 100px; } - input[type=date] { - /* date by default uses a monospace font, which might have different metrics */ - font: -moz-field; + /* date by default uses a monospace font, which might have different metrics */ + input, button, select { + font: Menu; } .small-font * { font-size: 8px !important; /* important to override rule above */ diff --git a/layout/style/crashtests/1382672.html b/layout/style/crashtests/1382672.html index 9e8eea5baec6..86526e840eb8 100644 --- a/layout/style/crashtests/1382672.html +++ b/layout/style/crashtests/1382672.html @@ -4,7 +4,7 @@ diff --git a/layout/style/test/property_database.js b/layout/style/test/property_database.js index e27fc0b9dd88..db30f627cf1e 100644 --- a/layout/style/test/property_database.js +++ b/layout/style/test/property_database.js @@ -5544,17 +5544,6 @@ var gCSSProperties = { "message-box", "small-caption", "status-bar", - // Gecko-specific system fonts - "-moz-window", - "-moz-document", - "-moz-desktop", - "-moz-info", - "-moz-dialog", - "-moz-button", - "-moz-pull-down-menu", - "-moz-list", - "-moz-field", - "-moz-workspace", // line-height with calc() "condensed bold italic small-caps 24px/calc(2px) Times New Roman, serif", "condensed bold italic small-caps 24px/calc(50%) Times New Roman, serif", diff --git a/layout/style/test/test_non_content_accessible_values.html b/layout/style/test/test_non_content_accessible_values.html index 2e0786fc3f71..7ba1cf9f05e1 100644 --- a/layout/style/test/test_non_content_accessible_values.html +++ b/layout/style/test/test_non_content_accessible_values.html @@ -22,6 +22,12 @@ const NON_CONTENT_ACCESSIBLE_VALUES = { "-moz-box", "-moz-inline-box", ], + "font": [ + "-moz-pull-down-menu", + "-moz-button", + "-moz-list", + "-moz-field", + ], "-moz-appearance": [ "button-arrow-down", "button-arrow-next", diff --git a/layout/style/test/test_value_storage.html b/layout/style/test/test_value_storage.html index b1d483d92b74..542cad91ed42 100644 --- a/layout/style/test/test_value_storage.html +++ b/layout/style/test/test_value_storage.html @@ -48,24 +48,18 @@ * cserialize. */ -var gSystemFont = { - "caption": true, - "icon": true, - "menu": true, - "message-box": true, - "small-caption": true, - "status-bar": true, - "-moz-window": true, - "-moz-document": true, - "-moz-desktop": true, - "-moz-info": true, - "-moz-dialog": true, - "-moz-button": true, - "-moz-pull-down-menu": true, - "-moz-list": true, - "-moz-field": true, - "-moz-workspace": true, -}; +var gSystemFont = [ + "caption", + "icon", + "menu", + "message-box", + "small-caption", + "status-bar", + "-moz-button", + "-moz-pull-down-menu", + "-moz-list", + "-moz-field", +]; var gBadCompute = { // output wrapped around to positive, in exponential notation @@ -154,7 +148,7 @@ function test_property(property) function test_value(value, resolved_value) { var value_has_variable_reference = resolved_value != null; - var is_system_font = property == "font" && value in gSystemFont; + var is_system_font = property == "font" && gSystemFont.includes(value); var colon = ": "; gDeclaration.setProperty(property, value, ""); diff --git a/servo/components/style/properties/shorthands/font.mako.rs b/servo/components/style/properties/shorthands/font.mako.rs index 4faa1b98076e..d373204220ed 100644 --- a/servo/components/style/properties/shorthands/font.mako.rs +++ b/servo/components/style/properties/shorthands/font.mako.rs @@ -69,7 +69,7 @@ let mut stretch = None; let size; % if engine == "gecko": - if let Ok(sys) = input.try_parse(SystemFont::parse) { + if let Ok(sys) = input.try_parse(|i| SystemFont::parse(context, i)) { return Ok(expanded! { % for name in SYSTEM_FONT_LONGHANDS: ${name}: ${name}::SpecifiedValue::system_font(sys), diff --git a/servo/components/style/values/specified/font.rs b/servo/components/style/values/specified/font.rs index 1a37f26c250c..cd61737bf085 100644 --- a/servo/components/style/values/specified/font.rs +++ b/servo/components/style/values/specified/font.rs @@ -70,21 +70,29 @@ macro_rules! system_font_methods { )] #[allow(missing_docs)] pub enum SystemFont { + /// https://drafts.csswg.org/css-fonts/#valdef-font-caption Caption, + /// https://drafts.csswg.org/css-fonts/#valdef-font-icon Icon, + /// https://drafts.csswg.org/css-fonts/#valdef-font-menu Menu, + /// https://drafts.csswg.org/css-fonts/#valdef-font-message-box MessageBox, + /// https://drafts.csswg.org/css-fonts/#valdef-font-small-caption SmallCaption, + /// https://drafts.csswg.org/css-fonts/#valdef-font-status-bar StatusBar, - MozWindow, - MozDocument, - MozWorkspace, - MozDesktop, - MozInfo, - MozDialog, - MozButton, + /// Internal system font, used by the ``s on macOS. + #[parse(condition = "ParserContext::in_ua_or_chrome_sheet")] MozPullDownMenu, + /// Internal system font, used for `