<!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>[204648] 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/204648">204648</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2016-08-19 12:44:01 -0700 (Fri, 19 Aug 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Attr.prefix / Element.prefix attribute should be readonly
https://bugs.webkit.org/show_bug.cgi?id=160998

Reviewed by Daniel Bates.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/dom/interfaces-expected.txt:

Source/WebCore:

Attr.prefix / Element.prefix attribute should be readonly:
- https://dom.spec.whatwg.org/#element
- https://dom.spec.whatwg.org/#attr

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing test.

* dom/Attr.idl:
* dom/Element.idl:

LayoutTests:

Update existing tests to reflect behavior change and drop a few
outdated tests.

* fast/dom/Element/prefix-setter-exception-expected.txt: Removed.
* fast/dom/Element/prefix-setter-exception.html: Removed.
* fast/dom/Element/setAttributeNode-case-insensitivity.html:
* fast/dom/bad-href-attribute-expected.txt: Removed.
* fast/dom/bad-href-attribute.html: Removed.
* fast/dom/node-prefix-setter-namespace-exception-expected.txt: Removed.
* fast/dom/node-prefix-setter-namespace-exception.html: Removed.
* fast/dom/script-tests/node-prefix-setter-namespace-exception.js: Removed.
* svg/custom/xlink-prefix-generation-in-attributes-expected.txt:
* svg/custom/xlink-prefix-generation-in-attributes.html:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfastdomElementsetAttributeNodecaseinsensitivityhtml">trunk/LayoutTests/fast/dom/Element/setAttributeNode-case-insensitivity.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cChangeLog">trunk/LayoutTests/imported/w3c/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdominterfacesexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt</a></li>
<li><a href="#trunkLayoutTestssvgcustomxlinkprefixgenerationinattributesexpectedtxt">trunk/LayoutTests/svg/custom/xlink-prefix-generation-in-attributes-expected.txt</a></li>
<li><a href="#trunkLayoutTestssvgcustomxlinkprefixgenerationinattributeshtml">trunk/LayoutTests/svg/custom/xlink-prefix-generation-in-attributes.html</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoredomAttridl">trunk/Source/WebCore/dom/Attr.idl</a></li>
<li><a href="#trunkSourceWebCoredomElementidl">trunk/Source/WebCore/dom/Element.idl</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfastdomElementprefixsetterexceptionexpectedtxt">trunk/LayoutTests/fast/dom/Element/prefix-setter-exception-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomElementprefixsetterexceptionhtml">trunk/LayoutTests/fast/dom/Element/prefix-setter-exception.html</a></li>
<li><a href="#trunkLayoutTestsfastdombadhrefattributeexpectedtxt">trunk/LayoutTests/fast/dom/bad-href-attribute-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdombadhrefattributehtml">trunk/LayoutTests/fast/dom/bad-href-attribute.html</a></li>
<li><a href="#trunkLayoutTestsfastdomnodeprefixsetternamespaceexceptionexpectedtxt">trunk/LayoutTests/fast/dom/node-prefix-setter-namespace-exception-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomnodeprefixsetternamespaceexceptionhtml">trunk/LayoutTests/fast/dom/node-prefix-setter-namespace-exception.html</a></li>
<li><a href="#trunkLayoutTestsfastdomscripttestsnodeprefixsetternamespaceexceptionjs">trunk/LayoutTests/fast/dom/script-tests/node-prefix-setter-namespace-exception.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (204647 => 204648)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-08-19 19:33:58 UTC (rev 204647)
+++ trunk/LayoutTests/ChangeLog        2016-08-19 19:44:01 UTC (rev 204648)
</span><span class="lines">@@ -1,3 +1,24 @@
</span><ins>+2016-08-19  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Attr.prefix / Element.prefix attribute should be readonly
+        https://bugs.webkit.org/show_bug.cgi?id=160998
+
+        Reviewed by Daniel Bates.
+
+        Update existing tests to reflect behavior change and drop a few
+        outdated tests.
+
+        * fast/dom/Element/prefix-setter-exception-expected.txt: Removed.
+        * fast/dom/Element/prefix-setter-exception.html: Removed.
+        * fast/dom/Element/setAttributeNode-case-insensitivity.html:
+        * fast/dom/bad-href-attribute-expected.txt: Removed.
+        * fast/dom/bad-href-attribute.html: Removed.
+        * fast/dom/node-prefix-setter-namespace-exception-expected.txt: Removed.
+        * fast/dom/node-prefix-setter-namespace-exception.html: Removed.
+        * fast/dom/script-tests/node-prefix-setter-namespace-exception.js: Removed.
+        * svg/custom/xlink-prefix-generation-in-attributes-expected.txt:
+        * svg/custom/xlink-prefix-generation-in-attributes.html:
+
</ins><span class="cx"> 2016-08-19  Nan Wang  &lt;n_wang@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         AX: iOS, Wrong axLabel on static text if heading has multiple children
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomElementprefixsetterexceptionexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/dom/Element/prefix-setter-exception-expected.txt (204647 => 204648)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Element/prefix-setter-exception-expected.txt        2016-08-19 19:33:58 UTC (rev 204647)
+++ trunk/LayoutTests/fast/dom/Element/prefix-setter-exception-expected.txt        2016-08-19 19:44:01 UTC (rev 204648)
</span><span class="lines">@@ -1,27 +0,0 @@
</span><del>-Test for the implementation of DOM Level 3 Core API on Node Interface: prefix setter. INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the Document.xmlVersion attribute. http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-NodeNSPrefix
-
-On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
-
-
-PASS prefixedElem.prefix = &quot;.&quot; threw exception InvalidCharacterError (DOM Exception 5): The string contains invalid characters..
-PASS prefixedElem.prefix is &quot;before&quot;
-PASS prefixedElem.prefix = &quot;x.&quot; is &quot;x.&quot;
-PASS prefixedElem.prefix is &quot;x.&quot;
-PASS prefixedElem.prefix = &quot;0a&quot; threw exception InvalidCharacterError (DOM Exception 5): The string contains invalid characters..
-PASS prefixedElem.prefix is &quot;before&quot;
-PASS prefixedElem.prefix = &quot;a0&quot; is &quot;a0&quot;
-PASS prefixedElem.prefix is &quot;a0&quot;
-PASS prefixedElem.prefix = &quot;_0&quot; is &quot;_0&quot;
-PASS prefixedElem.prefix is &quot;_0&quot;
-PASS prefixedElem.prefix = &quot;×&quot; threw exception InvalidCharacterError (DOM Exception 5): The string contains invalid characters..
-PASS prefixedElem.prefix is &quot;before&quot;
-PASS prefixedElem.prefix = &quot;·&quot; threw exception InvalidCharacterError (DOM Exception 5): The string contains invalid characters..
-PASS prefixedElem.prefix is &quot;before&quot;
-PASS prefixedElem.prefix = &quot;aa&quot; is &quot;aa&quot;
-PASS prefixedElem.prefix is &quot;aa&quot;
-PASS prefixedElem.prefix = &quot;\n&quot; threw exception InvalidCharacterError (DOM Exception 5): The string contains invalid characters..
-PASS prefixedElem.prefix is &quot;before&quot;
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
</del></span></pre></div>
<a id="trunkLayoutTestsfastdomElementprefixsetterexceptionhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/dom/Element/prefix-setter-exception.html (204647 => 204648)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Element/prefix-setter-exception.html        2016-08-19 19:33:58 UTC (rev 204647)
+++ trunk/LayoutTests/fast/dom/Element/prefix-setter-exception.html        2016-08-19 19:44:01 UTC (rev 204648)
</span><span class="lines">@@ -1,38 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
-&lt;head&gt;
-&lt;title&gt;DOM L3 Core: Node Interface prefix property setter&lt;/title&gt;
-&lt;/head&gt;
-&lt;body&gt;
-&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-&lt;script&gt;
-description('Test for the implementation of DOM Level 3 Core API on Node Interface: prefix setter. INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the Document.xmlVersion attribute.  &lt;a href=&quot;http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-NodeNSPrefix&quot;&gt;http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-NodeNSPrefix&lt;/a&gt;');
-
-var prefixedElem = document.createElementNS(&quot;ns1&quot;, &quot;pre1:foo&quot;);
-document.body.appendChild(prefixedElem);
-
-function test(prefix, expectedToThrow) {
-    prefixedElem.prefix = &quot;before&quot;;
-    if (expectedToThrow) {
-        shouldThrow('prefixedElem.prefix = ' + prefix);
-        shouldBe('prefixedElem.prefix', '&quot;before&quot;');
-    } else {
-        shouldBe('prefixedElem.prefix = ' + prefix, prefix);
-        shouldBe('prefixedElem.prefix', prefix);
-    }
-}
-
-test('&quot;.&quot;', true);
-test('&quot;x.&quot;', false);
-test('&quot;0a&quot;', true);
-test('&quot;a0&quot;', false);
-test('&quot;_0&quot;', false);
-test('&quot;\xD7&quot;', true);
-test('&quot;\xB7&quot;', true);
-test('&quot;aa&quot;', false);
-test('&quot;\\n&quot;', true);
-&lt;/script&gt;
-&lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
-
</del></span></pre></div>
<a id="trunkLayoutTestsfastdomElementsetAttributeNodecaseinsensitivityhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/Element/setAttributeNode-case-insensitivity.html (204647 => 204648)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Element/setAttributeNode-case-insensitivity.html        2016-08-19 19:33:58 UTC (rev 204647)
+++ trunk/LayoutTests/fast/dom/Element/setAttributeNode-case-insensitivity.html        2016-08-19 19:44:01 UTC (rev 204648)
</span><span class="lines">@@ -20,12 +20,10 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx">         debug(&quot;Verifying that attributes with the same name but different namespaces are treated as unique entities. For the following test two different attribute values should be returned.&quot;);
</span><del>-        var newAttr1 = document.createAttributeNS(&quot;ns1&quot;, &quot;newattr&quot;);
-        newAttr1.prefix = &quot;prefix1&quot;;
</del><ins>+        var newAttr1 = document.createAttributeNS(&quot;ns1&quot;, &quot;prefix1:newattr&quot;);
</ins><span class="cx">         newAttr1.value = &quot;newattr1&quot;;
</span><span class="cx">         test.setAttributeNode(newAttr1);
</span><del>-        var newAttr2 = document.createAttributeNS(&quot;ns2&quot;, &quot;newattr&quot;);
-        newAttr2.prefix = &quot;prefix2&quot;;
</del><ins>+        var newAttr2 = document.createAttributeNS(&quot;ns2&quot;, &quot;prefix2:newattr&quot;);
</ins><span class="cx">         newAttr2.value = &quot;newattr2&quot;;
</span><span class="cx">         test.setAttributeNode(newAttr2);
</span><span class="cx">         shouldBe(&quot;test.getAttributeNodeNS('ns1', 'newattr').value&quot;, &quot;'newattr1'&quot;);
</span><span class="lines">@@ -32,8 +30,7 @@
</span><span class="cx">         shouldBe(&quot;test.getAttributeNodeNS('ns2', 'newattr').value&quot;, &quot;'newattr2'&quot;);
</span><span class="cx"> 
</span><span class="cx">         debug(&quot;Verifying that attributes with same name but different case and having same namespaces are treated as same. In the following test the new attribute should overwrite the value of the existing one.&quot;);
</span><del>-        var newAttr3 = document.createAttributeNS(&quot;ns1&quot;, &quot;NEWATTR&quot;);
-        newAttr3.prefix = &quot;prefix2&quot;;
</del><ins>+        var newAttr3 = document.createAttributeNS(&quot;ns1&quot;, &quot;prefix2:NEWATTR&quot;);
</ins><span class="cx">         newAttr3.value = &quot;newattr3&quot;;
</span><span class="cx">         test.setAttributeNode(newAttr3);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastdombadhrefattributeexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/dom/bad-href-attribute-expected.txt (204647 => 204648)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/bad-href-attribute-expected.txt        2016-08-19 19:33:58 UTC (rev 204647)
+++ trunk/LayoutTests/fast/dom/bad-href-attribute-expected.txt        2016-08-19 19:44:01 UTC (rev 204648)
</span><span class="lines">@@ -1,6 +0,0 @@
</span><del>-Test that you can't set a prefix for a node with null namespace.
-
-Should say PASS:
-
-PASS
-
</del></span></pre></div>
<a id="trunkLayoutTestsfastdombadhrefattributehtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/dom/bad-href-attribute.html (204647 => 204648)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/bad-href-attribute.html        2016-08-19 19:33:58 UTC (rev 204647)
+++ trunk/LayoutTests/fast/dom/bad-href-attribute.html        2016-08-19 19:44:01 UTC (rev 204648)
</span><span class="lines">@@ -1,31 +0,0 @@
</span><del>-&lt;body&gt;
-&lt;p&gt;Test that you can't set a prefix for a node with null namespace.&lt;/p&gt;
-&lt;p&gt;Should say PASS:&lt;/p&gt;
-&lt;pre id = log&gt;&lt;/pre&gt;
-&lt;script&gt;
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-function log(msg)
-{
-    document.getElementById(&quot;log&quot;).innerHTML += msg + &quot;\n&quot;;
-}
-
-var a = document.createElement(&quot;a&quot;);
-var attr = document.createAttribute(&quot;href&quot;);
-attr.value = &quot;#&quot;;
-
-try {
-    attr.prefix = &quot;foo&quot;;
-    log(&quot;FAIL: Was able to change the prefix.&quot;);
-} catch (ex) {
-    log(&quot;PASS&quot;);
-}
-    
-a.setAttributeNode(attr);
-
-// WebKit used to crash with an assertion here.
-a.href;
-
-&lt;/script&gt;
-&lt;/body&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfastdomnodeprefixsetternamespaceexceptionexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/dom/node-prefix-setter-namespace-exception-expected.txt (204647 => 204648)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/node-prefix-setter-namespace-exception-expected.txt        2016-08-19 19:33:58 UTC (rev 204647)
+++ trunk/LayoutTests/fast/dom/node-prefix-setter-namespace-exception-expected.txt        2016-08-19 19:44:01 UTC (rev 204648)
</span><span class="lines">@@ -1,18 +0,0 @@
</span><del>-Test how Node.prefix setter raises NAMESPACE_ERR.
-
-On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
-
-
-PASS href.prefix is null
-PASS document.createAttribute('attr').prefix = 'abc' threw exception NamespaceError (DOM Exception 14): The operation is not allowed by Namespaces in XML..
-PASS document.createAttributeNS(null, 'attr').prefix = 'abc' threw exception NamespaceError (DOM Exception 14): The operation is not allowed by Namespaces in XML..
-PASS document.createElementNS(null, 'attr').prefix = 'abc' threw exception NamespaceError (DOM Exception 14): The operation is not allowed by Namespaces in XML..
-PASS document.createAttributeNS('foo', 'bar').prefix = 'xml' threw exception NamespaceError (DOM Exception 14): The operation is not allowed by Namespaces in XML..
-PASS document.createElementNS('foo', 'bar').prefix = 'xml' threw exception NamespaceError (DOM Exception 14): The operation is not allowed by Namespaces in XML..
-PASS document.createAttribute('attr').prefix = 'xmlns' threw exception NamespaceError (DOM Exception 14): The operation is not allowed by Namespaces in XML..
-PASS document.createAttributeNS('foo', 'attr').prefix = 'xmlns' threw exception NamespaceError (DOM Exception 14): The operation is not allowed by Namespaces in XML..
-PASS document.createAttribute('xmlns').prefix = 'foo' threw exception NamespaceError (DOM Exception 14): The operation is not allowed by Namespaces in XML..
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
</del></span></pre></div>
<a id="trunkLayoutTestsfastdomnodeprefixsetternamespaceexceptionhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/dom/node-prefix-setter-namespace-exception.html (204647 => 204648)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/node-prefix-setter-namespace-exception.html        2016-08-19 19:33:58 UTC (rev 204647)
+++ trunk/LayoutTests/fast/dom/node-prefix-setter-namespace-exception.html        2016-08-19 19:44:01 UTC (rev 204648)
</span><span class="lines">@@ -1,10 +0,0 @@
</span><del>-&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-&lt;/head&gt;
-&lt;body&gt;
-&lt;script src=&quot;script-tests/node-prefix-setter-namespace-exception.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfastdomscripttestsnodeprefixsetternamespaceexceptionjs"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/dom/script-tests/node-prefix-setter-namespace-exception.js (204647 => 204648)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/script-tests/node-prefix-setter-namespace-exception.js        2016-08-19 19:33:58 UTC (rev 204647)
+++ trunk/LayoutTests/fast/dom/script-tests/node-prefix-setter-namespace-exception.js        2016-08-19 19:44:01 UTC (rev 204648)
</span><span class="lines">@@ -1,21 +0,0 @@
</span><del>-description(&quot;Test how Node.prefix setter raises NAMESPACE_ERR.&quot;);
-
-var href = document.createAttribute(&quot;href&quot;);
-href.value = &quot;#&quot;;
-
-// Should not throw.
-href.prefix = null;
-
-// Per DOM3 Core spec, setting to empty is implementation dependent.
-// Firefox treats empty like null.
-href.prefix = &quot;&quot;;
-shouldBe(&quot;href.prefix&quot;, &quot;null&quot;);
-
-shouldThrow(&quot;document.createAttribute('attr').prefix = 'abc'&quot;);
-shouldThrow(&quot;document.createAttributeNS(null, 'attr').prefix = 'abc'&quot;);
-shouldThrow(&quot;document.createElementNS(null, 'attr').prefix = 'abc'&quot;);
-shouldThrow(&quot;document.createAttributeNS('foo', 'bar').prefix = 'xml'&quot;);
-shouldThrow(&quot;document.createElementNS('foo', 'bar').prefix = 'xml'&quot;);
-shouldThrow(&quot;document.createAttribute('attr').prefix = 'xmlns'&quot;);
-shouldThrow(&quot;document.createAttributeNS('foo', 'attr').prefix = 'xmlns'&quot;);
-shouldThrow(&quot;document.createAttribute('xmlns').prefix = 'foo'&quot;);
</del></span></pre></div>
<a id="trunkLayoutTestsimportedw3cChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/ChangeLog (204647 => 204648)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/ChangeLog        2016-08-19 19:33:58 UTC (rev 204647)
+++ trunk/LayoutTests/imported/w3c/ChangeLog        2016-08-19 19:44:01 UTC (rev 204648)
</span><span class="lines">@@ -1,5 +1,16 @@
</span><span class="cx"> 2016-08-19  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Attr.prefix / Element.prefix attribute should be readonly
+        https://bugs.webkit.org/show_bug.cgi?id=160998
+
+        Reviewed by Daniel Bates.
+
+        Rebaseline W3C test now that more checks are passing.
+
+        * web-platform-tests/dom/interfaces-expected.txt:
+
+2016-08-19  Chris Dumez  &lt;cdumez@apple.com&gt;
+
</ins><span class="cx">         &lt;command&gt; should be an HTMLUnknownElement and &lt;basefont&gt; should be an HTMLElement
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=161004
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdominterfacesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt (204647 => 204648)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt        2016-08-19 19:33:58 UTC (rev 204647)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt        2016-08-19 19:44:01 UTC (rev 204648)
</span><span class="lines">@@ -733,9 +733,7 @@
</span><span class="cx"> PASS Element interface: existence and properties of interface prototype object 
</span><span class="cx"> PASS Element interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</span><span class="cx"> PASS Element interface: attribute namespaceURI 
</span><del>-FAIL Element interface: attribute prefix assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function &quot;function prefix() {
-    [native code]
-}&quot;
</del><ins>+PASS Element interface: attribute prefix 
</ins><span class="cx"> PASS Element interface: attribute localName 
</span><span class="cx"> PASS Element interface: attribute tagName 
</span><span class="cx"> PASS Element interface: attribute id 
</span><span class="lines">@@ -950,9 +948,7 @@
</span><span class="cx"> FAIL Attr interface: existence and properties of interface prototype object assert_equals: prototype of Attr.prototype is not Object.prototype expected object &quot;[object Object]&quot; but got object &quot;[object NodePrototype]&quot;
</span><span class="cx"> PASS Attr interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</span><span class="cx"> PASS Attr interface: attribute namespaceURI 
</span><del>-FAIL Attr interface: attribute prefix assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function &quot;function prefix() {
-    [native code]
-}&quot;
</del><ins>+PASS Attr interface: attribute prefix 
</ins><span class="cx"> PASS Attr interface: attribute localName 
</span><span class="cx"> PASS Attr interface: attribute name 
</span><span class="cx"> FAIL Attr interface: attribute nodeName assert_own_property: expected property &quot;nodeName&quot; missing
</span></span></pre></div>
<a id="trunkLayoutTestssvgcustomxlinkprefixgenerationinattributesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/svg/custom/xlink-prefix-generation-in-attributes-expected.txt (204647 => 204648)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/custom/xlink-prefix-generation-in-attributes-expected.txt        2016-08-19 19:33:58 UTC (rev 204647)
+++ trunk/LayoutTests/svg/custom/xlink-prefix-generation-in-attributes-expected.txt        2016-08-19 19:44:01 UTC (rev 204648)
</span><span class="lines">@@ -1,4 +1,3 @@
</span><span class="cx"> &lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; NS1:href=&quot;#foo&quot; xmlns:NS1=&quot;http://www.w3.org/1999/xlink&quot;/&gt;
</span><span class="cx"> &lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; NS1:href=&quot;#foo&quot; xmlns:NS1=&quot;http://www.w3.org/1999/xlink&quot;/&gt;
</span><span class="cx"> &lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; xlink:href=&quot;#foo&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot;/&gt;
</span><del>-&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; xlink:href=&quot;#foo&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot;/&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssvgcustomxlinkprefixgenerationinattributeshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/svg/custom/xlink-prefix-generation-in-attributes.html (204647 => 204648)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/custom/xlink-prefix-generation-in-attributes.html        2016-08-19 19:33:58 UTC (rev 204647)
+++ trunk/LayoutTests/svg/custom/xlink-prefix-generation-in-attributes.html        2016-08-19 19:44:01 UTC (rev 204648)
</span><span class="lines">@@ -25,15 +25,8 @@
</span><span class="cx">         xml = serializer.serializeToString(doc);
</span><span class="cx">         document.getElementById(&quot;svgoutput2&quot;).textContent = xml + &quot;\n&quot;;
</span><span class="cx">    
</span><del>-        // Example 3: Attempt to fix the document by setting Node.prefix.  The Node.prefix property should now contain &quot;xlink&quot;.
</del><ins>+        // Example 3: Create the document with prefixes specified.  The Node.prefix property should now contain &quot;xlink&quot;.
</ins><span class="cx">         doc = document.implementation.createDocument(svgns, &quot;svg&quot;, null);
</span><del>-        doc.documentElement.setAttributeNS(xlinkns, &quot;href&quot;, &quot;#foo&quot;);
-        doc.documentElement.attributes[0].prefix = &quot;xlink&quot;;
-        xml = serializer.serializeToString(doc);
-        document.getElementById(&quot;svgoutput3&quot;).textContent = xml + &quot;\n&quot;;
-   
-        // Example 4: Create the document with prefixes specified.  The Node.prefix property should now contain &quot;xlink&quot;.
-        doc = document.implementation.createDocument(svgns, &quot;svg&quot;, null);
</del><span class="cx">         doc.documentElement.setAttributeNS(xlinkns, &quot;xlink:href&quot;, &quot;#foo&quot;);
</span><span class="cx">         xml = serializer.serializeToString(doc);
</span><span class="cx">         document.getElementById(&quot;svgoutput4&quot;).textContent = xml + &quot;\n&quot;;
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (204647 => 204648)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-08-19 19:33:58 UTC (rev 204647)
+++ trunk/Source/WebCore/ChangeLog        2016-08-19 19:44:01 UTC (rev 204648)
</span><span class="lines">@@ -1,5 +1,23 @@
</span><span class="cx"> 2016-08-19  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Attr.prefix / Element.prefix attribute should be readonly
+        https://bugs.webkit.org/show_bug.cgi?id=160998
+
+        Reviewed by Daniel Bates.
+
+        Attr.prefix / Element.prefix attribute should be readonly:
+        - https://dom.spec.whatwg.org/#element
+        - https://dom.spec.whatwg.org/#attr
+
+        Firefox and Chrome agree with the specification.
+
+        No new tests, rebaselined existing test.
+
+        * dom/Attr.idl:
+        * dom/Element.idl:
+
+2016-08-19  Chris Dumez  &lt;cdumez@apple.com&gt;
+
</ins><span class="cx">         &lt;command&gt; should be an HTMLUnknownElement and &lt;basefont&gt; should be an HTMLElement
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=161004
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomAttridl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Attr.idl (204647 => 204648)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Attr.idl        2016-08-19 19:33:58 UTC (rev 204647)
+++ trunk/Source/WebCore/dom/Attr.idl        2016-08-19 19:44:01 UTC (rev 204648)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx">     readonly attribute boolean isId;
</span><span class="cx"> 
</span><span class="cx">     readonly attribute DOMString? namespaceURI;
</span><del>-    [SetterRaisesException] attribute DOMString? prefix;
-    readonly attribute DOMString? localName;
</del><ins>+    readonly attribute DOMString? prefix;
+    readonly attribute DOMString localName;
</ins><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.idl (204647 => 204648)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.idl        2016-08-19 19:33:58 UTC (rev 204647)
+++ trunk/Source/WebCore/dom/Element.idl        2016-08-19 19:44:01 UTC (rev 204648)
</span><span class="lines">@@ -66,8 +66,8 @@
</span><span class="cx">     [Reflect] attribute DOMString id;
</span><span class="cx"> 
</span><span class="cx">     readonly attribute DOMString? namespaceURI;
</span><del>-    [SetterRaisesException] attribute DOMString? prefix;
-    readonly attribute DOMString? localName;
</del><ins>+    readonly attribute DOMString? prefix;
+    readonly attribute DOMString localName;
</ins><span class="cx"> 
</span><span class="cx">     // Common extensions
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>