<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[288264] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/288264">288264</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2022-01-19 18:05:52 -0800 (Wed, 19 Jan 2022)</dd>
</dl>

<h3>Log Message</h3>
<pre>Align our qualified name validation with the specification
https://bugs.webkit.org/show_bug.cgi?id=201699

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

* web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt:
* web-platform-tests/dom/nodes/Document-createElementNS-expected.txt:
Rebaseline WPT tests now that more checks are passing.

Source/WebCore:

Align our qualified name validation with the latest specification:
- https://dom.spec.whatwg.org/#validate
- https://www.w3.org/TR/xml/#NT-NameStartChar

No new tests, rebaselined existing tests.

* dom/Document.cpp:
(WebCore::isValidNameStart):
(WebCore::isValidNamePart):

LayoutTests:

* dom/xhtml/level3/core/canonicalform06-expected.txt:
* dom/xhtml/level3/core/infoset06-expected.txt:
* dom/xhtml/level3/core/infoset07-expected.txt:
* dom/xhtml/level3/core/wellformed01-expected.txt:
* dom/xhtml/level3/core/wellformed02-expected.txt:
* dom/xhtml/level3/core/wellformed03-expected.txt:
* dom/xhtml/level3/core/wellformed04-expected.txt:
Rebaseline outdated imported tests.

