<!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>[202271] 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/202271">202271</a></dd>
<dt>Author</dt> <dd>fred.wang@free.fr</dd>
<dt>Date</dt> <dd>2016-06-20 23:28:38 -0700 (Mon, 20 Jun 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Use the MathOperator to handle some non-stretchy operators
https://bugs.webkit.org/show_bug.cgi?id=157519

Patch by Frederic Wang &lt;fwang@igalia.com&gt; on 2016-06-20
Reviewed by Brent Fulgham.

Source/WebCore:

To prepare for the removal of anonymous text node from the render classes of token elements
we use MathOperator to handle two cases where the actual text to display may not be
available in the DOM: mfenced and minus operators. This change removes support for the
case of mfenced operators with multiple characters since that it is not supported by
MathOperator. It is a edge case that is not used in practice since fences and separators are
only made of a single character. However, it would still be possible to duplicate some
code/logic to add it back if that turns out to be necessary.

No new tests, already covered by existing tests.

* rendering/mathml/MathOperator.cpp:
(WebCore::MathOperator::MathOperator): Rename UndefinedOperator.
(WebCore::RenderMathMLOperator::firstLineBaseline): Improve rounding of ascent so that mfenced operators are correctly aligned.
* rendering/mathml/MathOperator.h: Rename UndefinedOperator, since it can now be used to draw non-stretchy operators.
(WebCore::MathOperator::isStretched): Deleted. This function is no longer used by RenderMathMLOperator.
(WebCore::MathOperator::unstretch): Deleted. This function is no longer used by RenderMathMLOperator.
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Use useMathOperator.
(WebCore::RenderMathMLOperator::rebuildTokenContent): Set the MathOperator when useMathOperator() is true.
When the operator is not likely to stretch we just leave its type as NormalOperator.
(WebCore::RenderMathMLOperator::useMathOperator): Helper function to determine when MathOperator should be used.
(WebCore::RenderMathMLOperator::firstLineBaseline): Use useMathOperator.
(WebCore::RenderMathMLOperator::computeLogicalHeight): Ditto.
(WebCore::RenderMathMLOperator::paint): Ditto.
(WebCore::RenderMathMLOperator::paintChildren): Ditto.
* rendering/mathml/RenderMathMLOperator.h: Declare useMathOperator.

LayoutTests:

We adjust fenced-mi.html to handle one edge case that we no longer support.
We also update some test references on Mac and iOS.

* mathml/presentation/fenced-mi-expected.html: Indicate that this is no longer supported.
* mathml/presentation/fenced-mi.html: Adjust the reference since no text is shown.
* platform/mac/mathml/opentype/large-operators-expected.txt: Update reference.
* platform/mac/mathml/opentype/opentype-stretchy-expected.txt: Ditto.
* platform/mac/mathml/opentype/vertical-expected.txt: Ditto.
* platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt: Ditto.
* platform/ios-simulator/mathml/opentype/opentype-stretchy-expected.txt: Ditto.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsmathmlpresentationfencedmiexpectedhtml">trunk/LayoutTests/mathml/presentation/fenced-mi-expected.html</a></li>
<li><a href="#trunkLayoutTestsmathmlpresentationfencedmihtml">trunk/LayoutTests/mathml/presentation/fenced-mi.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatormathmlopentypehorizontalmunderoverexpectedtxt">trunk/LayoutTests/platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatormathmlopentypeopentypestretchyexpectedtxt">trunk/LayoutTests/platform/ios-simulator/mathml/opentype/opentype-stretchy-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacmathmlopentypelargeoperatorsexpectedtxt">trunk/LayoutTests/platform/mac/mathml/opentype/large-operators-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacmathmlopentypeopentypestretchyexpectedtxt">trunk/LayoutTests/platform/mac/mathml/opentype/opentype-stretchy-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacmathmlopentypeverticalexpectedtxt">trunk/LayoutTests/platform/mac/mathml/opentype/vertical-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlMathOperatorh">trunk/Source/WebCore/rendering/mathml/MathOperator.h</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLOperatorcpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLOperatorh">trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (202270 => 202271)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-06-21 06:16:20 UTC (rev 202270)
+++ trunk/LayoutTests/ChangeLog        2016-06-21 06:28:38 UTC (rev 202271)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+2016-06-20  Frederic Wang  &lt;fwang@igalia.com&gt;
+
+        Use the MathOperator to handle some non-stretchy operators
+        https://bugs.webkit.org/show_bug.cgi?id=157519
+
+        Reviewed by Brent Fulgham.
+
+        We adjust fenced-mi.html to handle one edge case that we no longer support.
+        We also update some test references on Mac and iOS.
+
+        * mathml/presentation/fenced-mi-expected.html: Indicate that this is no longer supported.
+        * mathml/presentation/fenced-mi.html: Adjust the reference since no text is shown.
+        * platform/mac/mathml/opentype/large-operators-expected.txt: Update reference.
+        * platform/mac/mathml/opentype/opentype-stretchy-expected.txt: Ditto.
+        * platform/mac/mathml/opentype/vertical-expected.txt: Ditto.
+        * platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt: Ditto.
+        * platform/ios-simulator/mathml/opentype/opentype-stretchy-expected.txt: Ditto.
+
</ins><span class="cx"> 2016-06-20  Alexey Proskuryakov  &lt;ap@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Test expectation update for media/click-placeholder-not-pausing.html
</span></span></pre></div>
<a id="trunkLayoutTestsmathmlpresentationfencedmiexpectedhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/mathml/presentation/fenced-mi-expected.html (202270 => 202271)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/mathml/presentation/fenced-mi-expected.html        2016-06-21 06:16:20 UTC (rev 202270)
+++ trunk/LayoutTests/mathml/presentation/fenced-mi-expected.html        2016-06-21 06:28:38 UTC (rev 202271)
</span><span class="lines">@@ -68,11 +68,11 @@
</span><span class="cx">     &lt;p&gt;
</span><span class="cx">       &lt;math&gt;
</span><span class="cx">         &lt;mrow&gt;
</span><del>-          &lt;mo&gt;ABC&lt;/mo&gt;
</del><ins>+          &lt;mo&gt;&lt;/mo&gt;
</ins><span class="cx">           &lt;mrow&gt;
</span><span class="cx">             &lt;mi&gt;x&lt;/mi&gt;
</span><span class="cx">           &lt;/mrow&gt;
</span><del>-          &lt;mo&gt;DEF&lt;/mo&gt;
</del><ins>+          &lt;mo&gt;&lt;/mo&gt;
</ins><span class="cx">         &lt;/mrow&gt;
</span><span class="cx">       &lt;/math&gt;
</span><span class="cx">     &lt;/p&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsmathmlpresentationfencedmihtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/mathml/presentation/fenced-mi.html (202270 => 202271)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/mathml/presentation/fenced-mi.html        2016-06-21 06:16:20 UTC (rev 202270)
+++ trunk/LayoutTests/mathml/presentation/fenced-mi.html        2016-06-21 06:28:38 UTC (rev 202271)
</span><span class="lines">@@ -34,6 +34,7 @@
</span><span class="cx">     &lt;/p&gt;
</span><span class="cx"> 
</span><span class="cx">     &lt;!-- Test for open/close operators with multiple characters --&gt;
</span><ins>+    &lt;!-- We do not support this edge case. See https://webkit.org/b/157519. --&gt;
</ins><span class="cx">     &lt;p&gt;
</span><span class="cx">       &lt;math&gt;
</span><span class="cx">         &lt;mfenced open=&quot;ABC&quot; close=&quot;DEF&quot;&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatormathmlopentypehorizontalmunderoverexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt (202270 => 202271)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt        2016-06-21 06:16:20 UTC (rev 202270)
+++ trunk/LayoutTests/platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt        2016-06-21 06:28:38 UTC (rev 202271)
</span><span class="lines">@@ -4,100 +4,100 @@
</span><span class="cx">   RenderBlock {HTML} at (0,0) size 800x52
</span><span class="cx">     RenderBody {BODY} at (8,16) size 784x20
</span><span class="cx">       RenderBlock {P} at (0,0) size 784x20
</span><del>-        RenderMathMLMath {math} at (0,13) size 50x3 [padding: 0 1 0 1]
-          RenderMathMLRow {mstyle} at (1,0) size 48x3
-            RenderMathMLUnderOver {mover} at (0,0) size 48x3
-              RenderMathMLOperator {mo} at (24,2) size 0x1
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
-                  RenderBlock (anonymous) at (0,0) size 0x1
</del><ins>+        RenderMathMLMath {math} at (0,13) size 50x2 [padding: 0 1 0 1]
+          RenderMathMLRow {mstyle} at (1,0) size 48x2
+            RenderMathMLUnderOver {mover} at (0,0) size 48x2
+              RenderMathMLOperator {mo} at (24,2) size 0x0
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x0
+                  RenderBlock (anonymous) at (0,0) size 0x0
</ins><span class="cx">                     RenderText at (0,-12) size 0x17
</span><span class="cx">                       text run at (0,-12) width 0: &quot;\x{23DE}&quot;
</span><span class="cx">               RenderMathMLSpace {mspace} at (0,0) size 48x2 [bgcolor=#FF0000]
</span><span class="cx">         RenderText {#text} at (50,0) size 4x19
</span><span class="cx">           text run at (50,0) width 4: &quot; &quot;
</span><del>-        RenderMathMLMath {math} at (54,12) size 66x3 [padding: 0 1 0 1]
-          RenderMathMLRow {mstyle} at (1,0) size 64x3
-            RenderMathMLUnderOver {mover} at (0,0) size 64x3
-              RenderMathMLSpace {mspace} at (0,1) size 64x2 [bgcolor=#FF0000]
-              RenderMathMLOperator {mo} at (32,0) size 0x1
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
-                  RenderBlock (anonymous) at (0,0) size 0x1
</del><ins>+        RenderMathMLMath {math} at (54,13) size 66x2 [padding: 0 1 0 1]
+          RenderMathMLRow {mstyle} at (1,0) size 64x2
+            RenderMathMLUnderOver {mover} at (0,0) size 64x2
+              RenderMathMLSpace {mspace} at (0,0) size 64x2 [bgcolor=#FF0000]
+              RenderMathMLOperator {mo} at (32,0) size 0x0
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x0
+                  RenderBlock (anonymous) at (0,0) size 0x0
</ins><span class="cx">                     RenderText at (0,-9) size 0x13
</span><span class="cx">                       text run at (0,-9) width 0: &quot;\x{23DE}&quot;
</span><span class="cx">         RenderText {#text} at (120,0) size 4x19
</span><span class="cx">           text run at (120,0) width 4: &quot; &quot;
</span><del>-        RenderMathMLMath {math} at (124,15) size 50x3 [padding: 0 1 0 1]
-          RenderMathMLRow {mstyle} at (1,0) size 48x3
-            RenderMathMLUnderOver {munder} at (0,0) size 48x3
-              RenderMathMLOperator {mo} at (24,0) size 0x1
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
-                  RenderBlock (anonymous) at (0,0) size 0x1
</del><ins>+        RenderMathMLMath {math} at (124,15) size 50x2 [padding: 0 1 0 1]
+          RenderMathMLRow {mstyle} at (1,0) size 48x2
+            RenderMathMLUnderOver {munder} at (0,0) size 48x2
+              RenderMathMLOperator {mo} at (24,0) size 0x0
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x0
+                  RenderBlock (anonymous) at (0,0) size 0x0
</ins><span class="cx">                     RenderText at (0,-12) size 0x17
</span><span class="cx">                       text run at (0,-12) width 0: &quot;\x{23DE}&quot;
</span><del>-              RenderMathMLSpace {mspace} at (0,1) size 48x2 [bgcolor=#FF0000]
</del><ins>+              RenderMathMLSpace {mspace} at (0,0) size 48x2 [bgcolor=#FF0000]
</ins><span class="cx">         RenderText {#text} at (174,0) size 4x19
</span><span class="cx">           text run at (174,0) width 4: &quot; &quot;
</span><del>-        RenderMathMLMath {math} at (178,12) size 66x4 [padding: 0 1 0 1]
-          RenderMathMLRow {mstyle} at (1,0) size 64x4
-            RenderMathMLUnderOver {munderover} at (0,0) size 64x4
-              RenderMathMLSpace {mspace} at (0,1) size 64x2 [bgcolor=#FF0000]
-              RenderMathMLOperator {mo} at (32,3) size 0x1
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
-                  RenderBlock (anonymous) at (0,0) size 0x1
</del><ins>+        RenderMathMLMath {math} at (178,13) size 66x2 [padding: 0 1 0 1]
+          RenderMathMLRow {mstyle} at (1,0) size 64x2
+            RenderMathMLUnderOver {munderover} at (0,0) size 64x2
+              RenderMathMLSpace {mspace} at (0,0) size 64x2 [bgcolor=#FF0000]
+              RenderMathMLOperator {mo} at (32,2) size 0x0
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x0
+                  RenderBlock (anonymous) at (0,0) size 0x0
</ins><span class="cx">                     RenderText at (0,-9) size 0x13
</span><span class="cx">                       text run at (0,-9) width 0: &quot;\x{23DE}&quot;
</span><del>-              RenderMathMLOperator {mo} at (32,0) size 0x1
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
-                  RenderBlock (anonymous) at (0,0) size 0x1
</del><ins>+              RenderMathMLOperator {mo} at (32,0) size 0x0
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x0
+                  RenderBlock (anonymous) at (0,0) size 0x0
</ins><span class="cx">                     RenderText at (0,-9) size 0x13
</span><span class="cx">                       text run at (0,-9) width 0: &quot;\x{23DE}&quot;
</span><span class="cx">         RenderText {#text} at (244,0) size 4x19
</span><span class="cx">           text run at (244,0) width 4: &quot; &quot;
</span><del>-        RenderMathMLMath {math} at (248,14) size 50x4 [padding: 0 1 0 1]
-          RenderMathMLRow {mstyle} at (1,0) size 48x4
-            RenderMathMLUnderOver {munderover} at (0,0) size 48x4
-              RenderMathMLOperator {mo} at (24,1) size 0x1
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
-                  RenderBlock (anonymous) at (0,0) size 0x1
</del><ins>+        RenderMathMLMath {math} at (248,15) size 50x2 [padding: 0 1 0 1]
+          RenderMathMLRow {mstyle} at (1,0) size 48x2
+            RenderMathMLUnderOver {munderover} at (0,0) size 48x2
+              RenderMathMLOperator {mo} at (24,0) size 0x0
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x0
+                  RenderBlock (anonymous) at (0,0) size 0x0
</ins><span class="cx">                     RenderText at (0,-12) size 0x17
</span><span class="cx">                       text run at (0,-12) width 0: &quot;\x{23DE}&quot;
</span><del>-              RenderMathMLSpace {mspace} at (0,2) size 48x2 [bgcolor=#FF0000]
-              RenderMathMLOperator {mo} at (24,0) size 0x1
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
-                  RenderBlock (anonymous) at (0,0) size 0x1
</del><ins>+              RenderMathMLSpace {mspace} at (0,0) size 48x2 [bgcolor=#FF0000]
+              RenderMathMLOperator {mo} at (24,0) size 0x0
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x0
+                  RenderBlock (anonymous) at (0,0) size 0x0
</ins><span class="cx">                     RenderText at (0,-9) size 0x13
</span><span class="cx">                       text run at (0,-9) width 0: &quot;\x{23DE}&quot;
</span><span class="cx">         RenderText {#text} at (298,0) size 4x19
</span><span class="cx">           text run at (298,0) width 4: &quot; &quot;
</span><del>-        RenderMathMLMath {math} at (302,13) size 50x4 [padding: 0 1 0 1]
-          RenderMathMLRow {mstyle} at (1,0) size 48x4
-            RenderMathMLUnderOver {munderover} at (0,0) size 48x4
-              RenderMathMLOperator {mo} at (24,2) size 0x1
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
-                  RenderBlock (anonymous) at (0,0) size 0x1
</del><ins>+        RenderMathMLMath {math} at (302,13) size 50x2 [padding: 0 1 0 1]
+          RenderMathMLRow {mstyle} at (1,0) size 48x2
+            RenderMathMLUnderOver {munderover} at (0,0) size 48x2
+              RenderMathMLOperator {mo} at (24,2) size 0x0
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x0
+                  RenderBlock (anonymous) at (0,0) size 0x0
</ins><span class="cx">                     RenderText at (0,-12) size 0x17
</span><span class="cx">                       text run at (0,-12) width 0: &quot;\x{23DE}&quot;
</span><del>-              RenderMathMLOperator {mo} at (24,3) size 0x1
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
-                  RenderBlock (anonymous) at (0,0) size 0x1
</del><ins>+              RenderMathMLOperator {mo} at (24,2) size 0x0
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x0
+                  RenderBlock (anonymous) at (0,0) size 0x0
</ins><span class="cx">                     RenderText at (0,-9) size 0x13
</span><span class="cx">                       text run at (0,-9) width 0: &quot;\x{23DE}&quot;
</span><span class="cx">               RenderMathMLSpace {mspace} at (0,0) size 48x2 [bgcolor=#FF0000]
</span><span class="cx">         RenderText {#text} at (352,0) size 4x19
</span><span class="cx">           text run at (352,0) width 4: &quot; &quot;
</span><del>-        RenderMathMLMath {math} at (356,13) size 50x4 [padding: 0 1 0 1]
-          RenderMathMLRow {mstyle} at (1,0) size 48x4
-            RenderMathMLUnderOver {munder} at (0,0) size 48x4
-              RenderMathMLUnderOver {mover} at (0,0) size 48x3
-                RenderMathMLOperator {mo} at (24,2) size 0x1
-                  RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
-                    RenderBlock (anonymous) at (0,0) size 0x1
</del><ins>+        RenderMathMLMath {math} at (356,13) size 50x2 [padding: 0 1 0 1]
+          RenderMathMLRow {mstyle} at (1,0) size 48x2
+            RenderMathMLUnderOver {munder} at (0,0) size 48x2
+              RenderMathMLUnderOver {mover} at (0,0) size 48x2
+                RenderMathMLOperator {mo} at (24,2) size 0x0
+                  RenderMathMLBlock (anonymous, flex) at (0,0) size 0x0
+                    RenderBlock (anonymous) at (0,0) size 0x0
</ins><span class="cx">                       RenderText at (0,-12) size 0x17
</span><span class="cx">                         text run at (0,-12) width 0: &quot;\x{23DE}&quot;
</span><span class="cx">                 RenderMathMLSpace {mspace} at (0,0) size 48x2 [bgcolor=#FF0000]
</span><del>-              RenderMathMLOperator {mo} at (24,3) size 0x1
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
-                  RenderBlock (anonymous) at (0,0) size 0x1
</del><ins>+              RenderMathMLOperator {mo} at (24,2) size 0x0
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x0
+                  RenderBlock (anonymous) at (0,0) size 0x0
</ins><span class="cx">                     RenderText at (0,-9) size 0x13
</span><span class="cx">                       text run at (0,-9) width 0: &quot;\x{23DE}&quot;
</span><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatormathmlopentypeopentypestretchyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/mathml/opentype/opentype-stretchy-expected.txt (202270 => 202271)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/mathml/opentype/opentype-stretchy-expected.txt        2016-06-21 06:16:20 UTC (rev 202270)
+++ trunk/LayoutTests/platform/ios-simulator/mathml/opentype/opentype-stretchy-expected.txt        2016-06-21 06:28:38 UTC (rev 202271)
</span><span class="lines">@@ -1,10 +1,10 @@
</span><span class="cx"> layer at (0,0) size 800x600
</span><span class="cx">   RenderView at (0,0) size 800x600
</span><del>-layer at (0,0) size 800x340
-  RenderBlock {HTML} at (0,0) size 800x340
-    RenderBody {BODY} at (8,16) size 784x308
-      RenderBlock {P} at (0,0) size 784x35
-        RenderMathMLMath {math} at (0,20) size 49x11 [padding: 0 1 0 1]
</del><ins>+layer at (0,0) size 800x342
+  RenderBlock {HTML} at (0,0) size 800x342
+    RenderBody {BODY} at (8,16) size 784x310
+      RenderBlock {P} at (0,0) size 784x36
+        RenderMathMLMath {math} at (0,21) size 49x11 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLRow {mrow} at (1,0) size 47x11
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 47x11
</span><span class="cx">               RenderMathMLBlock (anonymous, flex) at (2,0) size 42x3
</span><span class="lines">@@ -11,9 +11,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 3x3
</span><span class="cx">                   RenderText at (0,-3) size 3x0
</span><span class="cx">                     text run at (0,-3) width 3: &quot;\x{219F}&quot;
</span><del>-        RenderText {#text} at (48,15) size 5x19
-          text run at (48,15) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (52,10) size 49x21 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (48,16) size 5x19
+          text run at (48,16) width 5: &quot; &quot;
+        RenderMathMLMath {math} at (52,11) size 49x21 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLRow {mrow} at (1,0) size 47x21
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 47x21
</span><span class="cx">               RenderMathMLBlock (anonymous, flex) at (2,0) size 42x3
</span><span class="lines">@@ -20,8 +20,8 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 3x3
</span><span class="cx">                   RenderText at (0,-3) size 3x0
</span><span class="cx">                     text run at (0,-3) width 3: &quot;\x{219F}&quot;
</span><del>-        RenderText {#text} at (100,15) size 5x19
-          text run at (100,15) width 5: &quot; &quot;
</del><ins>+        RenderText {#text} at (100,16) size 5x19
+          text run at (100,16) width 5: &quot; &quot;
</ins><span class="cx">         RenderMathMLMath {math} at (104,0) size 50x31 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLRow {mrow} at (1,0) size 47x31
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 47x31
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx">                   RenderText at (0,-3) size 3x0
</span><span class="cx">                     text run at (0,-3) width 3: &quot;\x{219F}&quot;
</span><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span><del>-      RenderBlock {P} at (0,51) size 784x155
</del><ins>+      RenderBlock {P} at (0,52) size 784x155
</ins><span class="cx">         RenderMathMLMath {math} at (0,0) size 49x150 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLRow {mrow} at (1,0) size 47x150
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 47x150
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx">                   RenderText at (0,-3) size 3x0
</span><span class="cx">                     text run at (0,-3) width 3: &quot;\x{219F}&quot;
</span><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span><del>-      RenderBlock {P} at (0,222) size 784x86
</del><ins>+      RenderBlock {P} at (0,223) size 784x87
</ins><span class="cx">         RenderMathMLMath {math} at (0,0) size 86x82 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLRow {mrow} at (1,0) size 84x82
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 84x82
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacmathmlopentypelargeoperatorsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/mathml/opentype/large-operators-expected.txt (202270 => 202271)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/mathml/opentype/large-operators-expected.txt        2016-06-21 06:16:20 UTC (rev 202270)
+++ trunk/LayoutTests/platform/mac/mathml/opentype/large-operators-expected.txt        2016-06-21 06:28:38 UTC (rev 202271)
</span><span class="lines">@@ -1,86 +1,86 @@
</span><span class="cx"> layer at (0,0) size 800x600
</span><span class="cx">   RenderView at (0,0) size 800x600
</span><del>-layer at (0,0) size 800x44
-  RenderBlock {HTML} at (0,0) size 800x44
-    RenderBody {BODY} at (8,8) size 784x20
-      RenderMathMLMath {math} at (0,0) size 784x20 [padding: 0 1 0 1]
-        RenderMathMLOperator {mo} at (262,1) size 18x18
-          RenderMathMLBlock (anonymous, flex) at (0,0) size 16x18
-            RenderBlock (anonymous) at (0,0) size 15x18
</del><ins>+layer at (0,0) size 800x42
+  RenderBlock {HTML} at (0,0) size 800x43
+    RenderBody {BODY} at (8,8) size 784x19
+      RenderMathMLMath {math} at (0,0) size 784x19 [padding: 0 1 0 1]
+        RenderMathMLOperator {mo} at (262,1) size 18x17
+          RenderMathMLBlock (anonymous, flex) at (0,0) size 16x17
+            RenderBlock (anonymous) at (0,0) size 15x17
</ins><span class="cx">               RenderText at (0,-4) size 15x24
</span><span class="cx">                 text run at (0,-4) width 15: &quot;\x{2211}&quot;
</span><del>-        RenderMathMLOperator {mo} at (279,0) size 9x20
-          RenderMathMLBlock (anonymous, flex) at (0,0) size 8x20
-            RenderBlock (anonymous) at (0,0) size 8x20
</del><ins>+        RenderMathMLOperator {mo} at (279,0) size 9x19
+          RenderMathMLBlock (anonymous, flex) at (0,0) size 8x19
+            RenderBlock (anonymous) at (0,0) size 8x19
</ins><span class="cx">               RenderText at (0,-3) size 8x24
</span><span class="cx">                 text run at (0,-3) width 8: &quot;\x{222B}&quot;
</span><del>-        RenderMathMLOperator {mo} at (287,0) size 13x20
-          RenderMathMLBlock (anonymous, flex) at (0,0) size 12x20
-            RenderBlock (anonymous) at (0,0) size 12x20
</del><ins>+        RenderMathMLOperator {mo} at (287,0) size 13x19
+          RenderMathMLBlock (anonymous, flex) at (0,0) size 12x19
+            RenderBlock (anonymous) at (0,0) size 12x19
</ins><span class="cx">               RenderText at (0,-3) size 12x24
</span><span class="cx">                 text run at (0,-3) width 12: &quot;\x{222C}&quot;
</span><del>-        RenderMathMLOperator {mo} at (299,0) size 17x20
-          RenderMathMLBlock (anonymous, flex) at (0,0) size 16x20
-            RenderBlock (anonymous) at (0,0) size 16x20
</del><ins>+        RenderMathMLOperator {mo} at (299,0) size 17x19
+          RenderMathMLBlock (anonymous, flex) at (0,0) size 16x19
+            RenderBlock (anonymous) at (0,0) size 16x19
</ins><span class="cx">               RenderText at (0,-3) size 16x24
</span><span class="cx">                 text run at (0,-3) width 16: &quot;\x{222D}&quot;
</span><del>-        RenderMathMLOperator {mo} at (315,0) size 21x20
-          RenderMathMLBlock (anonymous, flex) at (0,0) size 19x20
-            RenderBlock (anonymous) at (0,0) size 19x20
</del><ins>+        RenderMathMLOperator {mo} at (315,0) size 21x19
+          RenderMathMLBlock (anonymous, flex) at (0,0) size 19x19
+            RenderBlock (anonymous) at (0,0) size 19x19
</ins><span class="cx">               RenderText at (0,-3) size 19x24
</span><span class="cx">                 text run at (0,-3) width 19: &quot;\x{2A0C}&quot;
</span><del>-        RenderMathMLOperator {mo} at (335,1) size 22x18
-          RenderMathMLBlock (anonymous, flex) at (0,0) size 19x18
-            RenderBlock (anonymous) at (0,0) size 19x18
</del><ins>+        RenderMathMLOperator {mo} at (335,1) size 22x17
+          RenderMathMLBlock (anonymous, flex) at (0,0) size 19x17
+            RenderBlock (anonymous) at (0,0) size 19x17
</ins><span class="cx">               RenderText at (0,-4) size 19x24
</span><span class="cx">                 text run at (0,-4) width 19: &quot;\x{2A01}&quot;
</span><del>-        RenderMathMLOperator {mo} at (356,0) size 9x20
-          RenderMathMLBlock (anonymous, flex) at (0,0) size 8x20
-            RenderBlock (anonymous) at (0,0) size 8x20
</del><ins>+        RenderMathMLOperator {mo} at (356,0) size 9x19
+          RenderMathMLBlock (anonymous, flex) at (0,0) size 8x19
+            RenderBlock (anonymous) at (0,0) size 8x19
</ins><span class="cx">               RenderText at (0,-3) size 8x24
</span><span class="cx">                 text run at (0,-3) width 8: &quot;\x{222E}&quot;
</span><del>-        RenderMathMLOperator {mo} at (364,0) size 14x20
-          RenderMathMLBlock (anonymous, flex) at (0,0) size 12x20
-            RenderBlock (anonymous) at (0,0) size 12x20
</del><ins>+        RenderMathMLOperator {mo} at (364,0) size 14x19
+          RenderMathMLBlock (anonymous, flex) at (0,0) size 12x19
+            RenderBlock (anonymous) at (0,0) size 12x19
</ins><span class="cx">               RenderText at (0,-3) size 12x24
</span><span class="cx">                 text run at (0,-3) width 12: &quot;\x{222F}&quot;
</span><del>-        RenderMathMLOperator {mo} at (377,0) size 18x20
-          RenderMathMLBlock (anonymous, flex) at (0,0) size 16x20
-            RenderBlock (anonymous) at (0,0) size 16x20
</del><ins>+        RenderMathMLOperator {mo} at (377,0) size 18x19
+          RenderMathMLBlock (anonymous, flex) at (0,0) size 16x19
+            RenderBlock (anonymous) at (0,0) size 16x19
</ins><span class="cx">               RenderText at (0,-3) size 16x24
</span><span class="cx">                 text run at (0,-3) width 16: &quot;\x{2230}&quot;
</span><del>-        RenderMathMLOperator {mo} at (394,1) size 18x18
-          RenderMathMLBlock (anonymous, flex) at (0,0) size 16x18
-            RenderBlock (anonymous) at (0,0) size 15x18
</del><ins>+        RenderMathMLOperator {mo} at (394,1) size 18x17
+          RenderMathMLBlock (anonymous, flex) at (0,0) size 16x17
+            RenderBlock (anonymous) at (0,0) size 15x17
</ins><span class="cx">               RenderText at (0,-4) size 15x24
</span><span class="cx">                 text run at (0,-4) width 15: &quot;\x{22C3}&quot;
</span><del>-        RenderMathMLOperator {mo} at (411,1) size 19x18
-          RenderMathMLBlock (anonymous, flex) at (0,0) size 16x18
-            RenderBlock (anonymous) at (0,0) size 15x18
</del><ins>+        RenderMathMLOperator {mo} at (411,1) size 19x17
+          RenderMathMLBlock (anonymous, flex) at (0,0) size 16x17
+            RenderBlock (anonymous) at (0,0) size 15x17
</ins><span class="cx">               RenderText at (0,-4) size 15x24
</span><span class="cx">                 text run at (0,-4) width 15: &quot;\x{22C0}&quot;
</span><del>-        RenderMathMLOperator {mo} at (429,1) size 18x18
-          RenderMathMLBlock (anonymous, flex) at (0,0) size 16x18
-            RenderBlock (anonymous) at (0,0) size 15x18
</del><ins>+        RenderMathMLOperator {mo} at (429,1) size 18x17
+          RenderMathMLBlock (anonymous, flex) at (0,0) size 16x17
+            RenderBlock (anonymous) at (0,0) size 15x17
</ins><span class="cx">               RenderText at (0,-4) size 15x24
</span><span class="cx">                 text run at (0,-4) width 15: &quot;\x{22C1}&quot;
</span><del>-        RenderMathMLOperator {mo} at (446,1) size 18x18
-          RenderMathMLBlock (anonymous, flex) at (0,0) size 16x18
-            RenderBlock (anonymous) at (0,0) size 15x18
</del><ins>+        RenderMathMLOperator {mo} at (446,1) size 18x17
+          RenderMathMLBlock (anonymous, flex) at (0,0) size 16x17
+            RenderBlock (anonymous) at (0,0) size 15x17
</ins><span class="cx">               RenderText at (0,-4) size 15x24
</span><span class="cx">                 text run at (0,-4) width 15: &quot;\x{22C2}&quot;
</span><del>-        RenderMathMLOperator {mo} at (463,1) size 22x18
-          RenderMathMLBlock (anonymous, flex) at (0,0) size 19x18
-            RenderBlock (anonymous) at (0,0) size 19x18
</del><ins>+        RenderMathMLOperator {mo} at (463,1) size 22x17
+          RenderMathMLBlock (anonymous, flex) at (0,0) size 19x17
+            RenderBlock (anonymous) at (0,0) size 19x17
</ins><span class="cx">               RenderText at (0,-4) size 19x24
</span><span class="cx">                 text run at (0,-4) width 19: &quot;\x{2A02}&quot;
</span><del>-        RenderMathMLOperator {mo} at (484,1) size 20x18
-          RenderMathMLBlock (anonymous, flex) at (0,0) size 17x18
-            RenderBlock (anonymous) at (0,0) size 16x18
</del><ins>+        RenderMathMLOperator {mo} at (484,1) size 20x17
+          RenderMathMLBlock (anonymous, flex) at (0,0) size 17x17
+            RenderBlock (anonymous) at (0,0) size 16x17
</ins><span class="cx">               RenderText at (0,-4) size 16x24
</span><span class="cx">                 text run at (0,-4) width 16: &quot;\x{220F}&quot;
</span><del>-        RenderMathMLOperator {mo} at (503,1) size 19x18
-          RenderMathMLBlock (anonymous, flex) at (0,0) size 17x18
-            RenderBlock (anonymous) at (0,0) size 16x18
</del><ins>+        RenderMathMLOperator {mo} at (503,1) size 19x17
+          RenderMathMLBlock (anonymous, flex) at (0,0) size 17x17
+            RenderBlock (anonymous) at (0,0) size 16x17
</ins><span class="cx">               RenderText at (0,-4) size 16x24
</span><span class="cx">                 text run at (0,-4) width 16: &quot;\x{2210}&quot;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacmathmlopentypeopentypestretchyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/mathml/opentype/opentype-stretchy-expected.txt (202270 => 202271)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/mathml/opentype/opentype-stretchy-expected.txt        2016-06-21 06:16:20 UTC (rev 202270)
+++ trunk/LayoutTests/platform/mac/mathml/opentype/opentype-stretchy-expected.txt        2016-06-21 06:28:38 UTC (rev 202271)
</span><span class="lines">@@ -1,10 +1,10 @@
</span><span class="cx"> layer at (0,0) size 800x600
</span><span class="cx">   RenderView at (0,0) size 800x600
</span><del>-layer at (0,0) size 800x337
-  RenderBlock {HTML} at (0,0) size 800x337
-    RenderBody {BODY} at (8,16) size 784x305
-      RenderBlock {P} at (0,0) size 784x34
-        RenderMathMLMath {math} at (0,20) size 49x11 [padding: 0 1 0 1]
</del><ins>+layer at (0,0) size 800x339
+  RenderBlock {HTML} at (0,0) size 800x339
+    RenderBody {BODY} at (8,16) size 784x307
+      RenderBlock {P} at (0,0) size 784x35
+        RenderMathMLMath {math} at (0,21) size 49x11 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLRow {mrow} at (1,0) size 47x11
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 47x11
</span><span class="cx">               RenderMathMLBlock (anonymous, flex) at (2,0) size 42x3
</span><span class="lines">@@ -11,9 +11,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 3x3
</span><span class="cx">                   RenderText at (0,-3) size 3x0
</span><span class="cx">                     text run at (0,-3) width 3: &quot;\x{219F}&quot;
</span><del>-        RenderText {#text} at (48,16) size 5x18
-          text run at (48,16) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (52,10) size 49x21 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (48,17) size 5x18
+          text run at (48,17) width 5: &quot; &quot;
+        RenderMathMLMath {math} at (52,11) size 49x21 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLRow {mrow} at (1,0) size 47x21
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 47x21
</span><span class="cx">               RenderMathMLBlock (anonymous, flex) at (2,0) size 42x3
</span><span class="lines">@@ -20,8 +20,8 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 3x3
</span><span class="cx">                   RenderText at (0,-3) size 3x0
</span><span class="cx">                     text run at (0,-3) width 3: &quot;\x{219F}&quot;
</span><del>-        RenderText {#text} at (100,16) size 5x18
-          text run at (100,16) width 5: &quot; &quot;
</del><ins>+        RenderText {#text} at (100,17) size 5x18
+          text run at (100,17) width 5: &quot; &quot;
</ins><span class="cx">         RenderMathMLMath {math} at (104,0) size 50x31 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLRow {mrow} at (1,0) size 47x31
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 47x31
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx">                   RenderText at (0,-3) size 3x0
</span><span class="cx">                     text run at (0,-3) width 3: &quot;\x{219F}&quot;
</span><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span><del>-      RenderBlock {P} at (0,50) size 784x154
</del><ins>+      RenderBlock {P} at (0,51) size 784x154
</ins><span class="cx">         RenderMathMLMath {math} at (0,0) size 49x150 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLRow {mrow} at (1,0) size 47x150
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 47x150
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx">                   RenderText at (0,-3) size 3x0
</span><span class="cx">                     text run at (0,-3) width 3: &quot;\x{219F}&quot;
</span><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span><del>-      RenderBlock {P} at (0,220) size 784x85
</del><ins>+      RenderBlock {P} at (0,221) size 784x86
</ins><span class="cx">         RenderMathMLMath {math} at (0,0) size 86x82 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLRow {mrow} at (1,0) size 84x82
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 84x82
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacmathmlopentypeverticalexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/mathml/opentype/vertical-expected.txt (202270 => 202271)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/mathml/opentype/vertical-expected.txt        2016-06-21 06:16:20 UTC (rev 202270)
+++ trunk/LayoutTests/platform/mac/mathml/opentype/vertical-expected.txt        2016-06-21 06:28:38 UTC (rev 202271)
</span><span class="lines">@@ -4,83 +4,83 @@
</span><span class="cx">   RenderBlock {HTML} at (0,0) size 800x354
</span><span class="cx">     RenderBody {BODY} at (8,16) size 784x322
</span><span class="cx">       RenderBlock {P} at (0,0) size 784x18
</span><del>-        RenderMathMLMath {math} at (0,2) size 117x16 [padding: 0 1 0 1]
-          RenderMathMLOperator {mo} at (1,1) size 8x14
</del><ins>+        RenderMathMLMath {math} at (0,3) size 117x15 [padding: 0 1 0 1]
+          RenderMathMLOperator {mo} at (1,0) size 8x14
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 8x14
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 6x14
</span><span class="cx">                 RenderText at (0,-6) size 6x24
</span><span class="cx">                   text run at (0,-6) width 6: &quot;[&quot;
</span><del>-          RenderMathMLOperator {mo} at (8,1) size 8x14
</del><ins>+          RenderMathMLOperator {mo} at (8,0) size 8x14
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 8x14
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 6x14
</span><span class="cx">                 RenderText at (0,-6) size 6x24
</span><span class="cx">                   text run at (0,-6) width 6: &quot;]&quot;
</span><del>-          RenderMathMLOperator {mo} at (15,1) size 11x14
</del><ins>+          RenderMathMLOperator {mo} at (15,0) size 11x14
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x14
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 8x14
</span><span class="cx">                 RenderText at (0,-6) size 8x24
</span><span class="cx">                   text run at (0,-6) width 8: &quot;{&quot;
</span><del>-          RenderMathMLOperator {mo} at (25,1) size 11x14
</del><ins>+          RenderMathMLOperator {mo} at (25,0) size 11x14
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x14
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 8x14
</span><span class="cx">                 RenderText at (0,-6) size 8x24
</span><span class="cx">                   text run at (0,-6) width 8: &quot;}&quot;
</span><del>-          RenderMathMLOperator {mo} at (35,1) size 9x14
</del><ins>+          RenderMathMLOperator {mo} at (35,0) size 9x14
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 8x14
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 6x14
</span><span class="cx">                 RenderText at (0,-6) size 6x24
</span><span class="cx">                   text run at (0,-6) width 6: &quot;(&quot;
</span><del>-          RenderMathMLOperator {mo} at (43,1) size 8x14
</del><ins>+          RenderMathMLOperator {mo} at (43,0) size 8x14
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 8x14
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 6x14
</span><span class="cx">                 RenderText at (0,-6) size 6x24
</span><span class="cx">                   text run at (0,-6) width 6: &quot;)&quot;
</span><del>-          RenderMathMLOperator {mo} at (50,1) size 7x12
</del><ins>+          RenderMathMLOperator {mo} at (50,0) size 7x12
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (1,0) size 4x12
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 4x12
</span><span class="cx">                 RenderText at (0,-6) size 4x24
</span><span class="cx">                   text run at (0,-6) width 4: &quot;|&quot;
</span><del>-          RenderMathMLOperator {mo} at (56,0) size 9x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 8x16
-              RenderBlock (anonymous) at (0,0) size 8x16
</del><ins>+          RenderMathMLOperator {mo} at (56,0) size 9x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 8x15
+              RenderBlock (anonymous) at (0,0) size 8x15
</ins><span class="cx">                 RenderText at (0,-5) size 8x24
</span><span class="cx">                   text run at (0,-5) width 8: &quot;\x{2308}&quot;
</span><del>-          RenderMathMLOperator {mo} at (64,0) size 8x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 8x16
-              RenderBlock (anonymous) at (0,0) size 8x16
</del><ins>+          RenderMathMLOperator {mo} at (64,0) size 8x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 8x15
+              RenderBlock (anonymous) at (0,0) size 8x15
</ins><span class="cx">                 RenderText at (0,-5) size 8x24
</span><span class="cx">                   text run at (0,-5) width 8: &quot;\x{2309}&quot;
</span><del>-          RenderMathMLOperator {mo} at (71,0) size 9x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 8x16
-              RenderBlock (anonymous) at (0,0) size 8x16
</del><ins>+          RenderMathMLOperator {mo} at (71,0) size 9x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 8x15
+              RenderBlock (anonymous) at (0,0) size 8x15
</ins><span class="cx">                 RenderText at (0,-5) size 8x24
</span><span class="cx">                   text run at (0,-5) width 8: &quot;\x{230A}&quot;
</span><del>-          RenderMathMLOperator {mo} at (79,0) size 8x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 8x16
-              RenderBlock (anonymous) at (0,0) size 8x16
</del><ins>+          RenderMathMLOperator {mo} at (79,0) size 8x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 8x15
+              RenderBlock (anonymous) at (0,0) size 8x15
</ins><span class="cx">                 RenderText at (0,-5) size 8x24
</span><span class="cx">                   text run at (0,-5) width 8: &quot;\x{230B}&quot;
</span><del>-          RenderMathMLOperator {mo} at (86,0) size 9x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 9x16
-              RenderBlock (anonymous) at (0,0) size 9x16
</del><ins>+          RenderMathMLOperator {mo} at (86,0) size 9x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 9x15
+              RenderBlock (anonymous) at (0,0) size 9x15
</ins><span class="cx">                 RenderText at (0,-5) size 9x24
</span><span class="cx">                   text run at (0,-5) width 9: &quot;\x{27E6}&quot;
</span><del>-          RenderMathMLOperator {mo} at (95,0) size 9x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 9x16
-              RenderBlock (anonymous) at (0,0) size 9x16
</del><ins>+          RenderMathMLOperator {mo} at (95,0) size 9x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 9x15
+              RenderBlock (anonymous) at (0,0) size 9x15
</ins><span class="cx">                 RenderText at (0,-5) size 9x24
</span><span class="cx">                   text run at (0,-5) width 9: &quot;\x{27E7}&quot;
</span><del>-          RenderMathMLOperator {mo} at (103,0) size 7x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 7x16
-              RenderBlock (anonymous) at (0,0) size 7x16
</del><ins>+          RenderMathMLOperator {mo} at (103,0) size 7x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 7x15
+              RenderBlock (anonymous) at (0,0) size 7x15
</ins><span class="cx">                 RenderText at (0,-5) size 7x24
</span><span class="cx">                   text run at (0,-5) width 7: &quot;\x{27E8}&quot;
</span><del>-          RenderMathMLOperator {mo} at (109,0) size 7x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 7x16
-              RenderBlock (anonymous) at (0,0) size 7x16
</del><ins>+          RenderMathMLOperator {mo} at (109,0) size 7x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 7x15
+              RenderBlock (anonymous) at (0,0) size 7x15
</ins><span class="cx">                 RenderText at (0,-5) size 7x24
</span><span class="cx">                   text run at (0,-5) width 7: &quot;\x{27E9}&quot;
</span><del>-          RenderMathMLSpace {mspace} at (115,4) size 0x8
</del><ins>+          RenderMathMLSpace {mspace} at (115,3) size 0x8
</ins><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span><span class="cx">       RenderBlock {P} at (0,34) size 784x24
</span><span class="cx">         RenderMathMLMath {math} at (0,0) size 117x25 [padding: 0 1 0 1]
</span><span class="lines">@@ -119,44 +119,44 @@
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 4x12
</span><span class="cx">                 RenderText at (0,-6) size 4x24
</span><span class="cx">                   text run at (0,-6) width 4: &quot;|&quot;
</span><del>-          RenderMathMLOperator {mo} at (56,4) size 9x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 8x16
-              RenderBlock (anonymous) at (0,0) size 8x16
</del><ins>+          RenderMathMLOperator {mo} at (56,5) size 9x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 8x15
+              RenderBlock (anonymous) at (0,0) size 8x15
</ins><span class="cx">                 RenderText at (0,-5) size 8x24
</span><span class="cx">                   text run at (0,-5) width 8: &quot;\x{2308}&quot;
</span><del>-          RenderMathMLOperator {mo} at (64,4) size 8x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 8x16
-              RenderBlock (anonymous) at (0,0) size 8x16
</del><ins>+          RenderMathMLOperator {mo} at (64,5) size 8x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 8x15
+              RenderBlock (anonymous) at (0,0) size 8x15
</ins><span class="cx">                 RenderText at (0,-5) size 8x24
</span><span class="cx">                   text run at (0,-5) width 8: &quot;\x{2309}&quot;
</span><del>-          RenderMathMLOperator {mo} at (71,4) size 9x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 8x16
-              RenderBlock (anonymous) at (0,0) size 8x16
</del><ins>+          RenderMathMLOperator {mo} at (71,5) size 9x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 8x15
+              RenderBlock (anonymous) at (0,0) size 8x15
</ins><span class="cx">                 RenderText at (0,-5) size 8x24
</span><span class="cx">                   text run at (0,-5) width 8: &quot;\x{230A}&quot;
</span><del>-          RenderMathMLOperator {mo} at (79,4) size 8x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 8x16
-              RenderBlock (anonymous) at (0,0) size 8x16
</del><ins>+          RenderMathMLOperator {mo} at (79,5) size 8x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 8x15
+              RenderBlock (anonymous) at (0,0) size 8x15
</ins><span class="cx">                 RenderText at (0,-5) size 8x24
</span><span class="cx">                   text run at (0,-5) width 8: &quot;\x{230B}&quot;
</span><del>-          RenderMathMLOperator {mo} at (86,4) size 9x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 9x16
-              RenderBlock (anonymous) at (0,0) size 9x16
</del><ins>+          RenderMathMLOperator {mo} at (86,5) size 9x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 9x15
+              RenderBlock (anonymous) at (0,0) size 9x15
</ins><span class="cx">                 RenderText at (0,-5) size 9x24
</span><span class="cx">                   text run at (0,-5) width 9: &quot;\x{27E6}&quot;
</span><del>-          RenderMathMLOperator {mo} at (95,4) size 9x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 9x16
-              RenderBlock (anonymous) at (0,0) size 9x16
</del><ins>+          RenderMathMLOperator {mo} at (95,5) size 9x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 9x15
+              RenderBlock (anonymous) at (0,0) size 9x15
</ins><span class="cx">                 RenderText at (0,-5) size 9x24
</span><span class="cx">                   text run at (0,-5) width 9: &quot;\x{27E7}&quot;
</span><del>-          RenderMathMLOperator {mo} at (103,4) size 7x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 7x16
-              RenderBlock (anonymous) at (0,0) size 7x16
</del><ins>+          RenderMathMLOperator {mo} at (103,5) size 7x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 7x15
+              RenderBlock (anonymous) at (0,0) size 7x15
</ins><span class="cx">                 RenderText at (0,-5) size 7x24
</span><span class="cx">                   text run at (0,-5) width 7: &quot;\x{27E8}&quot;
</span><del>-          RenderMathMLOperator {mo} at (109,4) size 7x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 7x16
-              RenderBlock (anonymous) at (0,0) size 7x16
</del><ins>+          RenderMathMLOperator {mo} at (109,5) size 7x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 7x15
+              RenderBlock (anonymous) at (0,0) size 7x15
</ins><span class="cx">                 RenderText at (0,-5) size 7x24
</span><span class="cx">                   text run at (0,-5) width 7: &quot;\x{27E9}&quot;
</span><span class="cx">           RenderMathMLSpace {mspace} at (115,0) size 0x16
</span><span class="lines">@@ -282,24 +282,24 @@
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 8x16
</span><span class="cx">                 RenderText at (0,-5) size 8x24
</span><span class="cx">                   text run at (0,-5) width 8: &quot;\x{230B}&quot;
</span><del>-          RenderMathMLOperator {mo} at (86,12) size 9x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 9x16
-              RenderBlock (anonymous) at (0,0) size 9x16
</del><ins>+          RenderMathMLOperator {mo} at (86,13) size 9x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 9x15
+              RenderBlock (anonymous) at (0,0) size 9x15
</ins><span class="cx">                 RenderText at (0,-5) size 9x24
</span><span class="cx">                   text run at (0,-5) width 9: &quot;\x{27E6}&quot;
</span><del>-          RenderMathMLOperator {mo} at (95,12) size 9x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 9x16
-              RenderBlock (anonymous) at (0,0) size 9x16
</del><ins>+          RenderMathMLOperator {mo} at (95,13) size 9x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 9x15
+              RenderBlock (anonymous) at (0,0) size 9x15
</ins><span class="cx">                 RenderText at (0,-5) size 9x24
</span><span class="cx">                   text run at (0,-5) width 9: &quot;\x{27E7}&quot;
</span><del>-          RenderMathMLOperator {mo} at (103,12) size 7x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 7x16
-              RenderBlock (anonymous) at (0,0) size 7x16
</del><ins>+          RenderMathMLOperator {mo} at (103,13) size 7x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 7x15
+              RenderBlock (anonymous) at (0,0) size 7x15
</ins><span class="cx">                 RenderText at (0,-5) size 7x24
</span><span class="cx">                   text run at (0,-5) width 7: &quot;\x{27E8}&quot;
</span><del>-          RenderMathMLOperator {mo} at (109,12) size 7x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 7x16
-              RenderBlock (anonymous) at (0,0) size 7x16
</del><ins>+          RenderMathMLOperator {mo} at (109,13) size 7x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 7x15
+              RenderBlock (anonymous) at (0,0) size 7x15
</ins><span class="cx">                 RenderText at (0,-5) size 7x24
</span><span class="cx">                   text run at (0,-5) width 7: &quot;\x{27E9}&quot;
</span><span class="cx">           RenderMathMLSpace {mspace} at (115,0) size 0x24
</span><span class="lines">@@ -361,24 +361,24 @@
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 8x16
</span><span class="cx">                 RenderText at (0,-5) size 8x24
</span><span class="cx">                   text run at (0,-5) width 8: &quot;\x{230B}&quot;
</span><del>-          RenderMathMLOperator {mo} at (86,20) size 9x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 9x16
-              RenderBlock (anonymous) at (0,0) size 9x16
</del><ins>+          RenderMathMLOperator {mo} at (86,21) size 9x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 9x15
+              RenderBlock (anonymous) at (0,0) size 9x15
</ins><span class="cx">                 RenderText at (0,-5) size 9x24
</span><span class="cx">                   text run at (0,-5) width 9: &quot;\x{27E6}&quot;
</span><del>-          RenderMathMLOperator {mo} at (95,20) size 9x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 9x16
-              RenderBlock (anonymous) at (0,0) size 9x16
</del><ins>+          RenderMathMLOperator {mo} at (95,21) size 9x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 9x15
+              RenderBlock (anonymous) at (0,0) size 9x15
</ins><span class="cx">                 RenderText at (0,-5) size 9x24
</span><span class="cx">                   text run at (0,-5) width 9: &quot;\x{27E7}&quot;
</span><del>-          RenderMathMLOperator {mo} at (103,20) size 7x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 7x16
-              RenderBlock (anonymous) at (0,0) size 7x16
</del><ins>+          RenderMathMLOperator {mo} at (103,21) size 7x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 7x15
+              RenderBlock (anonymous) at (0,0) size 7x15
</ins><span class="cx">                 RenderText at (0,-5) size 7x24
</span><span class="cx">                   text run at (0,-5) width 7: &quot;\x{27E8}&quot;
</span><del>-          RenderMathMLOperator {mo} at (109,20) size 7x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 7x16
-              RenderBlock (anonymous) at (0,0) size 7x16
</del><ins>+          RenderMathMLOperator {mo} at (109,21) size 7x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 7x15
+              RenderBlock (anonymous) at (0,0) size 7x15
</ins><span class="cx">                 RenderText at (0,-5) size 7x24
</span><span class="cx">                   text run at (0,-5) width 7: &quot;\x{27E9}&quot;
</span><span class="cx">           RenderMathMLSpace {mspace} at (115,0) size 0x32
</span><span class="lines">@@ -504,24 +504,24 @@
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 8x16
</span><span class="cx">                 RenderText at (0,-5) size 8x24
</span><span class="cx">                   text run at (0,-5) width 8: &quot;\x{230B}&quot;
</span><del>-          RenderMathMLOperator {mo} at (86,52) size 9x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 9x16
-              RenderBlock (anonymous) at (0,0) size 9x16
</del><ins>+          RenderMathMLOperator {mo} at (86,53) size 9x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 9x15
+              RenderBlock (anonymous) at (0,0) size 9x15
</ins><span class="cx">                 RenderText at (0,-5) size 9x24
</span><span class="cx">                   text run at (0,-5) width 9: &quot;\x{27E6}&quot;
</span><del>-          RenderMathMLOperator {mo} at (95,52) size 9x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 9x16
-              RenderBlock (anonymous) at (0,0) size 9x16
</del><ins>+          RenderMathMLOperator {mo} at (95,53) size 9x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 9x15
+              RenderBlock (anonymous) at (0,0) size 9x15
</ins><span class="cx">                 RenderText at (0,-5) size 9x24
</span><span class="cx">                   text run at (0,-5) width 9: &quot;\x{27E7}&quot;
</span><del>-          RenderMathMLOperator {mo} at (103,52) size 7x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 7x16
-              RenderBlock (anonymous) at (0,0) size 7x16
</del><ins>+          RenderMathMLOperator {mo} at (103,53) size 7x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 7x15
+              RenderBlock (anonymous) at (0,0) size 7x15
</ins><span class="cx">                 RenderText at (0,-5) size 7x24
</span><span class="cx">                   text run at (0,-5) width 7: &quot;\x{27E8}&quot;
</span><del>-          RenderMathMLOperator {mo} at (109,52) size 7x16
-            RenderMathMLBlock (anonymous, flex) at (0,0) size 7x16
-              RenderBlock (anonymous) at (0,0) size 7x16
</del><ins>+          RenderMathMLOperator {mo} at (109,53) size 7x15
+            RenderMathMLBlock (anonymous, flex) at (0,0) size 7x15
+              RenderBlock (anonymous) at (0,0) size 7x15
</ins><span class="cx">                 RenderText at (0,-5) size 7x24
</span><span class="cx">                   text run at (0,-5) width 7: &quot;\x{27E9}&quot;
</span><span class="cx">           RenderMathMLSpace {mspace} at (115,0) size 0x64
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (202270 => 202271)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-06-21 06:16:20 UTC (rev 202270)
+++ trunk/Source/WebCore/ChangeLog        2016-06-21 06:28:38 UTC (rev 202271)
</span><span class="lines">@@ -1,3 +1,37 @@
</span><ins>+2016-06-20  Frederic Wang  &lt;fwang@igalia.com&gt;
+
+        Use the MathOperator to handle some non-stretchy operators
+        https://bugs.webkit.org/show_bug.cgi?id=157519
+
+        Reviewed by Brent Fulgham.
+
+        To prepare for the removal of anonymous text node from the render classes of token elements
+        we use MathOperator to handle two cases where the actual text to display may not be
+        available in the DOM: mfenced and minus operators. This change removes support for the
+        case of mfenced operators with multiple characters since that it is not supported by
+        MathOperator. It is a edge case that is not used in practice since fences and separators are
+        only made of a single character. However, it would still be possible to duplicate some
+        code/logic to add it back if that turns out to be necessary.
+
+        No new tests, already covered by existing tests.
+
+        * rendering/mathml/MathOperator.cpp:
+        (WebCore::MathOperator::MathOperator): Rename UndefinedOperator.
+        (WebCore::RenderMathMLOperator::firstLineBaseline): Improve rounding of ascent so that mfenced operators are correctly aligned.
+        * rendering/mathml/MathOperator.h: Rename UndefinedOperator, since it can now be used to draw non-stretchy operators.
+        (WebCore::MathOperator::isStretched): Deleted. This function is no longer used by RenderMathMLOperator.
+        (WebCore::MathOperator::unstretch): Deleted. This function is no longer used by RenderMathMLOperator.
+        * rendering/mathml/RenderMathMLOperator.cpp:
+        (WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Use useMathOperator.
+        (WebCore::RenderMathMLOperator::rebuildTokenContent): Set the MathOperator when useMathOperator() is true.
+        When the operator is not likely to stretch we just leave its type as NormalOperator.
+        (WebCore::RenderMathMLOperator::useMathOperator): Helper function to determine when MathOperator should be used.
+        (WebCore::RenderMathMLOperator::firstLineBaseline): Use useMathOperator.
+        (WebCore::RenderMathMLOperator::computeLogicalHeight): Ditto.
+        (WebCore::RenderMathMLOperator::paint): Ditto.
+        (WebCore::RenderMathMLOperator::paintChildren): Ditto.
+        * rendering/mathml/RenderMathMLOperator.h: Declare useMathOperator.
+
</ins><span class="cx"> 2016-06-19  Gavin &amp; Ellie Barraclough  &lt;barraclough@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Don't eagerly reify DOM Prototype properties
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlMathOperatorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/MathOperator.h (202270 => 202271)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/MathOperator.h        2016-06-21 06:16:20 UTC (rev 202270)
+++ trunk/Source/WebCore/rendering/mathml/MathOperator.h        2016-06-21 06:28:38 UTC (rev 202271)
</span><span class="lines">@@ -40,7 +40,7 @@
</span><span class="cx"> class MathOperator {
</span><span class="cx"> public:
</span><span class="cx">     MathOperator() { }
</span><del>-    enum class Type { UndefinedOperator, DisplayOperator, VerticalOperator, HorizontalOperator };
</del><ins>+    enum class Type { NormalOperator, DisplayOperator, VerticalOperator, HorizontalOperator };
</ins><span class="cx">     void setOperator(const RenderStyle&amp;, UChar baseCharacter, Type);
</span><span class="cx">     void reset(const RenderStyle&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -52,8 +52,6 @@
</span><span class="cx"> 
</span><span class="cx">     void stretchTo(const RenderStyle&amp;, LayoutUnit ascent, LayoutUnit descent);
</span><span class="cx">     void stretchTo(const RenderStyle&amp;, LayoutUnit width);
</span><del>-    bool isStretched() const { return m_stretchType != StretchType::Unstretched || m_radicalVerticalScale &gt; 1; }
-    void unstretch() { m_stretchType = StretchType::Unstretched; }
</del><span class="cx"> 
</span><span class="cx">     void paint(const RenderStyle&amp;, PaintInfo&amp;, const LayoutPoint&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -89,7 +87,7 @@
</span><span class="cx">     void paintHorizontalGlyphAssembly(const RenderStyle&amp;, PaintInfo&amp;, const LayoutPoint&amp;);
</span><span class="cx"> 
</span><span class="cx">     UChar m_baseCharacter { 0 };
</span><del>-    Type m_operatorType { Type::UndefinedOperator };
</del><ins>+    Type m_operatorType { Type::NormalOperator };
</ins><span class="cx">     StretchType m_stretchType { StretchType::Unstretched };
</span><span class="cx">     union {
</span><span class="cx">         GlyphData m_variant;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLOperatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp (202270 => 202271)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp        2016-06-21 06:16:20 UTC (rev 202270)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp        2016-06-21 06:28:38 UTC (rev 202271)
</span><span class="lines">@@ -38,6 +38,7 @@
</span><span class="cx"> #include &quot;RenderText.h&quot;
</span><span class="cx"> #include &quot;ScaleTransformOperation.h&quot;
</span><span class="cx"> #include &quot;TransformOperations.h&quot;
</span><ins>+#include &lt;cmath&gt;
</ins><span class="cx"> #include &lt;wtf/MathExtras.h&gt;
</span><span class="cx"> #include &lt;wtf/unicode/CharacterNames.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -243,7 +244,7 @@
</span><span class="cx">     ASSERT(preferredLogicalWidthsDirty());
</span><span class="cx"> 
</span><span class="cx">     setOperatorProperties();
</span><del>-    if (!shouldAllowStretching()) {
</del><ins>+    if (!useMathOperator()) {
</ins><span class="cx">         RenderMathMLToken::computePreferredLogicalWidths();
</span><span class="cx">         if (isInvisibleOperator()) {
</span><span class="cx">             // In some fonts, glyphs for invisible operators have nonzero width. Consequently, we subtract that width here to avoid wide gaps.
</span><span class="lines">@@ -278,15 +279,16 @@
</span><span class="cx">     m_textContent = textContent.length() == 1 ? textContent[0] : 0;
</span><span class="cx">     setOperatorProperties();
</span><span class="cx"> 
</span><del>-    if (shouldAllowStretching()) {
</del><ins>+    if (useMathOperator()) {
</ins><span class="cx">         MathOperator::Type type;
</span><del>-        if (isLargeOperatorInDisplayStyle())
</del><ins>+        if (!shouldAllowStretching())
+            type = MathOperator::Type::NormalOperator;
+        else if (isLargeOperatorInDisplayStyle())
</ins><span class="cx">             type = MathOperator::Type::DisplayOperator;
</span><span class="cx">         else
</span><span class="cx">             type = m_isVertical ? MathOperator::Type::VerticalOperator : MathOperator::Type::HorizontalOperator;
</span><span class="cx">         m_mathOperator.setOperator(style(), m_textContent, type);
</span><del>-    } else
-        m_mathOperator.unstretch();
</del><ins>+    }
</ins><span class="cx"> 
</span><span class="cx">     updateStyle();
</span><span class="cx">     setNeedsLayoutAndPrefWidthsRecalc();
</span><span class="lines">@@ -322,6 +324,15 @@
</span><span class="cx">     return m_textContent &amp;&amp; (hasOperatorFlag(MathMLOperatorDictionary::Stretchy) || isLargeOperatorInDisplayStyle());
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+bool RenderMathMLOperator::useMathOperator() const
+{
+    // We use the MathOperator class to handle the following cases:
+    // 1) Stretchy and large operators, since they require special painting.
+    // 2) The minus sign, since it can be obtained from a hyphen in the DOM.
+    // 3) The anonymous operators created by mfenced, since they do not have text content in the DOM.
+    return shouldAllowStretching() || m_textContent == minusSign || isAnonymous();
+}
+
</ins><span class="cx"> void RenderMathMLOperator::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle)
</span><span class="cx"> {
</span><span class="cx">     RenderMathMLBlock::styleDidChange(diff, oldStyle);
</span><span class="lines">@@ -348,14 +359,14 @@
</span><span class="cx"> 
</span><span class="cx"> Optional&lt;int&gt; RenderMathMLOperator::firstLineBaseline() const
</span><span class="cx"> {
</span><del>-    if (m_mathOperator.isStretched())
-        return Optional&lt;int&gt;(m_mathOperator.ascent());
</del><ins>+    if (useMathOperator())
+        return Optional&lt;int&gt;(std::lround(static_cast&lt;float&gt;(m_mathOperator.ascent())));
</ins><span class="cx">     return RenderMathMLToken::firstLineBaseline();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderMathMLOperator::computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logicalTop, LogicalExtentComputedValues&amp; computedValues) const
</span><span class="cx"> {
</span><del>-    if (m_mathOperator.isStretched())
</del><ins>+    if (useMathOperator())
</ins><span class="cx">         logicalHeight = m_mathOperator.ascent() + m_mathOperator.descent();
</span><span class="cx">     RenderBox::computeLogicalHeight(logicalHeight, logicalTop, computedValues);
</span><span class="cx"> }
</span><span class="lines">@@ -363,7 +374,7 @@
</span><span class="cx"> void RenderMathMLOperator::paint(PaintInfo&amp; info, const LayoutPoint&amp; paintOffset)
</span><span class="cx"> {
</span><span class="cx">     RenderMathMLToken::paint(info, paintOffset);
</span><del>-    if (!m_mathOperator.isStretched())
</del><ins>+    if (!useMathOperator())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     LayoutPoint operatorTopLeft = paintOffset + location();
</span><span class="lines">@@ -379,7 +390,7 @@
</span><span class="cx"> void RenderMathMLOperator::paintChildren(PaintInfo&amp; paintInfo, const LayoutPoint&amp; paintOffset, PaintInfo&amp; paintInfoForChild, bool usePrintRect)
</span><span class="cx"> {
</span><span class="cx">     // We skip painting for invisible operators too to avoid some &quot;missing character&quot; glyph to appear if appropriate math fonts are not available.
</span><del>-    if (m_mathOperator.isStretched() || isInvisibleOperator())
</del><ins>+    if (useMathOperator() || isInvisibleOperator())
</ins><span class="cx">         return;
</span><span class="cx">     RenderMathMLToken::paintChildren(paintInfo, paintOffset, paintInfoForChild, usePrintRect);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLOperatorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.h (202270 => 202271)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.h        2016-06-21 06:16:20 UTC (rev 202270)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.h        2016-06-21 06:28:38 UTC (rev 202271)
</span><span class="lines">@@ -85,6 +85,7 @@
</span><span class="cx">     void rebuildTokenContent(const String&amp; operatorString);
</span><span class="cx"> 
</span><span class="cx">     bool shouldAllowStretching() const;
</span><ins>+    bool useMathOperator() const;
</ins><span class="cx"> 
</span><span class="cx">     void setOperatorFlagFromAttribute(MathMLOperatorDictionary::Flag, const QualifiedName&amp;);
</span><span class="cx">     void setOperatorFlagFromAttributeValue(MathMLOperatorDictionary::Flag, const AtomicString&amp; attributeValue);
</span></span></pre>
</div>
</div>

</body>
</html>