From 5d6c5571c4828e4941719a96bcfa8a309f273801 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Wed, 13 Apr 2022 15:50:56 +0200 Subject: [PATCH] LibWeb: Map
 presentational hint to CSS
 white-space:pre-wrap

---
 Userland/Libraries/LibWeb/HTML/HTMLPreElement.cpp | 10 ++++++++++
 Userland/Libraries/LibWeb/HTML/HTMLPreElement.h   |  3 +++
 2 files changed, 13 insertions(+)

diff --git a/Userland/Libraries/LibWeb/HTML/HTMLPreElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLPreElement.cpp
index c21fee9871..b098384bcc 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLPreElement.cpp
+++ b/Userland/Libraries/LibWeb/HTML/HTMLPreElement.cpp
@@ -15,4 +15,14 @@ HTMLPreElement::HTMLPreElement(DOM::Document& document, DOM::QualifiedName quali
 
 HTMLPreElement::~HTMLPreElement() = default;
 
+void HTMLPreElement::apply_presentational_hints(CSS::StyleProperties& style) const
+{
+    HTMLElement::apply_presentational_hints(style);
+
+    for_each_attribute([&](auto const& name, auto const&) {
+        if (name.equals_ignoring_case(HTML::AttributeNames::wrap))
+            style.set_property(CSS::PropertyID::WhiteSpace, CSS::IdentifierStyleValue::create(CSS::ValueID::PreWrap));
+    });
+}
+
 }
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLPreElement.h b/Userland/Libraries/LibWeb/HTML/HTMLPreElement.h
index 9db21317f3..fa8f24887b 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLPreElement.h
+++ b/Userland/Libraries/LibWeb/HTML/HTMLPreElement.h
@@ -16,6 +16,9 @@ public:
 
     HTMLPreElement(DOM::Document&, DOM::QualifiedName);
     virtual ~HTMLPreElement() override;
+
+private:
+    virtual void apply_presentational_hints(CSS::StyleProperties&) const override;
 };
 
 }