<!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>[192296] releases/WebKitGTK/webkit-2.10</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/192296">192296</a></dd>
<dt>Author</dt> <dd>carlosgc@webkit.org</dd>
<dt>Date</dt> <dd>2015-11-11 00:10:06 -0800 (Wed, 11 Nov 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Merge <a href="http://trac.webkit.org/projects/webkit/changeset/192120">r192120</a> - REGRESSION(<a href="http://trac.webkit.org/projects/webkit/changeset/182286">r182286</a>): Tatechuyoko following ruby is drawn too far to the right
https://bugs.webkit.org/show_bug.cgi?id=150923

Reviewed by Zalan Bujtas.

Source/WebCore:

Ever since <a href="http://trac.webkit.org/projects/webkit/changeset/182286">r182286</a>, expansion opportunities in justified ruby were moved to their neighboring
elements (thereby forbidding trailing nor leading expansions inside ruby). However, when the
neighboring element is tatechuyoko, we will erroneously honor the expansion opportunity inside
the tatechuyoko, thereby moving it horizontally.

Tatechuyoko should never have expansion opportunities inside it.

Test: fast/text/ruby-justify-tatechuyoko.html

* rendering/RenderBlockLineLayout.cpp:
(WebCore::expansionBehaviorForInlineTextBox):

LayoutTests:

* fast/text/ruby-justify-tatechuyoko-expected.html: Added.
* fast/text/ruby-justify-tatechuyoko.html: Added.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#releasesWebKitGTKwebkit210LayoutTestsChangeLog">releases/WebKitGTK/webkit-2.10/LayoutTests/ChangeLog</a></li>
<li><a href="#releasesWebKitGTKwebkit210SourceWebCoreChangeLog">releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog</a></li>
<li><a href="#releasesWebKitGTKwebkit210SourceWebCorerenderingRenderBlockLineLayoutcpp">releases/WebKitGTK/webkit-2.10/Source/WebCore/rendering/RenderBlockLineLayout.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#releasesWebKitGTKwebkit210LayoutTestsfasttextrubyjustifytatechuyokoexpectedhtml">releases/WebKitGTK/webkit-2.10/LayoutTests/fast/text/ruby-justify-tatechuyoko-expected.html</a></li>
<li><a href="#releasesWebKitGTKwebkit210LayoutTestsfasttextrubyjustifytatechuyokohtml">releases/WebKitGTK/webkit-2.10/LayoutTests/fast/text/ruby-justify-tatechuyoko.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="releasesWebKitGTKwebkit210LayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.10/LayoutTests/ChangeLog (192295 => 192296)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.10/LayoutTests/ChangeLog        2015-11-11 07:21:23 UTC (rev 192295)
+++ releases/WebKitGTK/webkit-2.10/LayoutTests/ChangeLog        2015-11-11 08:10:06 UTC (rev 192296)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2015-11-06  Myles C. Maxfield  &lt;mmaxfield@apple.com&gt;
+
+        REGRESSION(r182286): Tatechuyoko following ruby is drawn too far to the right
+        https://bugs.webkit.org/show_bug.cgi?id=150923
+
+        Reviewed by Zalan Bujtas.
+
+        * fast/text/ruby-justify-tatechuyoko-expected.html: Added.
+        * fast/text/ruby-justify-tatechuyoko.html: Added.
+
</ins><span class="cx"> 2015-11-06  Mario Sanchez Prada  &lt;mario@endlessm.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Layout Test accessibility/win/linked-elements.html is crashing on win debug
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit210LayoutTestsfasttextrubyjustifytatechuyokoexpectedhtml"></a>
<div class="addfile"><h4>Added: releases/WebKitGTK/webkit-2.10/LayoutTests/fast/text/ruby-justify-tatechuyoko-expected.html (0 => 192296)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.10/LayoutTests/fast/text/ruby-justify-tatechuyoko-expected.html                                (rev 0)
+++ releases/WebKitGTK/webkit-2.10/LayoutTests/fast/text/ruby-justify-tatechuyoko-expected.html        2015-11-11 08:10:06 UTC (rev 192296)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset=&quot;UTF-8&quot;&gt;
+&lt;/head&gt;
+&lt;body&gt;
+This test makes sure that tatechuyoko which directly follows ruby is properly left-aligned.
+&lt;div style=&quot;text-align: justify; max-height: 7em; font-size: 40px; -webkit-writing-mode: vertical-rl;&quot; lang=&quot;ja&quot;&gt;この文章&lt;span style=&quot;-webkit-text-combine: horizontal;&quot;&gt;99&lt;/span&gt;は斜下付サンプルです。&lt;/div&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">Property changes on: releases/WebKitGTK/webkit-2.10/LayoutTests/fast/text/ruby-justify-tatechuyoko-expected.html
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svnexecutable"></a>
<div class="addfile"><h4>Added: svn:executable</h4></div>
<a id="releasesWebKitGTKwebkit210LayoutTestsfasttextrubyjustifytatechuyokohtml"></a>
<div class="addfile"><h4>Added: releases/WebKitGTK/webkit-2.10/LayoutTests/fast/text/ruby-justify-tatechuyoko.html (0 => 192296)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.10/LayoutTests/fast/text/ruby-justify-tatechuyoko.html                                (rev 0)
+++ releases/WebKitGTK/webkit-2.10/LayoutTests/fast/text/ruby-justify-tatechuyoko.html        2015-11-11 08:10:06 UTC (rev 192296)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset=&quot;UTF-8&quot;&gt;
+&lt;/head&gt;
+&lt;body&gt;
+This test makes sure that tatechuyoko which directly follows ruby is properly left-aligned.
+&lt;div style=&quot;text-align: justify; max-height: 7em; font-size: 40px; -webkit-writing-mode: vertical-rl;&quot; lang=&quot;ja&quot;&gt;この&lt;ruby&gt;文章&lt;rt style=&quot;color: white;&quot;&gt;ルビ&lt;/rt&gt;&lt;/ruby&gt;&lt;span style=&quot;-webkit-text-combine: horizontal;&quot;&gt;99&lt;/span&gt;は斜下付サンプルです。&lt;/div&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">Property changes on: releases/WebKitGTK/webkit-2.10/LayoutTests/fast/text/ruby-justify-tatechuyoko.html
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svnexecutable"></a>
<div class="addfile"><h4>Added: svn:executable</h4></div>
<a id="releasesWebKitGTKwebkit210SourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog (192295 => 192296)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog        2015-11-11 07:21:23 UTC (rev 192295)
+++ releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog        2015-11-11 08:10:06 UTC (rev 192296)
</span><span class="lines">@@ -1,3 +1,22 @@
</span><ins>+2015-11-06  Myles C. Maxfield  &lt;mmaxfield@apple.com&gt;
+
+        REGRESSION(r182286): Tatechuyoko following ruby is drawn too far to the right
+        https://bugs.webkit.org/show_bug.cgi?id=150923
+
+        Reviewed by Zalan Bujtas.
+
+        Ever since r182286, expansion opportunities in justified ruby were moved to their neighboring
+        elements (thereby forbidding trailing nor leading expansions inside ruby). However, when the
+        neighboring element is tatechuyoko, we will erroneously honor the expansion opportunity inside
+        the tatechuyoko, thereby moving it horizontally.
+
+        Tatechuyoko should never have expansion opportunities inside it.
+
+        Test: fast/text/ruby-justify-tatechuyoko.html
+
+        * rendering/RenderBlockLineLayout.cpp:
+        (WebCore::expansionBehaviorForInlineTextBox):
+
</ins><span class="cx"> 2015-11-06  Mario Sanchez Prada  &lt;mario@endlessm.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Layout Test accessibility/win/linked-elements.html is crashing on win debug
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit210SourceWebCorerenderingRenderBlockLineLayoutcpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.10/Source/WebCore/rendering/RenderBlockLineLayout.cpp (192295 => 192296)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.10/Source/WebCore/rendering/RenderBlockLineLayout.cpp        2015-11-11 07:21:23 UTC (rev 192295)
+++ releases/WebKitGTK/webkit-2.10/Source/WebCore/rendering/RenderBlockLineLayout.cpp        2015-11-11 08:10:06 UTC (rev 192296)
</span><span class="lines">@@ -719,12 +719,15 @@
</span><span class="cx"> 
</span><span class="cx"> static inline ExpansionBehavior expansionBehaviorForInlineTextBox(RenderBlockFlow&amp; block, InlineTextBox&amp; textBox, BidiRun* previousRun, BidiRun* nextRun, ETextAlign textAlign, bool isAfterExpansion)
</span><span class="cx"> {
</span><ins>+    // Tatechuyoko is modeled as the Object Replacement Character (U+FFFC), which can never have expansion opportunities inside nor intrinsically adjacent to it.
+    if (textBox.renderer().style().textCombine() == TextCombineHorizontal)
+        return ForbidLeadingExpansion | ForbidTrailingExpansion;
+
</ins><span class="cx">     ExpansionBehavior result = 0;
</span><span class="cx">     bool setLeadingExpansion = false;
</span><span class="cx">     bool setTrailingExpansion = false;
</span><span class="cx">     if (textAlign == JUSTIFY) {
</span><del>-        // If the next box is ruby, and we're justifying, and the first box in the ruby base has a leading expansion, and we are a text box, then
-        // force a trailing expansion.
</del><ins>+        // If the next box is ruby, and we're justifying, and the first box in the ruby base has a leading expansion, and we are a text box, then force a trailing expansion.
</ins><span class="cx">         if (nextRun &amp;&amp; is&lt;RenderRubyRun&gt;(nextRun-&gt;renderer()) &amp;&amp; downcast&lt;RenderRubyRun&gt;(nextRun-&gt;renderer()).rubyBase() &amp;&amp; nextRun-&gt;renderer().style().collapseWhiteSpace()) {
</span><span class="cx">             auto&amp; rubyBase = *downcast&lt;RenderRubyRun&gt;(nextRun-&gt;renderer()).rubyBase();
</span><span class="cx">             if (rubyBase.firstRootBox() &amp;&amp; !rubyBase.firstRootBox()-&gt;nextRootBox()) {
</span></span></pre>
</div>
</div>

</body>
</html>