* fast/dom/DOMImplementation/createDocument-namespace-err-expected.txt:
* fast/dom/DOMImplementation/createDocument-namespace-err.html:
* fast/dom/Document/createAttributeNS-namespace-err-expected.txt:
* fast/dom/Document/createAttributeNS-namespace-err.html:
* fast/dom/Document/createElement-invalid-names-expected.txt:
* fast/dom/Document/createElement-invalid-names.html:
* fast/dom/Document/createElementNS-namespace-err-expected.txt:
* fast/dom/Document/createElementNS-namespace-err.html:
* fast/dom/Element/setAttributeNS-namespace-err-expected.txt:
* fast/dom/Element/setAttributeNS-namespace-err.html:
* fast/dom/dataset-expected.txt:
* fast/dom/dataset-xhtml-expected.txt:
* fast/dom/dataset-xhtml.xhtml:
* fast/dom/dataset.html:
Update and rebaseline outdated WebKit tests.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corecanonicalform06expectedtxt">trunk/LayoutTests/dom/xhtml/level3/core/canonicalform06-expected.txt</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coreinfoset06expectedtxt">trunk/LayoutTests/dom/xhtml/level3/core/infoset06-expected.txt</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coreinfoset07expectedtxt">trunk/LayoutTests/dom/xhtml/level3/core/infoset07-expected.txt</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corewellformed01expectedtxt">trunk/LayoutTests/dom/xhtml/level3/core/wellformed01-expected.txt</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corewellformed02expectedtxt">trunk/LayoutTests/dom/xhtml/level3/core/wellformed02-expected.txt</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corewellformed03expectedtxt">trunk/LayoutTests/dom/xhtml/level3/core/wellformed03-expected.txt</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corewellformed04expectedtxt">trunk/LayoutTests/dom/xhtml/level3/core/wellformed04-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomDOMImplementationcreateDocumentnamespaceerrexpectedtxt">trunk/LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomDOMImplementationcreateDocumentnamespaceerrhtml">trunk/LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err.html</a></li>
<li><a href="#trunkLayoutTestsfastdomDocumentcreateAttributeNSnamespaceerrexpectedtxt">trunk/LayoutTests/fast/dom/Document/createAttributeNS-namespace-err-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomDocumentcreateAttributeNSnamespaceerrhtml">trunk/LayoutTests/fast/dom/Document/createAttributeNS-namespace-err.html</a></li>
<li><a href="#trunkLayoutTestsfastdomDocumentcreateElementinvalidnamesexpectedtxt">trunk/LayoutTests/fast/dom/Document/createElement-invalid-names-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomDocumentcreateElementinvalidnameshtml">trunk/LayoutTests/fast/dom/Document/createElement-invalid-names.html</a></li>
<li><a href="#trunkLayoutTestsfastdomDocumentcreateElementNSnamespaceerrexpectedtxt">trunk/LayoutTests/fast/dom/Document/createElementNS-namespace-err-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomDocumentcreateElementNSnamespaceerrhtml">trunk/LayoutTests/fast/dom/Document/createElementNS-namespace-err.html</a></li>
<li><a href="#trunkLayoutTestsfastdomElementsetAttributeNSnamespaceerrexpectedtxt">trunk/LayoutTests/fast/dom/Element/setAttributeNS-namespace-err-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomElementsetAttributeNSnamespaceerrhtml">trunk/LayoutTests/fast/dom/Element/setAttributeNS-namespace-err.html</a></li>
<li><a href="#trunkLayoutTestsfastdomdatasetexpectedtxt">trunk/LayoutTests/fast/dom/dataset-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomdatasetxhtmlexpectedtxt">trunk/LayoutTests/fast/dom/dataset-xhtml-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomdatasetxhtmlxhtml">trunk/LayoutTests/fast/dom/dataset-xhtml.xhtml</a></li>
<li><a href="#trunkLayoutTestsfastdomdatasethtml">trunk/LayoutTests/fast/dom/dataset.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cChangeLog">trunk/LayoutTests/imported/w3c/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDOMImplementationcreateDocumentexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateElementNSexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createElementNS-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoredomDocumentcpp">trunk/Source/WebCore/dom/Document.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog      2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/ChangeLog 2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -1,3 +1,35 @@
</span><ins>+2022-01-19  Chris Dumez  <cdumez@apple.com>
+
+        Align our qualified name validation with the specification
+        https://bugs.webkit.org/show_bug.cgi?id=201699
+
+        Reviewed by Geoffrey Garen.
+
+        * dom/xhtml/level3/core/canonicalform06-expected.txt:
+        * dom/xhtml/level3/core/infoset06-expected.txt:
+        * dom/xhtml/level3/core/infoset07-expected.txt:
+        * dom/xhtml/level3/core/wellformed01-expected.txt:
+        * dom/xhtml/level3/core/wellformed02-expected.txt:
+        * dom/xhtml/level3/core/wellformed03-expected.txt:
+        * dom/xhtml/level3/core/wellformed04-expected.txt:
+        Rebaseline outdated imported tests.
+
+        * fast/dom/DOMImplementation/createDocument-namespace-err-expected.txt:
+        * fast/dom/DOMImplementation/createDocument-namespace-err.html:
+        * fast/dom/Document/createAttributeNS-namespace-err-expected.txt:
+        * fast/dom/Document/createAttributeNS-namespace-err.html:
+        * fast/dom/Document/createElement-invalid-names-expected.txt:
+        * fast/dom/Document/createElement-invalid-names.html:
+        * fast/dom/Document/createElementNS-namespace-err-expected.txt:
+        * fast/dom/Document/createElementNS-namespace-err.html:
+        * fast/dom/Element/setAttributeNS-namespace-err-expected.txt:
+        * fast/dom/Element/setAttributeNS-namespace-err.html:
+        * fast/dom/dataset-expected.txt:
+        * fast/dom/dataset-xhtml-expected.txt:
+        * fast/dom/dataset-xhtml.xhtml:
+        * fast/dom/dataset.html:
+        Update and rebaseline outdated WebKit tests.
+
</ins><span class="cx"> 2022-01-19  Said Abou-Hallawa  <said@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Unreviewed test gardening after after r288183
</span></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corecanonicalform06expectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/dom/xhtml/level3/core/canonicalform06-expected.txt (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/canonicalform06-expected.txt     2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/dom/xhtml/level3/core/canonicalform06-expected.txt        2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -1,2 +1,3 @@
</span><span class="cx"> Test     http://www.w3.org/2001/DOM-Test-Suite/level3/core/canonicalform06
</span><del>-Status Success
</del><ins>+Status  failure
+Message        xml10InvalidName: assertTrue failed
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coreinfoset06expectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/dom/xhtml/level3/core/infoset06-expected.txt (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/infoset06-expected.txt   2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/dom/xhtml/level3/core/infoset06-expected.txt      2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -1,2 +1,3 @@
</span><span class="cx"> Test     http://www.w3.org/2001/DOM-Test-Suite/level3/core/infoset06
</span><del>-Status Success
</del><ins>+Status  failure
+Message        xml10InvalidName: assertTrue failed
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coreinfoset07expectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/dom/xhtml/level3/core/infoset07-expected.txt (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/infoset07-expected.txt   2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/dom/xhtml/level3/core/infoset07-expected.txt      2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -1,2 +1,3 @@
</span><span class="cx"> Test     http://www.w3.org/2001/DOM-Test-Suite/level3/core/infoset07
</span><del>-Status Success
</del><ins>+Status  failure
+Message        xml10InvalidName: assertTrue failed
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corewellformed01expectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/dom/xhtml/level3/core/wellformed01-expected.txt (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/wellformed01-expected.txt        2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/dom/xhtml/level3/core/wellformed01-expected.txt   2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -1,2 +1,3 @@
</span><span class="cx"> Test     http://www.w3.org/2001/DOM-Test-Suite/level3/core/wellformed01
</span><del>-Status Success
</del><ins>+Status  failure
+Message        xml10InvalidName: assertTrue failed
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corewellformed02expectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/dom/xhtml/level3/core/wellformed02-expected.txt (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/wellformed02-expected.txt        2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/dom/xhtml/level3/core/wellformed02-expected.txt   2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -1,2 +1,3 @@
</span><span class="cx"> Test     http://www.w3.org/2001/DOM-Test-Suite/level3/core/wellformed02
</span><del>-Status Success
</del><ins>+Status  failure
+Message        xml10InvalidName: assertTrue failed
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corewellformed03expectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/dom/xhtml/level3/core/wellformed03-expected.txt (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/wellformed03-expected.txt        2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/dom/xhtml/level3/core/wellformed03-expected.txt   2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -1,2 +1,3 @@
</span><span class="cx"> Test     http://www.w3.org/2001/DOM-Test-Suite/level3/core/wellformed03
</span><del>-Status Success
</del><ins>+Status  failure
+Message        xml10InvalidName: assertTrue failed
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corewellformed04expectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/dom/xhtml/level3/core/wellformed04-expected.txt (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/wellformed04-expected.txt        2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/dom/xhtml/level3/core/wellformed04-expected.txt   2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -1,2 +1,3 @@
</span><span class="cx"> Test     http://www.w3.org/2001/DOM-Test-Suite/level3/core/wellformed04
</span><del>-Status Success
</del><ins>+Status  failure
+Message        xml10InvalidName: assertTrue failed
</ins></span></pre></div>
<a id="trunkLayoutTestsfastdomDOMImplementationcreateDocumentnamespaceerrexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err-expected.txt (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err-expected.txt   2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err-expected.txt      2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -35,8 +35,8 @@
</span><span class="cx"> PASS createDocument("http://example.com/", "a:0", null); valid XML name, not a valid QName; threw INVALID_CHARACTER_ERR
</span><span class="cx"> PASS createDocument("http://example.com/", "0:a", null); 0 at start makes it not a valid XML name; threw INVALID_CHARACTER_ERR
</span><span class="cx"> PASS createDocument("http://example.com/", "a:_", null)
</span><del>-PASS createDocument("http://example.com/", "a:ெ", null); non-ASCII character after colon is CombiningChar, which is NCNameChar but not (Letter | "_") so invalid at start of NCName (but still a valid XML name, hence not INVALID_CHARACTER_ERR); threw INVALID_CHARACTER_ERR
-PASS createDocument("http://example.com/", "ெ:a", null); non-ASCII character after colon is CombiningChar, which is NCNameChar but not (Letter | "_") so invalid at start of NCName (Gecko chooses to throw NAMESPACE_ERR here, but either is valid as this is both an invalid XML name and an invalid QName); threw INVALID_CHARACTER_ERR
</del><ins>+PASS createDocument("http://example.com/", "a:;", null); non-ASCII character after colon is CombiningChar, which is NCNameChar but not (Letter | "_") so invalid at start of NCName (but still a valid XML name, hence not INVALID_CHARACTER_ERR); threw INVALID_CHARACTER_ERR
+PASS createDocument("http://example.com/", ";:a", null); non-ASCII character after colon is CombiningChar, which is NCNameChar but not (Letter | "_") so invalid at start of NCName (Gecko chooses to throw NAMESPACE_ERR here, but either is valid as this is both an invalid XML name and an invalid QName); threw INVALID_CHARACTER_ERR
</ins><span class="cx"> PASS createDocument("http://example.com/", "a:aெ", null)
</span><span class="cx"> PASS createDocument("http://example.com/", "aெ:a", null)
</span><span class="cx"> PASS createDocument("http://example.com/", "xml:test", null); binding xml prefix wrong; threw NAMESPACE_ERR
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomDOMImplementationcreateDocumentnamespaceerrhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err.html (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err.html   2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err.html      2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -78,11 +78,11 @@
</span><span class="cx">    { args: ["http://example.com/", "a:0"], code: 5, message: "valid XML name, not a valid QName" },
</span><span class="cx">    { args: ["http://example.com/", "0:a"], code: 5, message: "0 at start makes it not a valid XML name" },
</span><span class="cx">    { args: ["http://example.com/", "a:_"] },
</span><del>-   { args: ["http://example.com/", "a:\u0BC6"], code: 5,
</del><ins>+   { args: ["http://example.com/", "a:\u037E"], code: 5,
</ins><span class="cx">      message: "non-ASCII character after colon is CombiningChar, which is " +
</span><span class="cx">               "NCNameChar but not (Letter | \"_\") so invalid at start of " +
</span><span class="cx">               "NCName (but still a valid XML name, hence not INVALID_CHARACTER_ERR)" },
</span><del>-   { args: ["http://example.com/", "\u0BC6:a"], code: 5,
</del><ins>+   { args: ["http://example.com/", "\u037E:a"], code: 5,
</ins><span class="cx">      message: "non-ASCII character after colon is CombiningChar, which is " +
</span><span class="cx">               "NCNameChar but not (Letter | \"_\") so invalid at start of " +
</span><span class="cx">               "NCName (Gecko chooses to throw NAMESPACE_ERR here, but either is valid " +
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomDocumentcreateAttributeNSnamespaceerrexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/Document/createAttributeNS-namespace-err-expected.txt (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Document/createAttributeNS-namespace-err-expected.txt 2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/fast/dom/Document/createAttributeNS-namespace-err-expected.txt    2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -35,8 +35,8 @@
</span><span class="cx"> PASS createAttributeNS("http://example.com/", "a:0"); valid XML name, not a valid QName; threw INVALID_CHARACTER_ERR
</span><span class="cx"> PASS createAttributeNS("http://example.com/", "0:a"); 0 at start makes it not a valid XML name; threw INVALID_CHARACTER_ERR
</span><span class="cx"> PASS createAttributeNS("http://example.com/", "a:_")
</span><del>-FAIL createAttributeNS("http://example.com/", "a:ெ"); non-ASCII character after colon is CombiningChar, which is NCNameChar but not (Letter | "_") so invalid at start of NCName (but still a valid XML name, hence not INVALID_CHARACTER_ERR); expected NAMESPACE_ERR, threw INVALID_CHARACTER_ERR
-PASS createAttributeNS("http://example.com/", "ெ:a"); non-ASCII character after colon is CombiningChar, which is NCNameChar but not (Letter | "_") so invalid at start of NCName (Gecko chooses to throw NAMESPACE_ERR here, but either is valid as this is both an invalid XML name and an invalid QName); threw INVALID_CHARACTER_ERR
</del><ins>+FAIL createAttributeNS("http://example.com/", "a:;"); non-ASCII character after colon is CombiningChar, which is NCNameChar but not (Letter | "_") so invalid at start of NCName (but still a valid XML name, hence not INVALID_CHARACTER_ERR); expected NAMESPACE_ERR, threw INVALID_CHARACTER_ERR
+PASS createAttributeNS("http://example.com/", ";:a"); non-ASCII character after colon is CombiningChar, which is NCNameChar but not (Letter | "_") so invalid at start of NCName (Gecko chooses to throw NAMESPACE_ERR here, but either is valid as this is both an invalid XML name and an invalid QName); threw INVALID_CHARACTER_ERR
</ins><span class="cx"> PASS createAttributeNS("http://example.com/", "a:aெ")
</span><span class="cx"> PASS createAttributeNS("http://example.com/", "aெ:a")
</span><span class="cx"> PASS createAttributeNS("http://example.com/", "xml:test"); binding xml prefix wrong; threw NAMESPACE_ERR
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomDocumentcreateAttributeNSnamespaceerrhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/Document/createAttributeNS-namespace-err.html (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Document/createAttributeNS-namespace-err.html 2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/fast/dom/Document/createAttributeNS-namespace-err.html    2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -72,11 +72,11 @@
</span><span class="cx">    { args: ["http://example.com/", "a:0"], code: 5, message: "valid XML name, not a valid QName" },
</span><span class="cx">    { args: ["http://example.com/", "0:a"], code: 5, message: "0 at start makes it not a valid XML name" },
</span><span class="cx">    { args: ["http://example.com/", "a:_"] },
</span><del>-   { args: ["http://example.com/", "a:\u0BC6"], code: 14,
</del><ins>+   { args: ["http://example.com/", "a:\u037E"], code: 14,
</ins><span class="cx">      message: "non-ASCII character after colon is CombiningChar, which is " +
</span><span class="cx">               "NCNameChar but not (Letter | \"_\") so invalid at start of " +
</span><span class="cx">               "NCName (but still a valid XML name, hence not INVALID_CHARACTER_ERR)" },
</span><del>-   { args: ["http://example.com/", "\u0BC6:a"], code: 5,
</del><ins>+   { args: ["http://example.com/", "\u037E:a"], code: 5,
</ins><span class="cx">      message: "non-ASCII character after colon is CombiningChar, which is " +
</span><span class="cx">               "NCNameChar but not (Letter | \"_\") so invalid at start of " +
</span><span class="cx">               "NCName (Gecko chooses to throw NAMESPACE_ERR here, but either is valid " +
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomDocumentcreateElementinvalidnamesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/Document/createElement-invalid-names-expected.txt (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Document/createElement-invalid-names-expected.txt     2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/fast/dom/Document/createElement-invalid-names-expected.txt        2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -8,13 +8,9 @@
</span><span class="cx"> PASS document.createElement('-Ascii') threw exception InvalidCharacterError: The string contains invalid characters..
</span><span class="cx"> PASS document.createElement(' ascii') threw exception InvalidCharacterError: The string contains invalid characters..
</span><span class="cx"> PASS document.createElement('    ascii') threw exception InvalidCharacterError: The string contains invalid characters..
</span><del>-PASS document.createElement('֑sc.ii') threw exception InvalidCharacterError: The string contains invalid characters..
-PASS document.createElement('⃣scii') threw exception InvalidCharacterError: The string contains invalid characters..
-PASS document.createElement('िascii') threw exception InvalidCharacterError: The string contains invalid characters..
-PASS document.createElement('ʳascii') threw exception InvalidCharacterError: The string contains invalid characters..
</del><ins>+PASS document.createElement(';ascii') threw exception InvalidCharacterError: The string contains invalid characters..
</ins><span class="cx"> PASS document.createElement('asc i') threw exception InvalidCharacterError: The string contains invalid characters..
</span><span class="cx"> PASS document.createElement('asc i') threw exception InvalidCharacterError: The string contains invalid characters..
</span><del>-PASS document.createElement('asciiⅦ') threw exception InvalidCharacterError: The string contains invalid characters..
</del><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomDocumentcreateElementinvalidnameshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/Document/createElement-invalid-names.html (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Document/createElement-invalid-names.html     2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/fast/dom/Document/createElement-invalid-names.html        2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -15,14 +15,10 @@
</span><span class="cx">                 '-Ascii',
</span><span class="cx">                 ' ascii',
</span><span class="cx">                 '        ascii',
</span><del>-                '֑sc.ii',
-                '⃣scii',
-                'िascii',
-                'ʳascii',
</del><ins>+                '\u037Eascii',
</ins><span class="cx">                 // Invalid other char
</span><span class="cx">                 'asc i',
</span><span class="cx">                 'asc     i',
</span><del>-                'asciiⅦ'
</del><span class="cx">                 ];
</span><span class="cx"> 
</span><span class="cx"> for (var i in nameList)
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomDocumentcreateElementNSnamespaceerrexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/Document/createElementNS-namespace-err-expected.txt (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Document/createElementNS-namespace-err-expected.txt   2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/fast/dom/Document/createElementNS-namespace-err-expected.txt      2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -36,8 +36,8 @@
</span><span class="cx"> PASS createElementNS("http://example.com/", "a:0"); valid XML name, not a valid QName; threw INVALID_CHARACTER_ERR
</span><span class="cx"> PASS createElementNS("http://example.com/", "0:a"); 0 at start makes it not a valid XML name; threw INVALID_CHARACTER_ERR
</span><span class="cx"> PASS createElementNS("http://example.com/", "a:_")
</span><del>-FAIL createElementNS("http://example.com/", "a:ெ"); non-ASCII character after colon is CombiningChar, which is NCNameChar but not (Letter | "_") so invalid at start of NCName (but still a valid XML name, hence not INVALID_CHARACTER_ERR); expected NAMESPACE_ERR, threw INVALID_CHARACTER_ERR
-PASS createElementNS("http://example.com/", "ெ:a"); non-ASCII character after colon is CombiningChar, which is NCNameChar but not (Letter | "_") so invalid at start of NCName (Gecko chooses to throw NAMESPACE_ERR here, but either is valid as this is both an invalid XML name and an invalid QName); threw INVALID_CHARACTER_ERR
</del><ins>+FAIL createElementNS("http://example.com/", "a:;"); non-ASCII character after colon is CombiningChar, which is NCNameChar but not (Letter | "_") so invalid at start of NCName (but still a valid XML name, hence not INVALID_CHARACTER_ERR); expected NAMESPACE_ERR, threw INVALID_CHARACTER_ERR
+PASS createElementNS("http://example.com/", ";:a"); non-ASCII character after colon is CombiningChar, which is NCNameChar but not (Letter | "_") so invalid at start of NCName (Gecko chooses to throw NAMESPACE_ERR here, but either is valid as this is both an invalid XML name and an invalid QName); threw INVALID_CHARACTER_ERR
</ins><span class="cx"> PASS createElementNS("http://example.com/", "a:aெ")
</span><span class="cx"> PASS createElementNS("http://example.com/", "aெ:a")
</span><span class="cx"> PASS createElementNS("http://example.com/", "xml:test"); binding xml prefix wrong; threw NAMESPACE_ERR
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx"> PASS createElement("0:a"); 0 at start makes it not a valid XML name; threw INVALID_CHARACTER_ERR
</span><span class="cx"> PASS createElement("a:_")
</span><span class="cx"> PASS createElement("a:ெ"); non-ASCII character after colon is CombiningChar, which is valid in pre-namespace XML
</span><del>-PASS createElement("ெ:a"); not a valid start character; threw INVALID_CHARACTER_ERR
</del><ins>+PASS createElement(";:a"); not a valid start character; threw INVALID_CHARACTER_ERR
</ins><span class="cx"> PASS createElement("a:aெ")
</span><span class="cx"> PASS createElement("aெ:a")
</span><span class="cx"> PASS createElement("xml:test")
</span><span class="lines">@@ -95,7 +95,7 @@
</span><span class="cx"> PASS createElement("0:a"); 0 at start makes it not a valid XML name; threw INVALID_CHARACTER_ERR
</span><span class="cx"> PASS createElement("a:_")
</span><span class="cx"> PASS createElement("a:ெ"); non-ASCII character after colon is CombiningChar, which is valid in pre-namespace XML
</span><del>-PASS createElement("ெ:a"); not a valid start character; threw INVALID_CHARACTER_ERR
</del><ins>+PASS createElement(";:a"); not a valid start character; threw INVALID_CHARACTER_ERR
</ins><span class="cx"> PASS createElement("a:aெ")
</span><span class="cx"> PASS createElement("aெ:a")
</span><span class="cx"> PASS createElement("xml:test")
</span><span class="lines">@@ -124,7 +124,7 @@
</span><span class="cx"> PASS createElement("0:a"); 0 at start makes it not a valid XML name; threw INVALID_CHARACTER_ERR
</span><span class="cx"> PASS createElement("a:_")
</span><span class="cx"> PASS createElement("a:ெ"); non-ASCII character after colon is CombiningChar, which is valid in pre-namespace XML
</span><del>-PASS createElement("ெ:a"); not a valid start character; threw INVALID_CHARACTER_ERR
</del><ins>+PASS createElement(";:a"); not a valid start character; threw INVALID_CHARACTER_ERR
</ins><span class="cx"> PASS createElement("a:aெ")
</span><span class="cx"> PASS createElement("aெ:a")
</span><span class="cx"> PASS createElement("xml:test")
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomDocumentcreateElementNSnamespaceerrhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/Document/createElementNS-namespace-err.html (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Document/createElementNS-namespace-err.html   2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/fast/dom/Document/createElementNS-namespace-err.html      2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -72,11 +72,11 @@
</span><span class="cx">    { args: ["http://example.com/", "a:0"], code: 5, message: "valid XML name, not a valid QName" },
</span><span class="cx">    { args: ["http://example.com/", "0:a"], code: 5, message: "0 at start makes it not a valid XML name" },
</span><span class="cx">    { args: ["http://example.com/", "a:_"] },
</span><del>-   { args: ["http://example.com/", "a:\u0BC6"], code: 14,
</del><ins>+   { args: ["http://example.com/", "a:\u037E"], code: 14,
</ins><span class="cx">      message: "non-ASCII character after colon is CombiningChar, which is " +
</span><span class="cx">               "NCNameChar but not (Letter | \"_\") so invalid at start of " +
</span><span class="cx">               "NCName (but still a valid XML name, hence not INVALID_CHARACTER_ERR)" },
</span><del>-   { args: ["http://example.com/", "\u0BC6:a"], code: 5,
</del><ins>+   { args: ["http://example.com/", "\u037E:a"], code: 5,
</ins><span class="cx">      message: "non-ASCII character after colon is CombiningChar, which is " +
</span><span class="cx">               "NCNameChar but not (Letter | \"_\") so invalid at start of " +
</span><span class="cx">               "NCName (Gecko chooses to throw NAMESPACE_ERR here, but either is valid " +
</span><span class="lines">@@ -114,7 +114,7 @@
</span><span class="cx">    { args: ["a:\u0BC6"],
</span><span class="cx">      message: "non-ASCII character after colon is CombiningChar, which is " +
</span><span class="cx">               "valid in pre-namespace XML" },
</span><del>-   { args: ["\u0BC6:a"], code: 5, message: "not a valid start character" },
</del><ins>+   { args: ["\u037E:a"], code: 5, message: "not a valid start character" },
</ins><span class="cx">    { args: ["a:a\u0BC6"] },
</span><span class="cx">    { args: ["a\u0BC6:a"] },
</span><span class="cx">    { args: ["xml:test"] },
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomElementsetAttributeNSnamespaceerrexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/Element/setAttributeNS-namespace-err-expected.txt (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Element/setAttributeNS-namespace-err-expected.txt     2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/fast/dom/Element/setAttributeNS-namespace-err-expected.txt        2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -36,8 +36,8 @@
</span><span class="cx"> PASS element.setAttributeNS("http://example.com/", "a:0", 'value'); valid XML name, not a valid QName; threw INVALID_CHARACTER_ERR
</span><span class="cx"> PASS element.setAttributeNS("http://example.com/", "0:a", 'value'); 0 at start makes it not a valid XML name; threw INVALID_CHARACTER_ERR
</span><span class="cx"> PASS element.setAttributeNS("http://example.com/", "a:_", 'value')
</span><del>-FAIL element.setAttributeNS("http://example.com/", "a:ெ", 'value'); non-ASCII character after colon is CombiningChar, which is NCNameChar but not (Letter | "_") so invalid at start of NCName (but still a valid XML name, hence not INVALID_CHARACTER_ERR); expected NAMESPACE_ERR, threw INVALID_CHARACTER_ERR
-PASS element.setAttributeNS("http://example.com/", "ெ:a", 'value'); non-ASCII character after colon is CombiningChar, which is NCNameChar but not (Letter | "_") so invalid at start of NCName (Gecko chooses to throw NAMESPACE_ERR here, but either is valid as this is both an invalid XML name and an invalid QName); threw INVALID_CHARACTER_ERR
</del><ins>+FAIL element.setAttributeNS("http://example.com/", "a:;", 'value'); non-ASCII character after colon is CombiningChar, which is NCNameChar but not (Letter | "_") so invalid at start of NCName (but still a valid XML name, hence not INVALID_CHARACTER_ERR); expected NAMESPACE_ERR, threw INVALID_CHARACTER_ERR
+PASS element.setAttributeNS("http://example.com/", ";:a", 'value'); non-ASCII character after colon is CombiningChar, which is NCNameChar but not (Letter | "_") so invalid at start of NCName (Gecko chooses to throw NAMESPACE_ERR here, but either is valid as this is both an invalid XML name and an invalid QName); threw INVALID_CHARACTER_ERR
</ins><span class="cx"> PASS element.setAttributeNS("http://example.com/", "a:aெ", 'value')
</span><span class="cx"> PASS element.setAttributeNS("http://example.com/", "aெ:a", 'value')
</span><span class="cx"> PASS element.setAttributeNS("http://example.com/", "xml:test", 'value'); binding xml prefix wrong; threw NAMESPACE_ERR
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomElementsetAttributeNSnamespaceerrhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/Element/setAttributeNS-namespace-err.html (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Element/setAttributeNS-namespace-err.html     2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/fast/dom/Element/setAttributeNS-namespace-err.html        2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -72,11 +72,11 @@
</span><span class="cx">    { args: ["http://example.com/", "a:0"], code: 5, message: "valid XML name, not a valid QName" },
</span><span class="cx">    { args: ["http://example.com/", "0:a"], code: 5, message: "0 at start makes it not a valid XML name" },
</span><span class="cx">    { args: ["http://example.com/", "a:_"] },
</span><del>-   { args: ["http://example.com/", "a:\u0BC6"], code: 14,
</del><ins>+   { args: ["http://example.com/", "a:\u037E"], code: 14,
</ins><span class="cx">      message: "non-ASCII character after colon is CombiningChar, which is " +
</span><span class="cx">               "NCNameChar but not (Letter | \"_\") so invalid at start of " +
</span><span class="cx">               "NCName (but still a valid XML name, hence not INVALID_CHARACTER_ERR)" },
</span><del>-   { args: ["http://example.com/", "\u0BC6:a"], code: 5,
</del><ins>+   { args: ["http://example.com/", "\u037E:a"], code: 5,
</ins><span class="cx">      message: "non-ASCII character after colon is CombiningChar, which is " +
</span><span class="cx">               "NCNameChar but not (Letter | \"_\") so invalid at start of " +
</span><span class="cx">               "NCName (Gecko chooses to throw NAMESPACE_ERR here, but either is valid " +
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomdatasetexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/dataset-expected.txt (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/dataset-expected.txt  2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/fast/dom/dataset-expected.txt     2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -26,10 +26,10 @@
</span><span class="cx"> PASS testSet('-Foo', 'data---foo') is true
</span><span class="cx"> PASS testSet('', 'data-') is true
</span><span class="cx"> PASS testSet('à', 'data-à') is true
</span><ins>+PASS testSet('foo豈', 'data-foo豈') is true
</ins><span class="cx"> 
</span><span class="cx"> PASS testSet('-foo', 'dummy') threw exception SyntaxError: The string did not match the expected pattern..
</span><span class="cx"> PASS testSet('foo ', 'dummy') threw exception InvalidCharacterError: The string contains invalid characters..
</span><del>-PASS testSet('foo豈', 'dummy') threw exception InvalidCharacterError: The string contains invalid characters..
</del><span class="cx"> 
</span><span class="cx"> PASS testDelete('data-foo', 'foo') is true
</span><span class="cx"> PASS testDelete('data-foo-bar', 'fooBar') is true
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomdatasetxhtmlexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/dataset-xhtml-expected.txt (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/dataset-xhtml-expected.txt    2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/fast/dom/dataset-xhtml-expected.txt       2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -21,10 +21,10 @@
</span><span class="cx"> PASS testSet('-Foo', 'data---foo') is true
</span><span class="cx"> PASS testSet('', 'data-') is true
</span><span class="cx"> PASS testSet('à', 'data-à') is true
</span><ins>+PASS testSet('foo豈', 'data-foo豈') is true
</ins><span class="cx"> 
</span><span class="cx"> PASS testSet('-foo', 'dummy') threw exception SyntaxError: The string did not match the expected pattern..
</span><span class="cx"> PASS testSet('foo ', 'dummy') threw exception InvalidCharacterError: The string contains invalid characters..
</span><del>-PASS testSet('foo豈', 'dummy') threw exception InvalidCharacterError: The string contains invalid characters..
</del><span class="cx"> 
</span><span class="cx"> PASS testDelete('data-foo', 'foo') is true
</span><span class="cx"> PASS testDelete('data-foo-bar', 'fooBar') is true
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomdatasetxhtmlxhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/dataset-xhtml.xhtml (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/dataset-xhtml.xhtml   2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/fast/dom/dataset-xhtml.xhtml      2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -54,11 +54,11 @@
</span><span class="cx"> shouldBeTrue("testSet('-Foo', 'data---foo')");
</span><span class="cx"> shouldBeTrue("testSet('', 'data-')");
</span><span class="cx"> shouldBeTrue("testSet('\xE0', 'data-\xE0')");
</span><ins>+shouldBeTrue("testSet('foo\uF900', 'data-foo\uF900')");
</ins><span class="cx"> debug("");
</span><span class="cx"> 
</span><span class="cx"> shouldThrowErrorName("testSet('-foo', 'dummy')", "SyntaxError");
</span><span class="cx"> shouldThrowErrorName("testSet('foo\x20', 'dummy')", "InvalidCharacterError");
</span><del>-shouldThrowErrorName("testSet('foo\uF900', 'dummy')", "InvalidCharacterError");
</del><span class="cx"> debug("");
</span><span class="cx"> 
</span><span class="cx"> function testDelete(attr, prop)
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomdatasethtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/dataset.html (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/dataset.html  2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/fast/dom/dataset.html     2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -57,11 +57,11 @@
</span><span class="cx"> shouldBeTrue("testSet('-Foo', 'data---foo')");
</span><span class="cx"> shouldBeTrue("testSet('', 'data-')");
</span><span class="cx"> shouldBeTrue("testSet('\xE0', 'data-\xE0')");
</span><ins>+shouldBeTrue("testSet('foo\uF900', 'data-foo\uF900')");
</ins><span class="cx"> debug("");
</span><span class="cx"> 
</span><span class="cx"> shouldThrowErrorName("testSet('-foo', 'dummy')", "SyntaxError");
</span><span class="cx"> shouldThrowErrorName("testSet('foo\x20', 'dummy')", "InvalidCharacterError");
</span><del>-shouldThrowErrorName("testSet('foo\uF900', 'dummy')", "InvalidCharacterError");
</del><span class="cx"> debug("");
</span><span class="cx"> 
</span><span class="cx"> function testDelete(attr, prop)
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/ChangeLog (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/ChangeLog 2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/imported/w3c/ChangeLog    2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2022-01-19  Chris Dumez  <cdumez@apple.com>
+
+        Align our qualified name validation with the specification
+        https://bugs.webkit.org/show_bug.cgi?id=201699
+
+        Reviewed by Geoffrey Garen.
+
+        * web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt:
+        * web-platform-tests/dom/nodes/Document-createElementNS-expected.txt:
+        Rebaseline WPT tests now that more checks are passing.
+
</ins><span class="cx"> 2022-01-19  Tim Nguyen  <ntim@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Add visibility: visible to modal dialogs in UA sheet
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDOMImplementationcreateDocumentexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt        2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt   2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -16,9 +16,9 @@
</span><span class="cx"> PASS createDocument test: null,"foo1",null,null
</span><span class="cx"> PASS createDocument test: metadata for null,"foo1",null
</span><span class="cx"> PASS createDocument test: characterSet aliases for null,"foo1",null
</span><del>-FAIL createDocument test: null,"ெfoo",null,null The string contains invalid characters.
-FAIL createDocument test: metadata for null,"ெfoo",null The string contains invalid characters.
-FAIL createDocument test: characterSet aliases for null,"ெfoo",null The string contains invalid characters.
</del><ins>+PASS createDocument test: null,"ெfoo",null,null
+PASS createDocument test: metadata for null,"ெfoo",null
+PASS createDocument test: characterSet aliases for null,"ெfoo",null
</ins><span class="cx"> PASS createDocument test: null,";foo",null,"INVALID_CHARACTER_ERR"
</span><span class="cx"> PASS createDocument test: null,"}foo",null,"INVALID_CHARACTER_ERR"
</span><span class="cx"> PASS createDocument test: null,"f}oo",null,"INVALID_CHARACTER_ERR"
</span><span class="lines">@@ -112,14 +112,14 @@
</span><span class="cx"> PASS createDocument test: "http://example.com/","a:_",null,null
</span><span class="cx"> PASS createDocument test: metadata for "http://example.com/","a:_",null
</span><span class="cx"> PASS createDocument test: characterSet aliases for "http://example.com/","a:_",null
</span><del>-FAIL createDocument test: "http://example.com/","a:ெ",null,null The string contains invalid characters.
-FAIL createDocument test: metadata for "http://example.com/","a:ெ",null The string contains invalid characters.
-FAIL createDocument test: characterSet aliases for "http://example.com/","a:ெ",null The string contains invalid characters.
</del><ins>+PASS createDocument test: "http://example.com/","a:ெ",null,null
+PASS createDocument test: metadata for "http://example.com/","a:ெ",null
+PASS createDocument test: characterSet aliases for "http://example.com/","a:ெ",null
</ins><span class="cx"> PASS createDocument test: "http://example.com/","a:;",null,"INVALID_CHARACTER_ERR"
</span><span class="cx"> PASS createDocument test: "http://example.com/","a:̀",null,"INVALID_CHARACTER_ERR"
</span><del>-FAIL createDocument test: "http://example.com/","ெ:a",null,null The string contains invalid characters.
-FAIL createDocument test: metadata for "http://example.com/","ெ:a",null The string contains invalid characters.
-FAIL createDocument test: characterSet aliases for "http://example.com/","ெ:a",null The string contains invalid characters.
</del><ins>+PASS createDocument test: "http://example.com/","ெ:a",null,null
+PASS createDocument test: metadata for "http://example.com/","ெ:a",null
+PASS createDocument test: characterSet aliases for "http://example.com/","ெ:a",null
</ins><span class="cx"> PASS createDocument test: "http://example.com/","̀:a",null,"INVALID_CHARACTER_ERR"
</span><span class="cx"> PASS createDocument test: "http://example.com/",";:a",null,"INVALID_CHARACTER_ERR"
</span><span class="cx"> PASS createDocument test: "http://example.com/","a:aெ",null,null
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateElementNSexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createElementNS-expected.txt (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createElementNS-expected.txt        2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createElementNS-expected.txt   2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -17,9 +17,9 @@
</span><span class="cx"> PASS createElementNS test in HTML document: null,"foo1",null
</span><span class="cx"> PASS createElementNS test in XML document: null,"foo1",null
</span><span class="cx"> PASS createElementNS test in XHTML document: null,"foo1",null
</span><del>-FAIL createElementNS test in HTML document: null,"ெfoo",null The string contains invalid characters.
-FAIL createElementNS test in XML document: null,"ெfoo",null The string contains invalid characters.
-FAIL createElementNS test in XHTML document: null,"ெfoo",null The string contains invalid characters.
</del><ins>+PASS createElementNS test in HTML document: null,"ெfoo",null
+PASS createElementNS test in XML document: null,"ெfoo",null
+PASS createElementNS test in XHTML document: null,"ெfoo",null
</ins><span class="cx"> PASS createElementNS test in HTML document: null,";foo","INVALID_CHARACTER_ERR"
</span><span class="cx"> PASS createElementNS test in XML document: null,";foo","INVALID_CHARACTER_ERR"
</span><span class="cx"> PASS createElementNS test in XHTML document: null,";foo","INVALID_CHARACTER_ERR"
</span><span class="lines">@@ -209,9 +209,9 @@
</span><span class="cx"> PASS createElementNS test in HTML document: "http://example.com/","a:_",null
</span><span class="cx"> PASS createElementNS test in XML document: "http://example.com/","a:_",null
</span><span class="cx"> PASS createElementNS test in XHTML document: "http://example.com/","a:_",null
</span><del>-FAIL createElementNS test in HTML document: "http://example.com/","a:ெ",null The string contains invalid characters.
-FAIL createElementNS test in XML document: "http://example.com/","a:ெ",null The string contains invalid characters.
-FAIL createElementNS test in XHTML document: "http://example.com/","a:ெ",null The string contains invalid characters.
</del><ins>+PASS createElementNS test in HTML document: "http://example.com/","a:ெ",null
+PASS createElementNS test in XML document: "http://example.com/","a:ெ",null
+PASS createElementNS test in XHTML document: "http://example.com/","a:ெ",null
</ins><span class="cx"> PASS createElementNS test in HTML document: "http://example.com/","a:;","INVALID_CHARACTER_ERR"
</span><span class="cx"> PASS createElementNS test in XML document: "http://example.com/","a:;","INVALID_CHARACTER_ERR"
</span><span class="cx"> PASS createElementNS test in XHTML document: "http://example.com/","a:;","INVALID_CHARACTER_ERR"
</span><span class="lines">@@ -218,9 +218,9 @@
</span><span class="cx"> PASS createElementNS test in HTML document: "http://example.com/","a:̀","INVALID_CHARACTER_ERR"
</span><span class="cx"> PASS createElementNS test in XML document: "http://example.com/","a:̀","INVALID_CHARACTER_ERR"
</span><span class="cx"> PASS createElementNS test in XHTML document: "http://example.com/","a:̀","INVALID_CHARACTER_ERR"
</span><del>-FAIL createElementNS test in HTML document: "http://example.com/","ெ:a",null The string contains invalid characters.
-FAIL createElementNS test in XML document: "http://example.com/","ெ:a",null The string contains invalid characters.
-FAIL createElementNS test in XHTML document: "http://example.com/","ெ:a",null The string contains invalid characters.
</del><ins>+PASS createElementNS test in HTML document: "http://example.com/","ெ:a",null
+PASS createElementNS test in XML document: "http://example.com/","ெ:a",null
+PASS createElementNS test in XHTML document: "http://example.com/","ெ:a",null
</ins><span class="cx"> PASS createElementNS test in HTML document: "http://example.com/","̀:a","INVALID_CHARACTER_ERR"
</span><span class="cx"> PASS createElementNS test in XML document: "http://example.com/","̀:a","INVALID_CHARACTER_ERR"
</span><span class="cx"> PASS createElementNS test in XHTML document: "http://example.com/","̀:a","INVALID_CHARACTER_ERR"
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog   2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/Source/WebCore/ChangeLog      2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -1,3 +1,20 @@
</span><ins>+2022-01-19  Chris Dumez  <cdumez@apple.com>
+
+        Align our qualified name validation with the specification
+        https://bugs.webkit.org/show_bug.cgi?id=201699
+
+        Reviewed by Geoffrey Garen.
+
+        Align our qualified name validation with the latest specification:
+        - https://dom.spec.whatwg.org/#validate
+        - https://www.w3.org/TR/xml/#NT-NameStartChar
+
+        No new tests, rebaselined existing tests.
+
+        * dom/Document.cpp:
+        (WebCore::isValidNameStart):
+        (WebCore::isValidNamePart):
+
</ins><span class="cx"> 2022-01-19  Alan Bujtas  <zalan@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Turn EUnicodeBidi into an enum class
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.cpp (288263 => 288264)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.cpp    2022-01-20 02:05:09 UTC (rev 288263)
+++ trunk/Source/WebCore/dom/Document.cpp       2022-01-20 02:05:52 UTC (rev 288264)
</span><span class="lines">@@ -397,75 +397,22 @@
</span><span class="cx"> 
</span><span class="cx"> static const Seconds intersectionObserversInitialUpdateDelay { 2000_ms };
</span><span class="cx"> 
</span><del>-// DOM Level 2 says (letters added):
-//
-// a) Name start characters must have one of the categories Ll, Lu, Lo, Lt, Nl.
-// b) Name characters other than Name-start characters must have one of the categories Mc, Me, Mn, Lm, or Nd.
-// c) Characters in the compatibility area (i.e. with character code greater than #xF900 and less than #xFFFE) are not allowed in XML names.
-// d) Characters which have a font or compatibility decomposition (i.e. those with a "compatibility formatting tag" in field 5 of the database -- marked by field 5 beginning with a "<") are not allowed.
-// e) The following characters are treated as name-start characters rather than name characters, because the property file classifies them as Alphabetic: [#x02BB-#x02C1], #x0559, #x06E5, #x06E6.
-// f) Characters #x20DD-#x20E0 are excluded (in accordance with Unicode, section 5.14).
-// g) Character #x00B7 is classified as an extender, because the property list so identifies it.
-// h) Character #x0387 is added as a name character, because #x00B7 is its canonical equivalent.
-// i) Characters ':' and '_' are allowed as name-start characters.
-// j) Characters '-' and '.' are allowed as name characters.
-//
-// It also contains complete tables. If we decide it's better, we could include those instead of the following code.
-
</del><ins>+// https://www.w3.org/TR/xml/#NT-NameStartChar
+// NameStartChar       ::=       ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
</ins><span class="cx"> static inline bool isValidNameStart(UChar32 c)
</span><span class="cx"> {
</span><del>-    // rule (e) above
-    if ((c >= 0x02BB && c <= 0x02C1) || c == 0x559 || c == 0x6E5 || c == 0x6E6)
-        return true;
-
-    // rule (i) above
-    if (c == ':' || c == '_')
-        return true;
-
-    // rules (a) and (f) above
-    if (!(U_GET_GC_MASK(c) & (U_GC_LL_MASK | U_GC_LU_MASK | U_GC_LO_MASK | U_GC_LT_MASK | U_GC_NL_MASK)))
-        return false;
-
-    // rule (c) above
-    if (c >= 0xF900 && c < 0xFFFE)
-        return false;
-
-    // rule (d) above
-    int type = u_getIntPropertyValue(c, UCHAR_DECOMPOSITION_TYPE);
-    if (type == U_DT_FONT || type == U_DT_COMPAT)
-        return false;
-
-    return true;
</del><ins>+    return c == ':' || (c >= 'A' && c <= 'Z') || c == '_' || (c >= 'a' && c <= 'z') || (c >= 0x00C0 && c <= 0x00D6)
+        || (c >= 0x00D8 && c <= 0x00F6) || (c >= 0x00F8 && c <= 0x02FF) || (c >= 0x0370 && c <= 0x037D) || (c >= 0x037F && c <= 0x1FFF)
+        || (c >= 0x200C && c <= 0x200D) || (c >= 0x2070 && c <= 0x218F) || (c >= 0x2C00 && c <= 0x2FeF) || (c >= 0x3001 && c <= 0xD7FF)
+        || (c >= 0xF900 && c <= 0xFDCF) || (c >= 0xFDF0 && c <= 0xFFFD) || (c >= 0x10000 && c <= 0xEFFFF);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+// https://www.w3.org/TR/xml/#NT-NameChar
+// NameChar       ::=       NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
</ins><span class="cx"> static inline bool isValidNamePart(UChar32 c)
</span><span class="cx"> {
</span><del>-    // rules (a), (e), and (i) above
-    if (isValidNameStart(c))
-        return true;
-
-    // rules (g) and (h) above
-    if (c == 0x00B7 || c == 0x0387)
-        return true;
-
-    // rule (j) above
-    if (c == '-' || c == '.')
-        return true;
-
-    // rules (b) and (f) above
-    if (!(U_GET_GC_MASK(c) & (U_GC_M_MASK | U_GC_LM_MASK | U_GC_ND_MASK)))
-        return false;
-
-    // rule (c) above
-    if (c >= 0xF900 && c < 0xFFFE)
-        return false;
-
-    // rule (d) above
-    int type = u_getIntPropertyValue(c, UCHAR_DECOMPOSITION_TYPE);
-    if (type == U_DT_FONT || type == U_DT_COMPAT)
-        return false;
-
-    return true;
</del><ins>+    return isValidNameStart(c) || c == '-' || c == '.' || (c >= '0' && c <= '9') || c == 0x00B7
+        || (c >= 0x0300 && c <= 0x036F) || (c >= 0x203F && c <= 0x2040);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static Widget* widgetForElement(Element* focusedElement)
</span></span></pre>
</div>
</div>

</body>
</html>