From 088cddaca1be65fa73cf08bacabb01f6354fb3b1 Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Sat, 9 Sep 2023 12:04:30 +0100 Subject: [PATCH] LibWeb: Serialize Display values as a "short display" where possible --- Userland/Libraries/LibWeb/CSS/Display.cpp | 29 +++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/Userland/Libraries/LibWeb/CSS/Display.cpp b/Userland/Libraries/LibWeb/CSS/Display.cpp index d71a37797e4..8b27db12086 100644 --- a/Userland/Libraries/LibWeb/CSS/Display.cpp +++ b/Userland/Libraries/LibWeb/CSS/Display.cpp @@ -13,6 +13,35 @@ String Display::to_string() const StringBuilder builder; switch (m_type) { case Type::OutsideAndInside: + // NOTE: Following the precedence rules of “most backwards-compatible, then shortest”, + // serialization of equivalent display values uses the “Short display” column. + if (*this == Display::from_short(Display::Short::Block)) + return "block"_string; + if (*this == Display::from_short(Display::Short::FlowRoot)) + return "flow-root"_string; + if (*this == Display::from_short(Display::Short::Inline)) + return "inline"_string; + if (*this == Display::from_short(Display::Short::InlineBlock)) + return "inline-block"_string; + if (*this == Display::from_short(Display::Short::RunIn)) + return "run-in"_string; + if (*this == Display::from_short(Display::Short::ListItem)) + return "list-item"_string; + if (*this == Display::from_short(Display::Short::Flex)) + return "flex"_string; + if (*this == Display::from_short(Display::Short::InlineFlex)) + return "inline-flex"_string; + if (*this == Display::from_short(Display::Short::Grid)) + return "grid"_string; + if (*this == Display::from_short(Display::Short::InlineGrid)) + return "inline-grid"_string; + if (*this == Display::from_short(Display::Short::Ruby)) + return "ruby"_string; + if (*this == Display::from_short(Display::Short::Table)) + return "table"_string; + if (*this == Display::from_short(Display::Short::InlineTable)) + return "inline-table"_string; + switch (m_value.outside_inside.outside) { case Outside::Block: builder.append("block"sv);