Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 3c11801b7231c6d98ed1419ed17497da12474002
https://github.com/WebKit/WebKit/commit/3c11801b7231c6d98ed1419ed17497da12474002
Author: Michael[tm] Smith <[email protected]>
Date: 2026-03-08 (Sun, 08 Mar 2026)
Changed paths:
M LayoutTests/fast/dom/dataset-expected.txt
M LayoutTests/fast/dom/dataset-xhtml-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createDocument.html
M
LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createDocumentType-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createAttribute-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createElement-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createElementNS-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createElementNS.html
M
LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createElementNS.js
M
LayoutTests/imported/w3c/web-platform-tests/dom/nodes/attributes-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/dom/nodes/name-validation-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/html/dom/elements/global-attributes/dataset-set-expected.txt
M LayoutTests/platform/glib/http/tests/misc/acid3-expected.txt
M LayoutTests/platform/mac/http/tests/misc/acid3-expected.txt
M Source/WebCore/Headers.cmake
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/dom/DOMImplementation.cpp
M Source/WebCore/dom/Document.cpp
M Source/WebCore/dom/Document.h
M Source/WebCore/dom/Element.cpp
M Source/WebCore/dom/Element.h
A Source/WebCore/dom/NameValidation.cpp
A Source/WebCore/dom/NameValidation.h
M Source/WebCore/dom/Node.cpp
M Source/WebCore/dom/ProcessingInstruction.cpp
M Source/WebCore/editing/EditorCommand.cpp
M Source/WebCore/svg/animation/SVGSMILElement.cpp
M Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp
Log Message:
-----------
Allow more characters in element/attribute names and prefixes
https://bugs.webkit.org/show_bug.cgi?id=241419
Reviewed by Darin Adler.
Implement relaxed name-validation rules per whatwg/dom#1079, whatwg/html#7991,
and whatwg/html#11453. This aligns DOM API name behavior with HTML parser
behavior —
which has always allowed a wider range of characters in element and attribute
names.
New validation functions in NameValidation.h/cpp:
- isValidElementName(): For createElement — allows [A-Za-z] start followed by
any char except null/whitespace/>//, or [:_>=0x80] start with restricted
continuation
- isValidAttributeName(): For setAttribute/toggleAttribute/createAttribute —
no null, whitespace, /, >, or =
- isValidNamespacePrefix(): For *NS methods — no null, whitespace, /, or >
- isValidDoctypeName(): For createDocumentType — no null, whitespace, or >
- isValidXMLName(): Preserves old XML Name production for
createProcessingInstruction
* LayoutTests/fast/dom/dataset-expected.txt:
* LayoutTests/fast/dom/dataset-xhtml-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createDocument.html:
*
LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createDocumentType-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createAttribute-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createElement-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createElementNS-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createElementNS.html:
*
LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createElementNS.js:
* LayoutTests/imported/w3c/web-platform-tests/dom/nodes/attributes-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/dom/nodes/name-validation-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/html/dom/elements/global-attributes/dataset-set-expected.txt:
* LayoutTests/platform/glib/http/tests/misc/acid3-expected.txt:
* LayoutTests/platform/mac/http/tests/misc/acid3-expected.txt:
* Source/WebCore/Headers.cmake:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocumentType):
* Source/WebCore/dom/Document.cpp:
(WebCore::createHTMLElementWithNameValidation):
(WebCore::Document::createElementForBindings):
(WebCore::Document::createProcessingInstruction):
(WebCore::Document::createElementNS):
(WebCore::Document::createAttribute):
(WebCore::Document::createAttributeNS):
(WebCore::isValidNameStart): Deleted.
(WebCore::isValidNamePart): Deleted.
(WebCore::isValidHTMLElementName):
(WebCore::Document::hasValidNamespaceForElements): Deleted.
(WebCore::Document::hasValidNamespaceForAttributes): Deleted.
(WebCore::isValidNameNonASCII): Deleted.
(WebCore::isValidNameASCII): Deleted.
(WebCore::isValidNameASCIIWithoutColon): Deleted.
(WebCore::Document::isValidName): Deleted.
(WebCore::Document::parseQualifiedName): Deleted.
* Source/WebCore/dom/Document.h:
* Source/WebCore/dom/Element.cpp:
(WebCore::Element::toggleAttribute):
(WebCore::Element::setAttribute):
(WebCore::Element::setAttributeNS):
(WebCore::Element::parseAttributeName):
* Source/WebCore/dom/Element.h:
* Source/WebCore/dom/NameValidation.cpp: Added.
(WebCore::NameValidation::isInvalidAttributeNameCharacter):
(WebCore::NameValidation::isInvalidElementNameCharacterAfterAlphaStart):
(WebCore::NameValidation::isValidElementNameContinuationCharacter):
(WebCore::NameValidation::isInvalidNamespacePrefixCharacter):
(WebCore::NameValidation::isInvalidDoctypeNameCharacter):
(WebCore::NameValidation::isValidElementName):
(WebCore::NameValidation::isValidAttributeName):
(WebCore::NameValidation::isValidNamespacePrefix):
(WebCore::NameValidation::isValidDoctypeName):
(WebCore::NameValidation::isValidASCIIXMLName):
(WebCore::NameValidation::isValidXMLNameStart):
(WebCore::NameValidation::isValidXMLNamePart):
(WebCore::NameValidation::isValidXMLName):
(WebCore::NameValidation::parseQualifiedNameToPair):
(WebCore::NameValidation::parseQualifiedElementName):
(WebCore::NameValidation::parseQualifiedAttributeName):
(WebCore::NameValidation::hasValidNamespaceForElements):
(WebCore::NameValidation::hasValidNamespaceForAttributes):
* Source/WebCore/dom/NameValidation.h: Added.
* Source/WebCore/dom/Node.cpp:
(WebCore::Node::checkSetPrefix):
* Source/WebCore/dom/ProcessingInstruction.cpp:
* Source/WebCore/editing/EditorCommand.cpp:
(WebCore::executeFormatBlock):
* Source/WebCore/svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::constructAttributeName const):
* Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::handleNamespaceAttributes):
(WebCore::handleElementAttributes):
Canonical link: https://commits.webkit.org/308884@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications