1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 05:57:44 +00:00

LibWeb: Use the prefix passed to Document.createElementNS()

1% progression on ACID3. :^)
This commit is contained in:
Andreas Kling 2022-02-25 21:29:12 +01:00
parent fa17776a51
commit fb11741f20
2 changed files with 11 additions and 4 deletions

View file

@ -89,11 +89,18 @@
namespace Web::DOM { namespace Web::DOM {
NonnullRefPtr<Element> create_element(Document& document, const FlyString& tag_name, const FlyString& namespace_) NonnullRefPtr<Element> create_element(Document& document, FlyString tag_name, FlyString namespace_)
{ {
auto lowercase_tag_name = tag_name.to_lowercase(); auto lowercase_tag_name = tag_name.to_lowercase();
// FIXME: Add prefix when we support it.
auto qualified_name = QualifiedName(tag_name, {}, namespace_); FlyString prefix;
auto parts = tag_name.view().split_view(':');
if (parts.size() > 1) {
prefix = parts[0];
tag_name = tag_name.view().substring_view_starting_from_substring(parts[1]);
}
auto qualified_name = QualifiedName(tag_name, prefix, namespace_);
if (lowercase_tag_name == HTML::TagNames::a) if (lowercase_tag_name == HTML::TagNames::a)
return adopt_ref(*new HTML::HTMLAnchorElement(document, move(qualified_name))); return adopt_ref(*new HTML::HTMLAnchorElement(document, move(qualified_name)));
if (lowercase_tag_name == HTML::TagNames::area) if (lowercase_tag_name == HTML::TagNames::area)

View file

@ -10,6 +10,6 @@
namespace Web::DOM { namespace Web::DOM {
NonnullRefPtr<Element> create_element(Document&, const FlyString& tag_name, const FlyString& namespace_); NonnullRefPtr<Element> create_element(Document&, FlyString tag_name, FlyString namespace_);
} }