mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-29 04:09:13 +00:00
LibWeb/DOM: Update an attribute's node document
Some checks are pending
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (macos-14, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
Some checks are pending
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (macos-14, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
Corresponds to b64559cc08
This commit is contained in:
parent
f7276bfab3
commit
0fcd7f9aea
Notes:
github-actions[bot]
2025-02-23 22:37:41 +00:00
Author: https://github.com/AtkinsSJ
Commit: 0fcd7f9aea
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/3656
Reviewed-by: https://github.com/gmta ✅
7 changed files with 68 additions and 7 deletions
|
@ -237,17 +237,23 @@ void NamedNodeMap::replace_attribute(Attr& old_attribute, Attr& new_attribute, s
|
|||
{
|
||||
VERIFY(old_attribute.owner_element());
|
||||
|
||||
// 1. Replace oldAttr by newAttr in oldAttr’s element’s attribute list.
|
||||
// 1. Let element be oldAttribute’s element.
|
||||
auto* element = old_attribute.owner_element();
|
||||
|
||||
// 2. Replace oldAttribute by newAttribute in element’s attribute list.
|
||||
m_attributes.remove(old_attribute_index);
|
||||
m_attributes.insert(old_attribute_index, new_attribute);
|
||||
|
||||
// 2. Set newAttr’s element to oldAttr’s element.
|
||||
new_attribute.set_owner_element(old_attribute.owner_element());
|
||||
// 3. Set newAttribute’s element to element.
|
||||
new_attribute.set_owner_element(element);
|
||||
|
||||
// 3. Set oldAttr’s element to null.
|
||||
// 4. Set newAttribute’s node document to element’s node document.
|
||||
new_attribute.set_document(Badge<NamedNodeMap> {}, element->document());
|
||||
|
||||
// 5. Set oldAttribute’s element to null.
|
||||
old_attribute.set_owner_element(nullptr);
|
||||
|
||||
// 4. Handle attribute changes for oldAttr with newAttr’s element, oldAttr’s value, and newAttr’s value.
|
||||
// 6. Handle attribute changes for oldAttribute with element, oldAttribute’s value, and newAttribute’s value.
|
||||
old_attribute.handle_attribute_changes(*new_attribute.owner_element(), old_attribute.value(), new_attribute.value());
|
||||
}
|
||||
|
||||
|
@ -260,7 +266,10 @@ void NamedNodeMap::append_attribute(Attr& attribute)
|
|||
// 2. Set attribute’s element to element.
|
||||
attribute.set_owner_element(&associated_element());
|
||||
|
||||
// 3. Handle attribute changes for attribute with element, null, and attribute’s value.
|
||||
// 3. Set attribute’s node document to element’s node document.
|
||||
attribute.set_document(Badge<NamedNodeMap> {}, associated_element().document());
|
||||
|
||||
// 4. Handle attribute changes for attribute with element, null, and attribute’s value.
|
||||
attribute.handle_attribute_changes(associated_element(), {}, attribute.value());
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue