<!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>[192016] 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/192016">192016</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2015-11-04 00:10:09 -0800 (Wed, 04 Nov 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Regression(<a href="http://trac.webkit.org/projects/webkit/changeset/191652">r191652</a>): Colloquy doesn’t render any chat content
https://bugs.webkit.org/show_bug.cgi?id=150861
&lt;rdar://problem/23381007&gt;

Reviewed by Antti Koivisto.

Source/WebCore:

Do a partial revert of <a href="http://trac.webkit.org/projects/webkit/changeset/191652">r191652</a> as this web-exposed behavior change
broke Colloquy app. This only reverts the code change, the tests
are left as is so that they don't rely of the frame ID setting the
Window name.

* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::parseAttribute):
(WebCore::HTMLFrameElementBase::setNameAndOpenURL):

LayoutTests:

Update / rebaseline a couple of tests as this patch restores the
pre-<a href="http://trac.webkit.org/projects/webkit/changeset/191652">r191652</a> behavior.

* fast/dom/Window/window-special-properties-expected.txt:
* fast/frames/iframe-no-name-expected.txt:
* fast/frames/iframe-no-name.html:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfastdomWindowwindowspecialpropertiesexpectedtxt">trunk/LayoutTests/fast/dom/Window/window-special-properties-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastframesiframenonameexpectedtxt">trunk/LayoutTests/fast/frames/iframe-no-name-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastframesiframenonamehtml">trunk/LayoutTests/fast/frames/iframe-no-name.html</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLFrameElementBasecpp">trunk/Source/WebCore/html/HTMLFrameElementBase.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (192015 => 192016)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2015-11-04 07:59:16 UTC (rev 192015)
+++ trunk/LayoutTests/ChangeLog        2015-11-04 08:10:09 UTC (rev 192016)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2015-11-04  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Regression(r191652): Colloquy doesn’t render any chat content
+        https://bugs.webkit.org/show_bug.cgi?id=150861
+        &lt;rdar://problem/23381007&gt;
+
+        Reviewed by Antti Koivisto.
+
+        Update / rebaseline a couple of tests as this patch restores the
+        pre-r191652 behavior.
+
+        * fast/dom/Window/window-special-properties-expected.txt:
+        * fast/frames/iframe-no-name-expected.txt:
+        * fast/frames/iframe-no-name.html:
+
</ins><span class="cx"> 2015-11-03  Brady Eidson  &lt;beidson@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Modern IDB: Fill out IDBIndex, create MemoryIndex in backing store.
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomWindowwindowspecialpropertiesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/Window/window-special-properties-expected.txt (192015 => 192016)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Window/window-special-properties-expected.txt        2015-11-04 07:59:16 UTC (rev 192015)
+++ trunk/LayoutTests/fast/dom/Window/window-special-properties-expected.txt        2015-11-04 08:10:09 UTC (rev 192016)
</span><span class="lines">@@ -42,8 +42,8 @@
</span><span class="cx"> Nonexistent iframe name: undefined
</span><span class="cx"> Iframe by name (unique): single WINDOW
</span><span class="cx"> Iframe by name (multiple): single WINDOW
</span><del>-Iframe by id (unique): single IFRAME(id)
-Iframe by id (multiple): collection(2) IFRAME(id) IFRAME(id)
</del><ins>+Iframe by id (unique): single WINDOW
+Iframe by id (multiple): single WINDOW
</ins><span class="cx"> Iframe by id/name mixed: single WINDOW
</span><span class="cx"> 
</span><span class="cx"> Nonexistent span name: undefined
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx"> Span by id (multiple): collection(2) SPAN(id) SPAN(id)
</span><span class="cx"> Span by id/name mixed: collection(2) SPAN(id) SPAN(id)
</span><span class="cx"> 
</span><del>-Mixed by id: collection(7) IMG(id) FORM(id) APPLET(id) EMBED(id) OBJECT(id) IFRAME(id) SPAN(id)
</del><ins>+Mixed by id: single WINDOW
</ins><span class="cx"> Mixed by name: single WINDOW
</span><span class="cx"> Mixed by id (no iframe): collection(6) IMG(id) FORM(id) APPLET(id) EMBED(id) OBJECT(id) SPAN(id)
</span><span class="cx"> Mixed by name (no iframe): collection(5) IMG(name) FORM(name) APPLET(name) EMBED(name) OBJECT(name)
</span></span></pre></div>
<a id="trunkLayoutTestsfastframesiframenonameexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/frames/iframe-no-name-expected.txt (192015 => 192016)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/frames/iframe-no-name-expected.txt        2015-11-04 07:59:16 UTC (rev 192015)
+++ trunk/LayoutTests/fast/frames/iframe-no-name-expected.txt        2015-11-04 08:10:09 UTC (rev 192016)
</span><span class="lines">@@ -3,10 +3,11 @@
</span><span class="cx"> On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-PASS frames[0].name is &quot;&quot;
</del><ins>+PASS frames[0].name is &quot;id&quot;
</ins><span class="cx"> PASS frames[1].name is &quot;name&quot;
</span><span class="cx"> PASS frames[2].name is &quot;name&quot;
</span><ins>+PASS frames[3].name is &quot;name&quot;
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span><del>-  
</del><ins>+   
</ins></span></pre></div>
<a id="trunkLayoutTestsfastframesiframenonamehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/frames/iframe-no-name.html (192015 => 192016)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/frames/iframe-no-name.html        2015-11-04 07:59:16 UTC (rev 192015)
+++ trunk/LayoutTests/fast/frames/iframe-no-name.html        2015-11-04 08:10:09 UTC (rev 192016)
</span><span class="lines">@@ -8,11 +8,13 @@
</span><span class="cx"> &lt;iframe id=&quot;id&quot;&gt;&lt;/iframe&gt;
</span><span class="cx"> &lt;iframe name=&quot;name&quot;&gt;&lt;/iframe&gt;
</span><span class="cx"> &lt;iframe id=&quot;id&quot; name=&quot;name&quot;&gt;&lt;/iframe&gt;
</span><ins>+&lt;iframe name=&quot;name&quot; id=&quot;id&quot;&gt;&lt;/iframe&gt;
</ins><span class="cx"> &lt;script&gt;
</span><span class="cx"> description(&quot;Checks that the id of an iframe does not set the contentWindow's name if the iframe's name is not set.&quot;);
</span><del>-shouldBeEqualToString(&quot;frames[0].name&quot;, &quot;&quot;);
</del><ins>+shouldBeEqualToString(&quot;frames[0].name&quot;, &quot;id&quot;);
</ins><span class="cx"> shouldBeEqualToString(&quot;frames[1].name&quot;, &quot;name&quot;);
</span><span class="cx"> shouldBeEqualToString(&quot;frames[2].name&quot;, &quot;name&quot;);
</span><ins>+shouldBeEqualToString(&quot;frames[3].name&quot;, &quot;name&quot;);
</ins><span class="cx"> &lt;/script&gt;
</span><span class="cx"> &lt;/body&gt;
</span><span class="cx"> &lt;/html&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (192015 => 192016)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-11-04 07:59:16 UTC (rev 192015)
+++ trunk/Source/WebCore/ChangeLog        2015-11-04 08:10:09 UTC (rev 192016)
</span><span class="lines">@@ -1,3 +1,20 @@
</span><ins>+2015-11-04  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Regression(r191652): Colloquy doesn’t render any chat content
+        https://bugs.webkit.org/show_bug.cgi?id=150861
+        &lt;rdar://problem/23381007&gt;
+
+        Reviewed by Antti Koivisto.
+
+        Do a partial revert of r191652 as this web-exposed behavior change
+        broke Colloquy app. This only reverts the code change, the tests
+        are left as is so that they don't rely of the frame ID setting the
+        Window name.
+
+        * html/HTMLFrameElementBase.cpp:
+        (WebCore::HTMLFrameElementBase::parseAttribute):
+        (WebCore::HTMLFrameElementBase::setNameAndOpenURL):
+
</ins><span class="cx"> 2015-11-03  Brady Eidson  &lt;beidson@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Modern IDB: Fill out IDBIndex, create MemoryIndex in backing store.
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFrameElementBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFrameElementBase.cpp (192015 => 192016)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFrameElementBase.cpp        2015-11-04 07:59:16 UTC (rev 192015)
+++ trunk/Source/WebCore/html/HTMLFrameElementBase.cpp        2015-11-04 08:10:09 UTC (rev 192016)
</span><span class="lines">@@ -96,7 +96,12 @@
</span><span class="cx">         setLocation(&quot;about:srcdoc&quot;);
</span><span class="cx">     else if (name == srcAttr &amp;&amp; !fastHasAttribute(srcdocAttr))
</span><span class="cx">         setLocation(stripLeadingAndTrailingHTMLSpaces(value));
</span><del>-    else if (name == nameAttr) {
</del><ins>+    else if (name == idAttr) {
+        HTMLFrameOwnerElement::parseAttribute(name, value);
+        // Falling back to using the 'id' attribute is not standard but some content relies on this behavior.
+        if (!hasAttribute(nameAttr))
+            m_frameName = value;
+    } else if (name == nameAttr) {
</ins><span class="cx">         m_frameName = value;
</span><span class="cx">         // FIXME: If we are already attached, this doesn't actually change the frame's name.
</span><span class="cx">         // FIXME: If we are already attached, this doesn't check for frame name
</span><span class="lines">@@ -121,6 +126,9 @@
</span><span class="cx"> void HTMLFrameElementBase::setNameAndOpenURL()
</span><span class="cx"> {
</span><span class="cx">     m_frameName = getNameAttribute();
</span><ins>+    // Falling back to using the 'id' attribute is not standard but some content relies on this behavior.
+    if (m_frameName.isNull())
+        m_frameName = getIdAttribute();
</ins><span class="cx">     openURL();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>