From 08359ba578d1de6f25dcb4e2b55783ab6067fea9 Mon Sep 17 00:00:00 2001 From: TheFightingCatfish Date: Sat, 31 Jul 2021 18:14:58 +0800 Subject: [PATCH] LibWeb: Fix regression of "contenteditable" attribute --- Base/res/html/misc/welcome.html | 2 +- Userland/Libraries/LibWeb/HTML/HTMLElement.cpp | 4 ++-- Userland/Libraries/LibWeb/HTML/Parser/HTMLToken.h | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Base/res/html/misc/welcome.html b/Base/res/html/misc/welcome.html index 2bae26070a..ab8c91c54b 100644 --- a/Base/res/html/misc/welcome.html +++ b/Base/res/html/misc/welcome.html @@ -1,5 +1,5 @@ - + Welcome! diff --git a/Userland/Libraries/LibWeb/HTML/HTMLElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLElement.cpp index c3144b5649..c6d5ba6205 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLElement.cpp +++ b/Userland/Libraries/LibWeb/HTML/HTMLElement.cpp @@ -34,12 +34,12 @@ HTMLElement::ContentEditableState HTMLElement::content_editable_state() const { auto contenteditable = attribute(HTML::AttributeNames::contenteditable); // "true", an empty string or a missing value map to the "true" state. - if (contenteditable.is_empty() || contenteditable.equals_ignoring_case("true")) + if ((!contenteditable.is_null() && contenteditable.is_empty()) || contenteditable.equals_ignoring_case("true")) return ContentEditableState::True; // "false" maps to the "false" state. if (contenteditable.equals_ignoring_case("false")) return ContentEditableState::False; - // An invalid value maps to the "inherit" state. + // Having no such attribute or an invalid value maps to the "inherit" state. return ContentEditableState::Inherit; } diff --git a/Userland/Libraries/LibWeb/HTML/Parser/HTMLToken.h b/Userland/Libraries/LibWeb/HTML/Parser/HTMLToken.h index 0b5ec1edf1..19077fb367 100644 --- a/Userland/Libraries/LibWeb/HTML/Parser/HTMLToken.h +++ b/Userland/Libraries/LibWeb/HTML/Parser/HTMLToken.h @@ -40,9 +40,9 @@ public: struct Attribute { String prefix; - String local_name; + String local_name { "" }; String namespace_; - String value; + String value { "" }; Position name_start_position; Position value_start_position; Position name_end_position;