mirror of
https://github.com/RGBCube/serenity
synced 2025-05-14 11:04:59 +00:00
LibWeb: Port handle_readonly_attribute from DeprecatedFlyString
It's a little awkward that one caller of this is passing through an Optional<String> and another an Optional<DeprecatedString>, but that should be fixed some point in the future with further DeprecatedString porting.
This commit is contained in:
parent
22f6abe5d6
commit
f2e77f7778
2 changed files with 5 additions and 9 deletions
|
@ -447,10 +447,10 @@ static bool is_allowed_to_be_readonly(HTML::HTMLInputElement::TypeAttributeState
|
|||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/input.html#attr-input-readonly
|
||||
void HTMLInputElement::handle_readonly_attribute(DeprecatedFlyString const& value)
|
||||
void HTMLInputElement::handle_readonly_attribute(Optional<String> const& maybe_value)
|
||||
{
|
||||
// The readonly attribute is a boolean attribute that controls whether or not the user can edit the form control. When specified, the element is not mutable.
|
||||
m_is_mutable = !(!value.is_null() && is_allowed_to_be_readonly(m_type));
|
||||
m_is_mutable = !maybe_value.has_value() || !is_allowed_to_be_readonly(m_type);
|
||||
|
||||
if (m_text_node)
|
||||
m_text_node->set_always_editable(m_is_mutable);
|
||||
|
@ -563,11 +563,7 @@ void HTMLInputElement::create_text_input_shadow_tree()
|
|||
// NOTE: file upload state is mutable, but we don't allow the text node to be modifed
|
||||
m_text_node->set_always_editable(false);
|
||||
} else {
|
||||
auto readonly = attribute(HTML::AttributeNames::readonly);
|
||||
if (readonly.has_value())
|
||||
handle_readonly_attribute(readonly->to_deprecated_string());
|
||||
else
|
||||
handle_readonly_attribute({});
|
||||
handle_readonly_attribute(attribute(HTML::AttributeNames::readonly));
|
||||
}
|
||||
|
||||
m_text_node->set_editable_text_node_owner(Badge<HTMLInputElement> {}, *this);
|
||||
|
@ -671,7 +667,7 @@ void HTMLInputElement::attribute_changed(FlyString const& name, Optional<Depreca
|
|||
m_placeholder_text_node->set_data(MUST(String::from_deprecated_string(value.value_or(""))));
|
||||
} else if (name == HTML::AttributeNames::readonly) {
|
||||
if (value.has_value())
|
||||
handle_readonly_attribute(*value);
|
||||
handle_readonly_attribute(MUST(String::from_deprecated_string(*value)));
|
||||
else
|
||||
handle_readonly_attribute({});
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue