From 5c132724ea93117a367f280a558980df828b4440 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 28 Oct 2021 01:50:19 +0200 Subject: [PATCH] LibWeb: Properly handle the attribute When valid, this attribute needs to result in an IdentifierStyleValue. Before this change we were turning it into a StringStyleValue, which then defaulted to left alignment for all values. For "center" and "middle", we turn it into -libweb-center. All other values are passed verbatim to the CSS parser. --- .../Libraries/LibWeb/HTML/HTMLTableCellElement.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTableCellElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLTableCellElement.cpp index 81c7446c78..68186fcc8b 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLTableCellElement.cpp +++ b/Userland/Libraries/LibWeb/HTML/HTMLTableCellElement.cpp @@ -28,10 +28,13 @@ void HTMLTableCellElement::apply_presentational_hints(CSS::StyleProperties& styl return; } if (name == HTML::AttributeNames::align) { - if (value.equals_ignoring_case("center") || value.equals_ignoring_case("middle")) - style.set_property(CSS::PropertyID::TextAlign, StringView("-libweb-center")); - else - style.set_property(CSS::PropertyID::TextAlign, value.view()); + if (value.equals_ignoring_case("center"sv) || value.equals_ignoring_case("middle"sv)) { + style.set_property(CSS::PropertyID::TextAlign, CSS::IdentifierStyleValue::create(CSS::ValueID::LibwebCenter)); + } else { + CSS::Parser parser(CSS::ParsingContext(document()), value.view()); + if (auto parsed_value = parser.parse_as_css_value(CSS::PropertyID::TextAlign)) + style.set_property(CSS::PropertyID::TextAlign, parsed_value.release_nonnull()); + } return; } if (name == HTML::AttributeNames::width) {