diff --git a/Libraries/LibWeb/DOM/Node.cpp b/Libraries/LibWeb/DOM/Node.cpp index d24d426e1a4..d9b07a30e65 100644 --- a/Libraries/LibWeb/DOM/Node.cpp +++ b/Libraries/LibWeb/DOM/Node.cpp @@ -1537,7 +1537,8 @@ bool Node::is_editable() const return false; // it does not have a contenteditable attribute set to the false state; - if (is(this) && static_cast(*this).content_editable_state() == HTML::ContentEditableState::False) + auto const* html_element = as_if(*this); + if (html_element && html_element->content_editable_state() == HTML::ContentEditableState::False) return false; // its parent is an editing host or editable; @@ -1551,7 +1552,7 @@ bool Node::is_editable() const return false; // and either it is an HTML element, - if (is(this)) + if (html_element) return true; // or it is an svg or math element, @@ -1566,17 +1567,18 @@ bool Node::is_editable() const bool Node::is_editing_host() const { // NOTE: Both conditions below require this to be an HTML element. - if (!is(this)) + auto const* html_element = as_if(*this); + if (!html_element) return false; // An editing host is either an HTML element with its contenteditable attribute in the true state or // plaintext-only state, - auto state = static_cast(*this).content_editable_state(); + auto state = html_element->content_editable_state(); if (state == HTML::ContentEditableState::True || state == HTML::ContentEditableState::PlaintextOnly) return true; // or a child HTML element of a Document whose design mode enabled is true. - return is(parent()) && static_cast(*parent()).design_mode_enabled_state(); + return is(parent()) && as(*parent()).design_mode_enabled_state(); } // https://w3c.github.io/editing/docs/execCommand/#editing-host-of diff --git a/Libraries/LibWeb/Editing/Commands.cpp b/Libraries/LibWeb/Editing/Commands.cpp index 6f6260cec75..0f3df614ecf 100644 --- a/Libraries/LibWeb/Editing/Commands.cpp +++ b/Libraries/LibWeb/Editing/Commands.cpp @@ -383,7 +383,7 @@ bool command_delete_action(DOM::Document& document, Utf16String const&) // is an hr, or the child is a br whose previousSibling is either a br or not an inline // node: if (offset == 0 && is(offset_minus_one_child.ptr())) { - auto& child_element = static_cast(*offset_minus_one_child); + auto& child_element = as(*offset_minus_one_child); auto* previous_sibling = child_element.previous_sibling(); if (is(child_element) || (is(child_element) && previous_sibling && (is(*previous_sibling) || !is_inline_node(*previous_sibling)))) { @@ -1477,7 +1477,7 @@ bool command_insert_paragraph_action(DOM::Document& document, Utf16String const& // or "div": if (container->is_editable() && is_single_line_container(*container) && is_in_same_editing_host(*container, *node) && is(*container) - && static_cast(*container).local_name().is_one_of(HTML::TagNames::p, HTML::TagNames::div)) { + && as(*container).local_name().is_one_of(HTML::TagNames::p, HTML::TagNames::div)) { // 1. Let outer container equal container. auto outer_container = container; @@ -1486,7 +1486,7 @@ bool command_insert_paragraph_action(DOM::Document& document, Utf16String const& auto is_li_dt_or_dd = [](DOM::Element const& node) { return node.local_name().is_one_of(HTML::TagNames::li, HTML::TagNames::dt, HTML::TagNames::dd); }; - while (!is(*outer_container) || !is_li_dt_or_dd(static_cast(*outer_container))) { + while (!is(*outer_container) || !is_li_dt_or_dd(as(*outer_container))) { auto outer_container_parent = outer_container->parent(); if (!outer_container_parent->is_editable()) break; @@ -1494,7 +1494,7 @@ bool command_insert_paragraph_action(DOM::Document& document, Utf16String const& } // 3. If outer container is a dd or dt or li, set container to outer container. - if (is(*outer_container) && is_li_dt_or_dd(static_cast(*outer_container))) + if (is(*outer_container) && is_li_dt_or_dd(as(*outer_container))) container = outer_container; } diff --git a/Libraries/LibWeb/Editing/Internal/Algorithms.cpp b/Libraries/LibWeb/Editing/Internal/Algorithms.cpp index e0a45627804..ac54bfb5c00 100644 --- a/Libraries/LibWeb/Editing/Internal/Algorithms.cpp +++ b/Libraries/LibWeb/Editing/Internal/Algorithms.cpp @@ -7,7 +7,6 @@ #include #include #include -#include #include #include #include @@ -35,9 +34,7 @@ #include #include #include -#include #include -#include #include #include