mirror of
https://github.com/fergalmoran/ladybird.git
synced 2025-12-30 13:19:47 +00:00
LibWeb: Update existing style object when setting style attribute
Previously any existing ElementInlineCSSStyleDeclaration would get
overwritten by e.setAttribute("style", ...), while it should be updated
instead.
This fixes 2 WPT subtests.
This commit is contained in:
committed by
Andreas Kling
parent
be3a941f44
commit
aa33acf3a2
@@ -2740,7 +2740,12 @@ void Element::attribute_changed(FlyString const& local_name, Optional<String> co
|
||||
// https://drafts.csswg.org/cssom/#ref-for-cssstyledeclaration-updating-flag
|
||||
if (m_inline_style && m_inline_style->is_updating())
|
||||
return;
|
||||
m_inline_style = parse_css_style_attribute(CSS::Parser::ParsingContext(document()), *value, *this);
|
||||
if (!m_inline_style) {
|
||||
m_inline_style = parse_css_style_attribute(CSS::Parser::ParsingContext(document()), *value, *this);
|
||||
} else {
|
||||
// NOTE: ElementInlineCSSStyleDeclaration::set_css_text should never throw an exception.
|
||||
m_inline_style->set_declarations_from_text(*value);
|
||||
}
|
||||
set_needs_style_update(true);
|
||||
}
|
||||
} else if (local_name == HTML::AttributeNames::dir) {
|
||||
|
||||
Reference in New Issue
Block a user