<!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>[202156] 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/202156">202156</a></dd>
<dt>Author</dt> <dd>fred.wang@free.fr</dd>
<dt>Date</dt> <dd>2016-06-16 21:34:24 -0700 (Thu, 16 Jun 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Add separate MathOperator for selection/measuring/drawing of stretchy operators
https://bugs.webkit.org/show_bug.cgi?id=152244

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

Source/WebCore:

We complete the class to select, measure and draw stretchy operators that is independent
from RenderMathMLOperator. That way, we will be able use stretchy operator without having
to introduce &amp; manage anonymous RenderMathMLOperator's
(e.g for &lt;mroot&gt;, &lt;msqrt&gt; and &lt;mfenced&gt;).

No new tests, already covered by existing tests.

* rendering/mathml/MathOperator.cpp:
(WebCore::ascentForGlyph): Add this helper function to get glyph ascent.
(WebCore::descentForGlyph): Add this helper function to get glyph descent.
(WebCore::MathOperator::reset): Initialize all the data and calculate ascent/descent of the
base glyph.
(WebCore::MathOperator::setSizeVariant): Set the width/ascent/descent.
(WebCore::MathOperator::setGlyphAssembly): Ditto.
(WebCore::MathOperator::calculateDisplayStyleLargeOperator): Remove the STIX Word hack and
change m_maxPreferredWidth to use the actual width instead.
(WebCore::MathOperator::stretchTo): New functions to execute the actual operator streching.
(WebCore::MathOperator::fillWithVerticalExtensionGlyph): Add a FIXME for bug 155434.
(WebCore::MathOperator::fillWithHorizontalExtensionGlyph): Align all the glyph baselines on
the same axis, given by m_ascent.
Add a FIXME for bug 155434.
(WebCore::MathOperator::paintHorizontalGlyphAssembly): Ditto.
(WebCore::MathOperator::paint): Public function to do the painting.
(WebCore::MathOperator::paintVerticalGlyphAssembly): Deleted.
* rendering/mathml/MathOperator.h: Update declarations and make most of the members private.
(WebCore::MathOperator::ascent): Function to expose m_ascent.
(WebCore::MathOperator::descent): Function to expose m_descent.
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::stretchTo): Forward the stretching call to MathOperator.
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Unfold advanceForGlyph
since we delete RenderMathMLOperator::advanceForGlyph. Just rely on
MathOperator::maxPreferredWidth to determine the preferred width of stretchy operators.
For horizontal operators, we just use the width of the base glyph.
Finally, we remove the dirty flag on preferred logical width.
(WebCore::RenderMathMLOperator::rebuildTokenContent): Reinit the MathOperator instance.
(WebCore::RenderMathMLOperator::updateFromElement): Force more updates of
RenderMathMLOperator to avoid test breakage.
(WebCore::RenderMathMLOperator::styleDidChange): Call MathOperator::reset to take into
account style change.
(WebCore::RenderMathMLOperator::updateStyle): Remove unused code.
(WebCore::RenderMathMLOperator::firstLineBaseline): Use MathOperator::ascent() function.
(WebCore::RenderMathMLOperator::computeLogicalHeight): Use MathOperator::ascent() and
MathOperator::descent() functions to calculate the height.
(WebCore::RenderMathMLOperator::paint): Only stretched operators are treated specially.
We center horizontal operator and forward the paint() call to MathOperator.
(WebCore::RenderMathMLOperator::trailingSpaceError): The error is now just the difference
between the values returned by MathOperator::maxPreferredWidth() and
MathOperator::width().
(WebCore::boundsForGlyph): Deleted.
(WebCore::heightForGlyph): Deleted.
(WebCore::advanceWidthForGlyph): Deleted.
(WebCore::RenderMathMLOperator::updateStyle): Deleted.

LayoutTests:

Update expectations for some MathML tests containing operators/radicals
to take into account small rendering changes.

* platform/gtk/mathml/opentype/horizontal-expected.png:
* platform/gtk/mathml/opentype/horizontal-expected.txt:
* platform/gtk/mathml/opentype/horizontal-munderover-expected.txt:
* platform/gtk/mathml/opentype/large-operators-expected.png:
* platform/gtk/mathml/opentype/large-operators-expected.txt:
* platform/gtk/mathml/opentype/opentype-stretchy-expected.png:
* platform/gtk/mathml/opentype/opentype-stretchy-expected.txt:
* platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.png:
* platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
* platform/gtk/mathml/opentype/vertical-expected.png:
* platform/gtk/mathml/opentype/vertical-expected.txt:
* platform/gtk/mathml/presentation/mo-stretch-expected.png:
* platform/gtk/mathml/presentation/mo-stretch-expected.txt:
* platform/gtk/mathml/presentation/roots-expected.txt:
* platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt:
* platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.png:
* platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsplatformgtkmathmlopentypehorizontalexpectedpng">trunk/LayoutTests/platform/gtk/mathml/opentype/horizontal-expected.png</a></li>
<li><a href="#trunkLayoutTestsplatformgtkmathmlopentypehorizontalexpectedtxt">trunk/LayoutTests/platform/gtk/mathml/opentype/horizontal-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformgtkmathmlopentypehorizontalmunderoverexpectedtxt">trunk/LayoutTests/platform/gtk/mathml/opentype/horizontal-munderover-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformgtkmathmlopentypelargeoperatorsexpectedpng">trunk/LayoutTests/platform/gtk/mathml/opentype/large-operators-expected.png</a></li>
<li><a href="#trunkLayoutTestsplatformgtkmathmlopentypelargeoperatorsexpectedtxt">trunk/LayoutTests/platform/gtk/mathml/opentype/large-operators-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformgtkmathmlopentypeopentypestretchyexpectedpng">trunk/LayoutTests/platform/gtk/mathml/opentype/opentype-stretchy-expected.png</a></li>
<li><a href="#trunkLayoutTestsplatformgtkmathmlopentypeopentypestretchyexpectedtxt">trunk/LayoutTests/platform/gtk/mathml/opentype/opentype-stretchy-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformgtkmathmlopentypeopentypestretchyhorizontalexpectedpng">trunk/LayoutTests/platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.png</a></li>
<li><a href="#trunkLayoutTestsplatformgtkmathmlopentypeopentypestretchyhorizontalexpectedtxt">trunk/LayoutTests/platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformgtkmathmlopentypeverticalexpectedpng">trunk/LayoutTests/platform/gtk/mathml/opentype/vertical-expected.png</a></li>
<li><a href="#trunkLayoutTestsplatformgtkmathmlopentypeverticalexpectedtxt">trunk/LayoutTests/platform/gtk/mathml/opentype/vertical-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformgtkmathmlpresentationmostretchexpectedpng">trunk/LayoutTests/platform/gtk/mathml/presentation/mo-stretch-expected.png</a></li>
<li><a href="#trunkLayoutTestsplatformgtkmathmlpresentationmostretchexpectedtxt">trunk/LayoutTests/platform/gtk/mathml/presentation/mo-stretch-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformgtkmathmlpresentationrootsexpectedtxt">trunk/LayoutTests/platform/gtk/mathml/presentation/roots-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatormathmlopentypehorizontalmunderoverexpectedtxt">trunk/LayoutTests/platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacmathmlopentypeopentypestretchyhorizontalexpectedpng">trunk/LayoutTests/platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.png</a></li>
<li><a href="#trunkLayoutTestsplatformmacmathmlopentypeopentypestretchyhorizontalexpectedtxt">trunk/LayoutTests/platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlMathOperatorcpp">trunk/Source/WebCore/rendering/mathml/MathOperator.cpp</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>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (202155 => 202156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-06-17 03:51:00 UTC (rev 202155)
+++ trunk/LayoutTests/ChangeLog        2016-06-17 04:34:24 UTC (rev 202156)
</span><span class="lines">@@ -1,3 +1,31 @@
</span><ins>+2016-06-16  Frederic Wang  &lt;fwang@igalia.com&gt;
+
+        Add separate MathOperator for selection/measuring/drawing of stretchy operators
+        https://bugs.webkit.org/show_bug.cgi?id=152244
+
+        Reviewed by Brent Fulgham.
+
+        Update expectations for some MathML tests containing operators/radicals
+        to take into account small rendering changes.
+
+        * platform/gtk/mathml/opentype/horizontal-expected.png:
+        * platform/gtk/mathml/opentype/horizontal-expected.txt:
+        * platform/gtk/mathml/opentype/horizontal-munderover-expected.txt:
+        * platform/gtk/mathml/opentype/large-operators-expected.png:
+        * platform/gtk/mathml/opentype/large-operators-expected.txt:
+        * platform/gtk/mathml/opentype/opentype-stretchy-expected.png:
+        * platform/gtk/mathml/opentype/opentype-stretchy-expected.txt:
+        * platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.png:
+        * platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
+        * platform/gtk/mathml/opentype/vertical-expected.png:
+        * platform/gtk/mathml/opentype/vertical-expected.txt:
+        * platform/gtk/mathml/presentation/mo-stretch-expected.png:
+        * platform/gtk/mathml/presentation/mo-stretch-expected.txt:
+        * platform/gtk/mathml/presentation/roots-expected.txt:
+        * platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt:
+        * platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.png:
+        * platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
+
</ins><span class="cx"> 2016-06-16  Jiewen Tan  &lt;jiewen_tan@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         CSP: Content Security Policy should allow '*' to match the originating page's scheme
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkmathmlopentypehorizontalexpectedpng"></a>
<div class="binary"><h4>Modified: trunk/LayoutTests/platform/gtk/mathml/opentype/horizontal-expected.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkmathmlopentypehorizontalexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/mathml/opentype/horizontal-expected.txt (202155 => 202156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/mathml/opentype/horizontal-expected.txt        2016-06-17 03:51:00 UTC (rev 202155)
+++ trunk/LayoutTests/platform/gtk/mathml/opentype/horizontal-expected.txt        2016-06-17 04:34:24 UTC (rev 202156)
</span><span class="lines">@@ -5,130 +5,130 @@
</span><span class="cx">     RenderBody {BODY} at (8,16) size 784x134
</span><span class="cx">       RenderBlock {P} at (0,0) size 784x17
</span><span class="cx">         RenderMathMLMath {math} at (0,4) size 24x10 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 29x10
-            RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
-            RenderMathMLOperator {mo} at (0,0) size 29x8
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 23x8
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 22x10
+            RenderMathMLSpace {mspace} at (0,8) size 22x2 [bgcolor=#0000FF]
+            RenderMathMLOperator {mo} at (1,0) size 20x8
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{2190}&quot;
</span><span class="cx">         RenderText {#text} at (24,0) size 4x17
</span><span class="cx">           text run at (24,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (28,4) size 24x10 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 29x10
-            RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
-            RenderMathMLOperator {mo} at (0,0) size 29x8
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 23x8
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 22x10
+            RenderMathMLSpace {mspace} at (0,8) size 22x2 [bgcolor=#0000FF]
+            RenderMathMLOperator {mo} at (1,0) size 20x8
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{2192}&quot;
</span><span class="cx">         RenderText {#text} at (52,0) size 4x17
</span><span class="cx">           text run at (52,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (56,4) size 24x10 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 29x10
-            RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
-            RenderMathMLOperator {mo} at (0,0) size 29x8
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 23x8
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 22x10
+            RenderMathMLSpace {mspace} at (0,8) size 22x2 [bgcolor=#0000FF]
+            RenderMathMLOperator {mo} at (1,0) size 20x8
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{2194}&quot;
</span><span class="cx">         RenderText {#text} at (80,0) size 4x17
</span><span class="cx">           text run at (80,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (84,4) size 24x10 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 29x10
-            RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
-            RenderMathMLOperator {mo} at (0,0) size 29x8
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 23x8
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 22x10
+            RenderMathMLSpace {mspace} at (0,8) size 22x2 [bgcolor=#0000FF]
+            RenderMathMLOperator {mo} at (1,0) size 20x8
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21A4}&quot;
</span><span class="cx">         RenderText {#text} at (108,0) size 4x17
</span><span class="cx">           text run at (108,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (112,4) size 24x10 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 29x10
-            RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
-            RenderMathMLOperator {mo} at (0,0) size 29x8
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 23x8
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 22x10
+            RenderMathMLSpace {mspace} at (0,8) size 22x2 [bgcolor=#0000FF]
+            RenderMathMLOperator {mo} at (1,0) size 20x8
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21A6}&quot;
</span><span class="cx">         RenderText {#text} at (136,0) size 4x17
</span><span class="cx">           text run at (136,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (140,5) size 24x9 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 29x9
-            RenderMathMLSpace {mspace} at (3,7) size 23x2 [bgcolor=#0000FF]
-            RenderMathMLOperator {mo} at (0,0) size 29x7
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 23x7
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 22x9
+            RenderMathMLSpace {mspace} at (0,7) size 22x2 [bgcolor=#0000FF]
+            RenderMathMLOperator {mo} at (1,0) size 20x7
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x7
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x7
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21BC}&quot;
</span><span class="cx">         RenderText {#text} at (164,0) size 4x17
</span><span class="cx">           text run at (164,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (168,7) size 24x7 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 29x7
-            RenderMathMLSpace {mspace} at (3,5) size 23x2 [bgcolor=#0000FF]
-            RenderMathMLOperator {mo} at (0,0) size 29x5
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 23x5
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 22x7
+            RenderMathMLSpace {mspace} at (0,5) size 22x2 [bgcolor=#0000FF]
+            RenderMathMLOperator {mo} at (1,0) size 20x5
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x5
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x5
</span><span class="cx">                   RenderText at (0,-39) size 12x80
</span><span class="cx">                     text run at (0,-39) width 12: &quot;\x{21BD}&quot;
</span><span class="cx">         RenderText {#text} at (192,0) size 4x17
</span><span class="cx">           text run at (192,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (196,5) size 24x9 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 29x9
-            RenderMathMLSpace {mspace} at (3,7) size 23x2 [bgcolor=#0000FF]
-            RenderMathMLOperator {mo} at (0,0) size 29x7
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 23x7
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 22x9
+            RenderMathMLSpace {mspace} at (0,7) size 22x2 [bgcolor=#0000FF]
+            RenderMathMLOperator {mo} at (1,0) size 20x7
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x7
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x7
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21C0}&quot;
</span><span class="cx">         RenderText {#text} at (220,0) size 4x17
</span><span class="cx">           text run at (220,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (224,4) size 24x10 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 29x10
-            RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
-            RenderMathMLOperator {mo} at (0,0) size 29x8
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 23x8
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 22x10
+            RenderMathMLSpace {mspace} at (0,8) size 22x2 [bgcolor=#0000FF]
+            RenderMathMLOperator {mo} at (1,0) size 20x8
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21D0}&quot;
</span><span class="cx">         RenderText {#text} at (248,0) size 4x17
</span><span class="cx">           text run at (248,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (252,4) size 24x10 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 29x10
-            RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
-            RenderMathMLOperator {mo} at (0,0) size 29x8
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 23x8
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 22x10
+            RenderMathMLSpace {mspace} at (0,8) size 22x2 [bgcolor=#0000FF]
+            RenderMathMLOperator {mo} at (1,0) size 20x8
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21D2}&quot;
</span><span class="cx">         RenderText {#text} at (276,0) size 4x17
</span><span class="cx">           text run at (276,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (280,4) size 24x10 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 29x10
-            RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
-            RenderMathMLOperator {mo} at (0,0) size 29x8
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 23x8
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 22x10
+            RenderMathMLSpace {mspace} at (0,8) size 22x2 [bgcolor=#0000FF]
+            RenderMathMLOperator {mo} at (1,0) size 20x8
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21D4}&quot;
</span><span class="cx">         RenderText {#text} at (304,0) size 4x17
</span><span class="cx">           text run at (304,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (308,2) size 24x12 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 29x12
-            RenderMathMLSpace {mspace} at (3,10) size 23x2 [bgcolor=#0000FF]
-            RenderMathMLOperator {mo} at (0,0) size 29x10
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 23x10
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 22x12
+            RenderMathMLSpace {mspace} at (0,10) size 22x2 [bgcolor=#0000FF]
+            RenderMathMLOperator {mo} at (1,0) size 20x10
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x10
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x10
</span><span class="cx">                   RenderText at (0,-35) size 12x80
</span><span class="cx">                     text run at (0,-35) width 12: &quot;\x{21DA}&quot;
</span><span class="cx">         RenderText {#text} at (332,0) size 4x17
</span><span class="cx">           text run at (332,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (336,2) size 24x12 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 29x12
-            RenderMathMLSpace {mspace} at (3,10) size 23x2 [bgcolor=#0000FF]
-            RenderMathMLOperator {mo} at (0,0) size 29x10
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 23x10
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 22x12
+            RenderMathMLSpace {mspace} at (0,10) size 22x2 [bgcolor=#0000FF]
+            RenderMathMLOperator {mo} at (1,0) size 20x10
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x10
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x10
</span><span class="cx">                   RenderText at (0,-35) size 12x80
</span><span class="cx">                     text run at (0,-35) width 12: &quot;\x{21DB}&quot;
</span><span class="lines">@@ -137,8 +137,8 @@
</span><span class="cx">         RenderMathMLMath {math} at (364,9) size 24x5 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 22x5
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,3) size 22x2 [bgcolor=#0000FF]
</span><del>-            RenderMathMLOperator {mo} at (0,0) size 22x3
-              RenderMathMLBlock (anonymous, flex) at (0,0) size 22x3
</del><ins>+            RenderMathMLOperator {mo} at (9,0) size 4x3
+              RenderMathMLBlock (anonymous, flex) at (0,0) size 4x3
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 4x3
</span><span class="cx">                   RenderText at (0,-34) size 4x80
</span><span class="cx">                     text run at (0,-34) width 4: &quot;\x{23B4}&quot;
</span><span class="lines">@@ -147,178 +147,178 @@
</span><span class="cx">         RenderMathMLMath {math} at (392,9) size 24x5 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 22x5
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,3) size 22x2 [bgcolor=#0000FF]
</span><del>-            RenderMathMLOperator {mo} at (0,0) size 22x3
-              RenderMathMLBlock (anonymous, flex) at (0,0) size 22x3
</del><ins>+            RenderMathMLOperator {mo} at (9,0) size 4x3
+              RenderMathMLBlock (anonymous, flex) at (0,0) size 4x3
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 4x3
</span><span class="cx">                   RenderText at (0,-43) size 4x80
</span><span class="cx">                     text run at (0,-43) width 4: &quot;\x{23B5}&quot;
</span><span class="cx">         RenderText {#text} at (416,0) size 4x17
</span><span class="cx">           text run at (416,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (420,8) size 24x6 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 24x6
-            RenderMathMLSpace {mspace} at (1,4) size 22x2 [bgcolor=#0000FF]
-            RenderMathMLOperator {mo} at (0,0) size 24x4
-              RenderMathMLBlock (anonymous, flex) at (0,0) size 24x4
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 22x6
+            RenderMathMLSpace {mspace} at (0,4) size 22x2 [bgcolor=#0000FF]
+            RenderMathMLOperator {mo} at (8,0) size 6x4
+              RenderMathMLBlock (anonymous, flex) at (0,0) size 6x4
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 6x4
</span><span class="cx">                   RenderText at (0,-34) size 6x80
</span><span class="cx">                     text run at (0,-34) width 6: &quot;\x{23DC}&quot;
</span><span class="cx">         RenderText {#text} at (444,0) size 4x17
</span><span class="cx">           text run at (444,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (448,7) size 24x7 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 24x7
-            RenderMathMLSpace {mspace} at (1,5) size 22x2 [bgcolor=#0000FF]
-            RenderMathMLOperator {mo} at (0,0) size 24x5
-              RenderMathMLBlock (anonymous, flex) at (0,0) size 24x4
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 22x7
+            RenderMathMLSpace {mspace} at (0,5) size 22x2 [bgcolor=#0000FF]
+            RenderMathMLOperator {mo} at (8,0) size 6x5
+              RenderMathMLBlock (anonymous, flex) at (0,0) size 6x4
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 6x4
</span><span class="cx">                   RenderText at (0,-43) size 6x80
</span><span class="cx">                     text run at (0,-43) width 6: &quot;\x{23DD}&quot;
</span><span class="cx">         RenderText {#text} at (472,0) size 4x17
</span><span class="cx">           text run at (472,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (476,8) size 24x6 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 24x6
-            RenderMathMLSpace {mspace} at (1,4) size 22x2 [bgcolor=#0000FF]
-            RenderMathMLOperator {mo} at (0,0) size 24x4
-              RenderMathMLBlock (anonymous, flex) at (0,0) size 24x4
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 22x6
+            RenderMathMLSpace {mspace} at (0,4) size 22x2 [bgcolor=#0000FF]
+            RenderMathMLOperator {mo} at (8,0) size 6x4
+              RenderMathMLBlock (anonymous, flex) at (0,0) size 6x4
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 6x4
</span><span class="cx">                   RenderText at (0,-33) size 6x80
</span><span class="cx">                     text run at (0,-33) width 6: &quot;\x{23DE}&quot;
</span><span class="cx">         RenderText {#text} at (500,0) size 4x17
</span><span class="cx">           text run at (500,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (504,7) size 24x7 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 24x7
-            RenderMathMLSpace {mspace} at (1,5) size 22x2 [bgcolor=#0000FF]
-            RenderMathMLOperator {mo} at (0,0) size 24x5
-              RenderMathMLBlock (anonymous, flex) at (0,0) size 24x5
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 22x7
+            RenderMathMLSpace {mspace} at (0,5) size 22x2 [bgcolor=#0000FF]
+            RenderMathMLOperator {mo} at (8,0) size 6x5
+              RenderMathMLBlock (anonymous, flex) at (0,0) size 6x5
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 6x5
</span><span class="cx">                   RenderText at (0,-43) size 6x80
</span><span class="cx">                     text run at (0,-43) width 6: &quot;\x{23DF}&quot;
</span><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span><span class="cx">       RenderBlock {P} at (0,33) size 784x34
</span><span class="cx">         RenderMathMLMath {math} at (0,4) size 52x10 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 57x10
-            RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
-            RenderMathMLOperator {mo} at (0,0) size 57x8
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 51x8
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 50x10
+            RenderMathMLSpace {mspace} at (0,8) size 50x2 [bgcolor=#008000]
+            RenderMathMLOperator {mo} at (15,0) size 20x8
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{2190}&quot;
</span><span class="cx">         RenderText {#text} at (52,0) size 4x17
</span><span class="cx">           text run at (52,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (56,4) size 52x10 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 57x10
-            RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
-            RenderMathMLOperator {mo} at (0,0) size 57x8
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 51x8
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 50x10
+            RenderMathMLSpace {mspace} at (0,8) size 50x2 [bgcolor=#008000]
+            RenderMathMLOperator {mo} at (15,0) size 20x8
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{2192}&quot;
</span><span class="cx">         RenderText {#text} at (108,0) size 4x17
</span><span class="cx">           text run at (108,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (112,4) size 52x10 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 57x10
-            RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
-            RenderMathMLOperator {mo} at (0,0) size 57x8
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 51x8
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 50x10
+            RenderMathMLSpace {mspace} at (0,8) size 50x2 [bgcolor=#008000]
+            RenderMathMLOperator {mo} at (15,0) size 20x8
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{2194}&quot;
</span><span class="cx">         RenderText {#text} at (164,0) size 4x17
</span><span class="cx">           text run at (164,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (168,4) size 52x10 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 57x10
-            RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
-            RenderMathMLOperator {mo} at (0,0) size 57x8
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 51x8
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 50x10
+            RenderMathMLSpace {mspace} at (0,8) size 50x2 [bgcolor=#008000]
+            RenderMathMLOperator {mo} at (15,0) size 20x8
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21A4}&quot;
</span><span class="cx">         RenderText {#text} at (220,0) size 4x17
</span><span class="cx">           text run at (220,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (224,4) size 52x10 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 57x10
-            RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
-            RenderMathMLOperator {mo} at (0,0) size 57x8
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 51x8
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 50x10
+            RenderMathMLSpace {mspace} at (0,8) size 50x2 [bgcolor=#008000]
+            RenderMathMLOperator {mo} at (15,0) size 20x8
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21A6}&quot;
</span><span class="cx">         RenderText {#text} at (276,0) size 4x17
</span><span class="cx">           text run at (276,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (280,5) size 52x9 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 57x9
-            RenderMathMLSpace {mspace} at (3,7) size 51x2 [bgcolor=#008000]
-            RenderMathMLOperator {mo} at (0,0) size 57x7
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 51x7
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 50x9
+            RenderMathMLSpace {mspace} at (0,7) size 50x2 [bgcolor=#008000]
+            RenderMathMLOperator {mo} at (15,0) size 20x7
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x7
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x7
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21BC}&quot;
</span><span class="cx">         RenderText {#text} at (332,0) size 4x17
</span><span class="cx">           text run at (332,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (336,7) size 52x7 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 57x7
-            RenderMathMLSpace {mspace} at (3,5) size 51x2 [bgcolor=#008000]
-            RenderMathMLOperator {mo} at (0,0) size 57x5
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 51x5
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 50x7
+            RenderMathMLSpace {mspace} at (0,5) size 50x2 [bgcolor=#008000]
+            RenderMathMLOperator {mo} at (15,0) size 20x5
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x5
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x5
</span><span class="cx">                   RenderText at (0,-39) size 12x80
</span><span class="cx">                     text run at (0,-39) width 12: &quot;\x{21BD}&quot;
</span><span class="cx">         RenderText {#text} at (388,0) size 4x17
</span><span class="cx">           text run at (388,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (392,5) size 52x9 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 57x9
-            RenderMathMLSpace {mspace} at (3,7) size 51x2 [bgcolor=#008000]
-            RenderMathMLOperator {mo} at (0,0) size 57x7
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 51x7
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 50x9
+            RenderMathMLSpace {mspace} at (0,7) size 50x2 [bgcolor=#008000]
+            RenderMathMLOperator {mo} at (15,0) size 20x7
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x7
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x7
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21C0}&quot;
</span><span class="cx">         RenderText {#text} at (444,0) size 4x17
</span><span class="cx">           text run at (444,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (448,4) size 52x10 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 57x10
-            RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
-            RenderMathMLOperator {mo} at (0,0) size 57x8
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 51x8
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 50x10
+            RenderMathMLSpace {mspace} at (0,8) size 50x2 [bgcolor=#008000]
+            RenderMathMLOperator {mo} at (15,0) size 20x8
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21D0}&quot;
</span><span class="cx">         RenderText {#text} at (500,0) size 4x17
</span><span class="cx">           text run at (500,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (504,4) size 52x10 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 57x10
-            RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
-            RenderMathMLOperator {mo} at (0,0) size 57x8
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 51x8
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 50x10
+            RenderMathMLSpace {mspace} at (0,8) size 50x2 [bgcolor=#008000]
+            RenderMathMLOperator {mo} at (15,0) size 20x8
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21D2}&quot;
</span><span class="cx">         RenderText {#text} at (556,0) size 4x17
</span><span class="cx">           text run at (556,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (560,4) size 52x10 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 57x10
-            RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
-            RenderMathMLOperator {mo} at (0,0) size 57x8
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 51x8
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 50x10
+            RenderMathMLSpace {mspace} at (0,8) size 50x2 [bgcolor=#008000]
+            RenderMathMLOperator {mo} at (15,0) size 20x8
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21D4}&quot;
</span><span class="cx">         RenderText {#text} at (612,0) size 4x17
</span><span class="cx">           text run at (612,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (616,2) size 52x12 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 57x12
-            RenderMathMLSpace {mspace} at (3,10) size 51x2 [bgcolor=#008000]
-            RenderMathMLOperator {mo} at (0,0) size 57x10
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 51x10
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 50x12
+            RenderMathMLSpace {mspace} at (0,10) size 50x2 [bgcolor=#008000]
+            RenderMathMLOperator {mo} at (15,0) size 20x10
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x10
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x10
</span><span class="cx">                   RenderText at (0,-35) size 12x80
</span><span class="cx">                     text run at (0,-35) width 12: &quot;\x{21DA}&quot;
</span><span class="cx">         RenderText {#text} at (668,0) size 4x17
</span><span class="cx">           text run at (668,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (672,2) size 52x12 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 57x12
-            RenderMathMLSpace {mspace} at (3,10) size 51x2 [bgcolor=#008000]
-            RenderMathMLOperator {mo} at (0,0) size 57x10
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 51x10
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 50x12
+            RenderMathMLSpace {mspace} at (0,10) size 50x2 [bgcolor=#008000]
+            RenderMathMLOperator {mo} at (15,0) size 20x10
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x10
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x10
</span><span class="cx">                   RenderText at (0,-35) size 12x80
</span><span class="cx">                     text run at (0,-35) width 12: &quot;\x{21DB}&quot;
</span><span class="lines">@@ -327,8 +327,8 @@
</span><span class="cx">         RenderMathMLMath {math} at (728,2) size 52x12 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 50x12
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,10) size 50x2 [bgcolor=#008000]
</span><del>-            RenderMathMLOperator {mo} at (0,0) size 50x10
-              RenderMathMLBlock (anonymous, flex) at (0,0) size 50x10
</del><ins>+            RenderMathMLOperator {mo} at (23,0) size 4x10
+              RenderMathMLBlock (anonymous, flex) at (0,0) size 4x10
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 4x10
</span><span class="cx">                   RenderText at (0,-34) size 4x80
</span><span class="cx">                     text run at (0,-34) width 4: &quot;\x{23B4}&quot;
</span><span class="lines">@@ -336,8 +336,8 @@
</span><span class="cx">         RenderMathMLMath {math} at (0,24) size 52x7 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 50x7
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,5) size 50x2 [bgcolor=#008000]
</span><del>-            RenderMathMLOperator {mo} at (0,0) size 50x5
-              RenderMathMLBlock (anonymous, flex) at (0,0) size 50x4
</del><ins>+            RenderMathMLOperator {mo} at (23,0) size 4x5
+              RenderMathMLBlock (anonymous, flex) at (0,0) size 4x4
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 4x4
</span><span class="cx">                   RenderText at (0,-43) size 4x80
</span><span class="cx">                     text run at (0,-43) width 4: &quot;\x{23B5}&quot;
</span><span class="lines">@@ -346,8 +346,8 @@
</span><span class="cx">         RenderMathMLMath {math} at (56,19) size 52x12 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 50x12
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,10) size 50x2 [bgcolor=#008000]
</span><del>-            RenderMathMLOperator {mo} at (0,0) size 50x10
-              RenderMathMLBlock (anonymous, flex) at (0,0) size 50x10
</del><ins>+            RenderMathMLOperator {mo} at (22,0) size 6x10
+              RenderMathMLBlock (anonymous, flex) at (0,0) size 6x10
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 6x10
</span><span class="cx">                   RenderText at (0,-34) size 6x80
</span><span class="cx">                     text run at (0,-34) width 6: &quot;\x{23DC}&quot;
</span><span class="lines">@@ -356,8 +356,8 @@
</span><span class="cx">         RenderMathMLMath {math} at (112,24) size 52x7 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 50x7
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,5) size 50x2 [bgcolor=#008000]
</span><del>-            RenderMathMLOperator {mo} at (0,0) size 50x5
-              RenderMathMLBlock (anonymous, flex) at (0,0) size 50x4
</del><ins>+            RenderMathMLOperator {mo} at (22,0) size 6x5
+              RenderMathMLBlock (anonymous, flex) at (0,0) size 6x4
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 6x4
</span><span class="cx">                   RenderText at (0,-43) size 6x80
</span><span class="cx">                     text run at (0,-43) width 6: &quot;\x{23DD}&quot;
</span><span class="lines">@@ -366,8 +366,8 @@
</span><span class="cx">         RenderMathMLMath {math} at (168,18) size 52x13 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 50x13
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,11) size 50x2 [bgcolor=#008000]
</span><del>-            RenderMathMLOperator {mo} at (0,0) size 50x11
-              RenderMathMLBlock (anonymous, flex) at (0,0) size 50x11
</del><ins>+            RenderMathMLOperator {mo} at (22,0) size 6x11
+              RenderMathMLBlock (anonymous, flex) at (0,0) size 6x11
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 6x11
</span><span class="cx">                   RenderText at (0,-33) size 6x80
</span><span class="cx">                     text run at (0,-33) width 6: &quot;\x{23DE}&quot;
</span><span class="lines">@@ -376,137 +376,137 @@
</span><span class="cx">         RenderMathMLMath {math} at (224,23) size 52x8 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 50x8
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,6) size 50x2 [bgcolor=#008000]
</span><del>-            RenderMathMLOperator {mo} at (0,0) size 50x6
-              RenderMathMLBlock (anonymous, flex) at (0,0) size 50x5
</del><ins>+            RenderMathMLOperator {mo} at (22,0) size 6x6
+              RenderMathMLBlock (anonymous, flex) at (0,0) size 6x5
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 6x5
</span><span class="cx">                   RenderText at (0,-43) size 6x80
</span><span class="cx">                     text run at (0,-43) width 6: &quot;\x{23DF}&quot;
</span><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span><span class="cx">       RenderBlock {P} at (0,83) size 784x51
</span><span class="cx">         RenderMathMLMath {math} at (0,4) size 102x10 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 107x10
-            RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
-            RenderMathMLOperator {mo} at (0,0) size 107x8
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 101x8
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 100x10
+            RenderMathMLSpace {mspace} at (0,8) size 100x2 [bgcolor=#FF0000]
+            RenderMathMLOperator {mo} at (40,0) size 20x8
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{2190}&quot;
</span><span class="cx">         RenderText {#text} at (102,0) size 4x17
</span><span class="cx">           text run at (102,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (106,4) size 102x10 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 107x10
-            RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
-            RenderMathMLOperator {mo} at (0,0) size 107x8
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 101x8
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 100x10
+            RenderMathMLSpace {mspace} at (0,8) size 100x2 [bgcolor=#FF0000]
+            RenderMathMLOperator {mo} at (40,0) size 20x8
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{2192}&quot;
</span><span class="cx">         RenderText {#text} at (208,0) size 4x17
</span><span class="cx">           text run at (208,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (212,4) size 102x10 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 107x10
-            RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
-            RenderMathMLOperator {mo} at (0,0) size 107x8
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 101x8
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 100x10
+            RenderMathMLSpace {mspace} at (0,8) size 100x2 [bgcolor=#FF0000]
+            RenderMathMLOperator {mo} at (40,0) size 20x8
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{2194}&quot;
</span><span class="cx">         RenderText {#text} at (314,0) size 4x17
</span><span class="cx">           text run at (314,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (318,4) size 102x10 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 107x10
-            RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
-            RenderMathMLOperator {mo} at (0,0) size 107x8
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 101x8
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 100x10
+            RenderMathMLSpace {mspace} at (0,8) size 100x2 [bgcolor=#FF0000]
+            RenderMathMLOperator {mo} at (40,0) size 20x8
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21A4}&quot;
</span><span class="cx">         RenderText {#text} at (420,0) size 4x17
</span><span class="cx">           text run at (420,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (424,4) size 102x10 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 107x10
-            RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
-            RenderMathMLOperator {mo} at (0,0) size 107x8
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 101x8
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 100x10
+            RenderMathMLSpace {mspace} at (0,8) size 100x2 [bgcolor=#FF0000]
+            RenderMathMLOperator {mo} at (40,0) size 20x8
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21A6}&quot;
</span><span class="cx">         RenderText {#text} at (526,0) size 4x17
</span><span class="cx">           text run at (526,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (530,5) size 102x9 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 107x9
-            RenderMathMLSpace {mspace} at (3,7) size 101x2 [bgcolor=#FF0000]
-            RenderMathMLOperator {mo} at (0,0) size 107x7
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 101x7
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 100x9
+            RenderMathMLSpace {mspace} at (0,7) size 100x2 [bgcolor=#FF0000]
+            RenderMathMLOperator {mo} at (40,0) size 20x7
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x7
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x7
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21BC}&quot;
</span><span class="cx">         RenderText {#text} at (632,0) size 4x17
</span><span class="cx">           text run at (632,0) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (636,7) size 102x7 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 107x7
-            RenderMathMLSpace {mspace} at (3,5) size 101x2 [bgcolor=#FF0000]
-            RenderMathMLOperator {mo} at (0,0) size 107x5
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 101x5
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 100x7
+            RenderMathMLSpace {mspace} at (0,5) size 100x2 [bgcolor=#FF0000]
+            RenderMathMLOperator {mo} at (40,0) size 20x5
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x5
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x5
</span><span class="cx">                   RenderText at (0,-39) size 12x80
</span><span class="cx">                     text run at (0,-39) width 12: &quot;\x{21BD}&quot;
</span><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span><span class="cx">         RenderMathMLMath {math} at (0,22) size 102x9 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 107x9
-            RenderMathMLSpace {mspace} at (3,7) size 101x2 [bgcolor=#FF0000]
-            RenderMathMLOperator {mo} at (0,0) size 107x7
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 101x7
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 100x9
+            RenderMathMLSpace {mspace} at (0,7) size 100x2 [bgcolor=#FF0000]
+            RenderMathMLOperator {mo} at (40,0) size 20x7
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x7
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x7
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21C0}&quot;
</span><span class="cx">         RenderText {#text} at (102,17) size 4x17
</span><span class="cx">           text run at (102,17) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (106,21) size 102x10 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 107x10
-            RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
-            RenderMathMLOperator {mo} at (0,0) size 107x8
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 101x8
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 100x10
+            RenderMathMLSpace {mspace} at (0,8) size 100x2 [bgcolor=#FF0000]
+            RenderMathMLOperator {mo} at (40,0) size 20x8
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21D0}&quot;
</span><span class="cx">         RenderText {#text} at (208,17) size 4x17
</span><span class="cx">           text run at (208,17) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (212,21) size 102x10 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 107x10
-            RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
-            RenderMathMLOperator {mo} at (0,0) size 107x8
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 101x8
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 100x10
+            RenderMathMLSpace {mspace} at (0,8) size 100x2 [bgcolor=#FF0000]
+            RenderMathMLOperator {mo} at (40,0) size 20x8
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21D2}&quot;
</span><span class="cx">         RenderText {#text} at (314,17) size 4x17
</span><span class="cx">           text run at (314,17) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (318,21) size 102x10 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 107x10
-            RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
-            RenderMathMLOperator {mo} at (0,0) size 107x8
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 101x8
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 100x10
+            RenderMathMLSpace {mspace} at (0,8) size 100x2 [bgcolor=#FF0000]
+            RenderMathMLOperator {mo} at (40,0) size 20x8
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21D4}&quot;
</span><span class="cx">         RenderText {#text} at (420,17) size 4x17
</span><span class="cx">           text run at (420,17) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (424,19) size 102x12 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 107x12
-            RenderMathMLSpace {mspace} at (3,10) size 101x2 [bgcolor=#FF0000]
-            RenderMathMLOperator {mo} at (0,0) size 107x10
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 101x10
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 100x12
+            RenderMathMLSpace {mspace} at (0,10) size 100x2 [bgcolor=#FF0000]
+            RenderMathMLOperator {mo} at (40,0) size 20x10
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x10
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x10
</span><span class="cx">                   RenderText at (0,-35) size 12x80
</span><span class="cx">                     text run at (0,-35) width 12: &quot;\x{21DA}&quot;
</span><span class="cx">         RenderText {#text} at (526,17) size 4x17
</span><span class="cx">           text run at (526,17) width 4: &quot; &quot;
</span><span class="cx">         RenderMathMLMath {math} at (530,19) size 102x12 [padding: 0 1 0 1]
</span><del>-          RenderMathMLUnderOver {mover} at (1,0) size 107x12
-            RenderMathMLSpace {mspace} at (3,10) size 101x2 [bgcolor=#FF0000]
-            RenderMathMLOperator {mo} at (0,0) size 107x10
-              RenderMathMLBlock (anonymous, flex) at (3,0) size 101x10
</del><ins>+          RenderMathMLUnderOver {mover} at (1,0) size 100x12
+            RenderMathMLSpace {mspace} at (0,10) size 100x2 [bgcolor=#FF0000]
+            RenderMathMLOperator {mo} at (40,0) size 20x10
+              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x10
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x10
</span><span class="cx">                   RenderText at (0,-35) size 12x80
</span><span class="cx">                     text run at (0,-35) width 12: &quot;\x{21DB}&quot;
</span><span class="lines">@@ -515,8 +515,8 @@
</span><span class="cx">         RenderMathMLMath {math} at (636,19) size 102x12 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 100x12
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,10) size 100x2 [bgcolor=#FF0000]
</span><del>-            RenderMathMLOperator {mo} at (0,0) size 100x10
-              RenderMathMLBlock (anonymous, flex) at (0,0) size 100x10
</del><ins>+            RenderMathMLOperator {mo} at (48,0) size 4x10
+              RenderMathMLBlock (anonymous, flex) at (0,0) size 4x10
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 4x10
</span><span class="cx">                   RenderText at (0,-34) size 4x80
</span><span class="cx">                     text run at (0,-34) width 4: &quot;\x{23B4}&quot;
</span><span class="lines">@@ -524,8 +524,8 @@
</span><span class="cx">         RenderMathMLMath {math} at (0,41) size 102x7 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 100x7
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,5) size 100x2 [bgcolor=#FF0000]
</span><del>-            RenderMathMLOperator {mo} at (0,0) size 100x5
-              RenderMathMLBlock (anonymous, flex) at (0,0) size 100x4
</del><ins>+            RenderMathMLOperator {mo} at (48,0) size 4x5
+              RenderMathMLBlock (anonymous, flex) at (0,0) size 4x4
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 4x4
</span><span class="cx">                   RenderText at (0,-43) size 4x80
</span><span class="cx">                     text run at (0,-43) width 4: &quot;\x{23B5}&quot;
</span><span class="lines">@@ -534,8 +534,8 @@
</span><span class="cx">         RenderMathMLMath {math} at (106,36) size 102x12 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 100x12
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,10) size 100x2 [bgcolor=#FF0000]
</span><del>-            RenderMathMLOperator {mo} at (0,0) size 100x10
-              RenderMathMLBlock (anonymous, flex) at (0,0) size 100x10
</del><ins>+            RenderMathMLOperator {mo} at (47,0) size 6x10
+              RenderMathMLBlock (anonymous, flex) at (0,0) size 6x10
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 6x10
</span><span class="cx">                   RenderText at (0,-34) size 6x80
</span><span class="cx">                     text run at (0,-34) width 6: &quot;\x{23DC}&quot;
</span><span class="lines">@@ -544,8 +544,8 @@
</span><span class="cx">         RenderMathMLMath {math} at (212,41) size 102x7 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 100x7
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,5) size 100x2 [bgcolor=#FF0000]
</span><del>-            RenderMathMLOperator {mo} at (0,0) size 100x5
-              RenderMathMLBlock (anonymous, flex) at (0,0) size 100x4
</del><ins>+            RenderMathMLOperator {mo} at (47,0) size 6x5
+              RenderMathMLBlock (anonymous, flex) at (0,0) size 6x4
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 6x4
</span><span class="cx">                   RenderText at (0,-43) size 6x80
</span><span class="cx">                     text run at (0,-43) width 6: &quot;\x{23DD}&quot;
</span><span class="lines">@@ -554,8 +554,8 @@
</span><span class="cx">         RenderMathMLMath {math} at (318,35) size 102x13 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 100x13
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,11) size 100x2 [bgcolor=#FF0000]
</span><del>-            RenderMathMLOperator {mo} at (0,0) size 100x11
-              RenderMathMLBlock (anonymous, flex) at (0,0) size 100x11
</del><ins>+            RenderMathMLOperator {mo} at (47,0) size 6x11
+              RenderMathMLBlock (anonymous, flex) at (0,0) size 6x11
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 6x11
</span><span class="cx">                   RenderText at (0,-33) size 6x80
</span><span class="cx">                     text run at (0,-33) width 6: &quot;\x{23DE}&quot;
</span><span class="lines">@@ -564,8 +564,8 @@
</span><span class="cx">         RenderMathMLMath {math} at (424,40) size 102x8 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 100x8
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,6) size 100x2 [bgcolor=#FF0000]
</span><del>-            RenderMathMLOperator {mo} at (0,0) size 100x6
-              RenderMathMLBlock (anonymous, flex) at (0,0) size 100x5
</del><ins>+            RenderMathMLOperator {mo} at (47,0) size 6x6
+              RenderMathMLBlock (anonymous, flex) at (0,0) size 6x5
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 6x5
</span><span class="cx">                   RenderText at (0,-43) size 6x80
</span><span class="cx">                     text run at (0,-43) width 6: &quot;\x{23DF}&quot;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkmathmlopentypehorizontalmunderoverexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/mathml/opentype/horizontal-munderover-expected.txt (202155 => 202156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/mathml/opentype/horizontal-munderover-expected.txt        2016-06-17 03:51:00 UTC (rev 202155)
+++ trunk/LayoutTests/platform/gtk/mathml/opentype/horizontal-munderover-expected.txt        2016-06-17 04:34:24 UTC (rev 202156)
</span><span class="lines">@@ -7,8 +7,8 @@
</span><span class="cx">         RenderMathMLMath {math} at (0,4) size 50x16 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLRow {mstyle} at (1,0) size 48x16
</span><span class="cx">             RenderMathMLUnderOver {mover} at (0,0) size 48x8
</span><del>-              RenderMathMLOperator {mo} at (0,2) size 48x6
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 48x6
</del><ins>+              RenderMathMLOperator {mo} at (20,2) size 8x6
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 8x6
</ins><span class="cx">                   RenderBlock (anonymous) at (0,0) size 8x6
</span><span class="cx">                     RenderText at (0,-44) size 8x106
</span><span class="cx">                       text run at (0,-44) width 8: &quot;\x{23DE}&quot;
</span><span class="lines">@@ -19,8 +19,8 @@
</span><span class="cx">           RenderMathMLRow {mstyle} at (1,0) size 64x13
</span><span class="cx">             RenderMathMLUnderOver {mover} at (0,0) size 64x13
</span><span class="cx">               RenderMathMLSpace {mspace} at (0,11) size 64x2 [bgcolor=#FF0000]
</span><del>-              RenderMathMLOperator {mo} at (0,0) size 64x11
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 64x11
</del><ins>+              RenderMathMLOperator {mo} at (29,0) size 6x11
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 6x11
</ins><span class="cx">                   RenderBlock (anonymous) at (0,0) size 6x11
</span><span class="cx">                     RenderText at (0,-33) size 6x80
</span><span class="cx">                       text run at (0,-33) width 6: &quot;\x{23DE}&quot;
</span><span class="lines">@@ -29,8 +29,8 @@
</span><span class="cx">         RenderMathMLMath {math} at (124,6) size 50x14 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLRow {mstyle} at (1,0) size 48x14
</span><span class="cx">             RenderMathMLUnderOver {munder} at (0,0) size 48x8
</span><del>-              RenderMathMLOperator {mo} at (0,0) size 48x6
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 48x6
</del><ins>+              RenderMathMLOperator {mo} at (20,0) size 8x6
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 8x6
</ins><span class="cx">                   RenderBlock (anonymous) at (0,0) size 8x6
</span><span class="cx">                     RenderText at (0,-44) size 8x106
</span><span class="cx">                       text run at (0,-44) width 8: &quot;\x{23DE}&quot;
</span><span class="lines">@@ -41,13 +41,13 @@
</span><span class="cx">           RenderMathMLRow {mstyle} at (1,0) size 64x24
</span><span class="cx">             RenderMathMLUnderOver {munderover} at (0,0) size 64x24
</span><span class="cx">               RenderMathMLSpace {mspace} at (0,11) size 64x2 [bgcolor=#FF0000]
</span><del>-              RenderMathMLOperator {mo} at (0,13) size 64x11
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 64x11
</del><ins>+              RenderMathMLOperator {mo} at (29,13) size 6x11
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 6x11
</ins><span class="cx">                   RenderBlock (anonymous) at (0,0) size 6x11
</span><span class="cx">                     RenderText at (0,-33) size 6x80
</span><span class="cx">                       text run at (0,-33) width 6: &quot;\x{23DE}&quot;
</span><del>-              RenderMathMLOperator {mo} at (0,0) size 64x11
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 64x11
</del><ins>+              RenderMathMLOperator {mo} at (29,0) size 6x11
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 6x11
</ins><span class="cx">                   RenderBlock (anonymous) at (0,0) size 6x11
</span><span class="cx">                     RenderText at (0,-33) size 6x80
</span><span class="cx">                       text run at (0,-33) width 6: &quot;\x{23DE}&quot;
</span><span class="lines">@@ -56,14 +56,14 @@
</span><span class="cx">         RenderMathMLMath {math} at (248,0) size 50x20 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLRow {mstyle} at (1,0) size 48x20
</span><span class="cx">             RenderMathMLUnderOver {munderover} at (0,0) size 48x14
</span><del>-              RenderMathMLOperator {mo} at (0,6) size 48x6
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 48x6
</del><ins>+              RenderMathMLOperator {mo} at (20,6) size 8x6
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 8x6
</ins><span class="cx">                   RenderBlock (anonymous) at (0,0) size 8x6
</span><span class="cx">                     RenderText at (0,-44) size 8x106
</span><span class="cx">                       text run at (0,-44) width 8: &quot;\x{23DE}&quot;
</span><span class="cx">               RenderMathMLSpace {mspace} at (0,12) size 48x2 [bgcolor=#FF0000]
</span><del>-              RenderMathMLOperator {mo} at (0,0) size 48x6
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 48x6
</del><ins>+              RenderMathMLOperator {mo} at (21,0) size 6x6
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 6x6
</ins><span class="cx">                   RenderBlock (anonymous) at (0,0) size 6x6
</span><span class="cx">                     RenderText at (0,-33) size 6x80
</span><span class="cx">                       text run at (0,-33) width 6: &quot;\x{23DE}&quot;
</span><span class="lines">@@ -72,13 +72,13 @@
</span><span class="cx">         RenderMathMLMath {math} at (302,4) size 50x16 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLRow {mstyle} at (1,0) size 48x16
</span><span class="cx">             RenderMathMLUnderOver {munderover} at (0,0) size 48x14
</span><del>-              RenderMathMLOperator {mo} at (0,2) size 48x6
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 48x6
</del><ins>+              RenderMathMLOperator {mo} at (20,2) size 8x6
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 8x6
</ins><span class="cx">                   RenderBlock (anonymous) at (0,0) size 8x6
</span><span class="cx">                     RenderText at (0,-44) size 8x106
</span><span class="cx">                       text run at (0,-44) width 8: &quot;\x{23DE}&quot;
</span><del>-              RenderMathMLOperator {mo} at (0,8) size 48x6
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 48x6
</del><ins>+              RenderMathMLOperator {mo} at (21,8) size 6x6
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 6x6
</ins><span class="cx">                   RenderBlock (anonymous) at (0,0) size 6x6
</span><span class="cx">                     RenderText at (0,-33) size 6x80
</span><span class="cx">                       text run at (0,-33) width 6: &quot;\x{23DE}&quot;
</span><span class="lines">@@ -89,14 +89,14 @@
</span><span class="cx">           RenderMathMLRow {mstyle} at (1,0) size 48x16
</span><span class="cx">             RenderMathMLUnderOver {munder} at (0,0) size 48x14
</span><span class="cx">               RenderMathMLUnderOver {mover} at (0,0) size 48x8
</span><del>-                RenderMathMLOperator {mo} at (0,2) size 48x6
-                  RenderMathMLBlock (anonymous, flex) at (0,0) size 48x6
</del><ins>+                RenderMathMLOperator {mo} at (20,2) size 8x6
+                  RenderMathMLBlock (anonymous, flex) at (0,0) size 8x6
</ins><span class="cx">                     RenderBlock (anonymous) at (0,0) size 8x6
</span><span class="cx">                       RenderText at (0,-44) size 8x106
</span><span class="cx">                         text run at (0,-44) width 8: &quot;\x{23DE}&quot;
</span><span class="cx">                 RenderMathMLSpace {mspace} at (0,0) size 48x2 [bgcolor=#FF0000]
</span><del>-              RenderMathMLOperator {mo} at (0,8) size 48x6
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 48x6
</del><ins>+              RenderMathMLOperator {mo} at (21,8) size 6x6
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 6x6
</ins><span class="cx">                   RenderBlock (anonymous) at (0,0) size 6x6
</span><span class="cx">                     RenderText at (0,-33) size 6x80
</span><span class="cx">                       text run at (0,-33) width 6: &quot;\x{23DE}&quot;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkmathmlopentypelargeoperatorsexpectedpng"></a>
<div class="binary"><h4>Modified: trunk/LayoutTests/platform/gtk/mathml/opentype/large-operators-expected.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkmathmlopentypelargeoperatorsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/mathml/opentype/large-operators-expected.txt (202155 => 202156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/mathml/opentype/large-operators-expected.txt        2016-06-17 03:51:00 UTC (rev 202155)
+++ trunk/LayoutTests/platform/gtk/mathml/opentype/large-operators-expected.txt        2016-06-17 04:34:24 UTC (rev 202156)
</span><span class="lines">@@ -4,82 +4,82 @@
</span><span class="cx">   RenderBlock {HTML} at (0,0) size 800x60
</span><span class="cx">     RenderBody {BODY} at (8,8) size 784x36
</span><span class="cx">       RenderMathMLMath {math} at (0,0) size 784x36 [padding: 0 1 0 1]
</span><del>-        RenderMathMLOperator {mo} at (205,6) size 27x24
</del><ins>+        RenderMathMLOperator {mo} at (199,6) size 27x24
</ins><span class="cx">           RenderMathMLBlock (anonymous, flex) at (0,0) size 24x16
</span><span class="cx">             RenderBlock (anonymous) at (0,0) size 17x16
</span><span class="cx">               RenderText at (0,-45) size 17x106
</span><span class="cx">                 text run at (0,-45) width 17: &quot;\x{2211}&quot;
</span><del>-        RenderMathMLOperator {mo} at (231,0) size 18x36
</del><ins>+        RenderMathMLOperator {mo} at (225,0) size 18x36
</ins><span class="cx">           RenderMathMLBlock (anonymous, flex) at (0,0) size 16x18
</span><span class="cx">             RenderBlock (anonymous) at (0,0) size 11x18
</span><span class="cx">               RenderText at (0,-44) size 11x106
</span><span class="cx">                 text run at (0,-44) width 11: &quot;\x{222B}&quot;
</span><del>-        RenderMathMLOperator {mo} at (248,0) size 23x36
-          RenderMathMLBlock (anonymous, flex) at (0,0) size 22x18
</del><ins>+        RenderMathMLOperator {mo} at (242,0) size 24x36
+          RenderMathMLBlock (anonymous, flex) at (0,0) size 23x18
</ins><span class="cx">             RenderBlock (anonymous) at (0,0) size 17x18
</span><span class="cx">               RenderText at (0,-44) size 17x106
</span><span class="cx">                 text run at (0,-44) width 17: &quot;\x{222C}&quot;
</span><del>-        RenderMathMLOperator {mo} at (270,0) size 31x36
</del><ins>+        RenderMathMLOperator {mo} at (265,0) size 31x36
</ins><span class="cx">           RenderMathMLBlock (anonymous, flex) at (0,0) size 29x18
</span><span class="cx">             RenderBlock (anonymous) at (0,0) size 22x18
</span><span class="cx">               RenderText at (0,-44) size 22x106
</span><span class="cx">                 text run at (0,-44) width 22: &quot;\x{222D}&quot;
</span><del>-        RenderMathMLOperator {mo} at (300,0) size 38x36
</del><ins>+        RenderMathMLOperator {mo} at (295,0) size 38x36
</ins><span class="cx">           RenderMathMLBlock (anonymous, flex) at (0,0) size 36x18
</span><span class="cx">             RenderBlock (anonymous) at (0,0) size 28x18
</span><span class="cx">               RenderText at (0,-44) size 28x106
</span><span class="cx">                 text run at (0,-44) width 28: &quot;\x{2A0C}&quot;
</span><del>-        RenderMathMLOperator {mo} at (337,7) size 26x22
-          RenderMathMLBlock (anonymous, flex) at (0,0) size 23x16
</del><ins>+        RenderMathMLOperator {mo} at (332,7) size 28x22
+          RenderMathMLBlock (anonymous, flex) at (0,0) size 25x16
</ins><span class="cx">             RenderBlock (anonymous) at (0,0) size 18x16
</span><span class="cx">               RenderText at (0,-45) size 18x106
</span><span class="cx">                 text run at (0,-45) width 18: &quot;\x{2A01}&quot;
</span><del>-        RenderMathMLOperator {mo} at (362,0) size 18x36
</del><ins>+        RenderMathMLOperator {mo} at (359,0) size 18x36
</ins><span class="cx">           RenderMathMLBlock (anonymous, flex) at (0,0) size 16x18
</span><span class="cx">             RenderBlock (anonymous) at (0,0) size 11x18
</span><span class="cx">               RenderText at (0,-44) size 11x106
</span><span class="cx">                 text run at (0,-44) width 11: &quot;\x{222E}&quot;
</span><del>-        RenderMathMLOperator {mo} at (379,0) size 24x36
-          RenderMathMLBlock (anonymous, flex) at (0,0) size 22x18
</del><ins>+        RenderMathMLOperator {mo} at (376,0) size 25x36
+          RenderMathMLBlock (anonymous, flex) at (0,0) size 23x18
</ins><span class="cx">             RenderBlock (anonymous) at (0,0) size 17x18
</span><span class="cx">               RenderText at (0,-44) size 17x106
</span><span class="cx">                 text run at (0,-44) width 17: &quot;\x{222F}&quot;
</span><del>-        RenderMathMLOperator {mo} at (402,0) size 30x36
</del><ins>+        RenderMathMLOperator {mo} at (400,0) size 30x36
</ins><span class="cx">           RenderMathMLBlock (anonymous, flex) at (0,0) size 29x18
</span><span class="cx">             RenderBlock (anonymous) at (0,0) size 22x18
</span><span class="cx">               RenderText at (0,-44) size 22x106
</span><span class="cx">                 text run at (0,-44) width 22: &quot;\x{2230}&quot;
</span><del>-        RenderMathMLOperator {mo} at (431,7) size 20x23
-          RenderMathMLBlock (anonymous, flex) at (0,0) size 17x17
</del><ins>+        RenderMathMLOperator {mo} at (429,7) size 22x23
+          RenderMathMLBlock (anonymous, flex) at (0,0) size 19x17
</ins><span class="cx">             RenderBlock (anonymous) at (0,0) size 13x17
</span><span class="cx">               RenderText at (0,-45) size 13x106
</span><span class="cx">                 text run at (0,-45) width 13: &quot;\x{22C3}&quot;
</span><del>-        RenderMathMLOperator {mo} at (450,6) size 21x24
-          RenderMathMLBlock (anonymous, flex) at (0,0) size 18x18
</del><ins>+        RenderMathMLOperator {mo} at (450,6) size 22x24
+          RenderMathMLBlock (anonymous, flex) at (0,0) size 19x18
</ins><span class="cx">             RenderBlock (anonymous) at (0,0) size 13x18
</span><span class="cx">               RenderText at (0,-44) size 13x106
</span><span class="cx">                 text run at (0,-44) width 13: &quot;\x{22C0}&quot;
</span><del>-        RenderMathMLOperator {mo} at (470,6) size 20x24
-          RenderMathMLBlock (anonymous, flex) at (0,0) size 18x18
</del><ins>+        RenderMathMLOperator {mo} at (471,6) size 21x24
+          RenderMathMLBlock (anonymous, flex) at (0,0) size 19x18
</ins><span class="cx">             RenderBlock (anonymous) at (0,0) size 13x18
</span><span class="cx">               RenderText at (0,-44) size 13x106
</span><span class="cx">                 text run at (0,-44) width 13: &quot;\x{22C1}&quot;
</span><del>-        RenderMathMLOperator {mo} at (489,6) size 20x23
-          RenderMathMLBlock (anonymous, flex) at (0,0) size 17x17
</del><ins>+        RenderMathMLOperator {mo} at (491,6) size 22x23
+          RenderMathMLBlock (anonymous, flex) at (0,0) size 19x17
</ins><span class="cx">             RenderBlock (anonymous) at (0,0) size 13x17
</span><span class="cx">               RenderText at (0,-44) size 13x106
</span><span class="cx">                 text run at (0,-44) width 13: &quot;\x{22C2}&quot;
</span><del>-        RenderMathMLOperator {mo} at (508,7) size 26x22
-          RenderMathMLBlock (anonymous, flex) at (0,0) size 23x16
</del><ins>+        RenderMathMLOperator {mo} at (512,7) size 28x22
+          RenderMathMLBlock (anonymous, flex) at (0,0) size 25x16
</ins><span class="cx">             RenderBlock (anonymous) at (0,0) size 18x16
</span><span class="cx">               RenderText at (0,-45) size 18x106
</span><span class="cx">                 text run at (0,-45) width 18: &quot;\x{2A02}&quot;
</span><del>-        RenderMathMLOperator {mo} at (533,6) size 23x24
</del><ins>+        RenderMathMLOperator {mo} at (539,6) size 23x24
</ins><span class="cx">           RenderMathMLBlock (anonymous, flex) at (0,0) size 21x16
</span><span class="cx">             RenderBlock (anonymous) at (0,0) size 15x16
</span><span class="cx">               RenderText at (0,-45) size 15x106
</span><span class="cx">                 text run at (0,-45) width 15: &quot;\x{220F}&quot;
</span><del>-        RenderMathMLOperator {mo} at (555,6) size 24x24
</del><ins>+        RenderMathMLOperator {mo} at (561,6) size 24x24
</ins><span class="cx">           RenderMathMLBlock (anonymous, flex) at (0,0) size 21x16
</span><span class="cx">             RenderBlock (anonymous) at (0,0) size 15x16
</span><span class="cx">               RenderText at (0,-45) size 15x106
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkmathmlopentypeopentypestretchyexpectedpng"></a>
<div class="binary"><h4>Modified: trunk/LayoutTests/platform/gtk/mathml/opentype/opentype-stretchy-expected.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkmathmlopentypeopentypestretchyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/mathml/opentype/opentype-stretchy-expected.txt (202155 => 202156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/mathml/opentype/opentype-stretchy-expected.txt        2016-06-17 03:51:00 UTC (rev 202155)
+++ trunk/LayoutTests/platform/gtk/mathml/opentype/opentype-stretchy-expected.txt        2016-06-17 04:34:24 UTC (rev 202156)
</span><span class="lines">@@ -40,10 +40,10 @@
</span><span class="cx">                     text run at (0,-3) width 2: &quot;\x{219F}&quot;
</span><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span><span class="cx">       RenderBlock {P} at (0,219) size 784x96
</span><del>-        RenderMathMLMath {math} at (0,0) size 97x93 [padding: 0 1 0 1]
-          RenderMathMLRow {mrow} at (1,0) size 95x93
-            RenderMathMLOperator {mo} at (0,0) size 95x93
-              RenderMathMLBlock (anonymous, flex) at (0,0) size 94x12
</del><ins>+        RenderMathMLMath {math} at (0,0) size 96x93 [padding: 0 1 0 1]
+          RenderMathMLRow {mrow} at (1,0) size 94x93
+            RenderMathMLOperator {mo} at (0,0) size 94x93
+              RenderMathMLBlock (anonymous, flex) at (0,0) size 93x12
</ins><span class="cx">                 RenderBlock (anonymous) at (0,0) size 10x12
</span><span class="cx">                   RenderText at (0,6) size 10x0
</span><span class="cx">                     text run at (0,6) width 10: &quot;\x{2A1B}&quot;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkmathmlopentypeopentypestretchyhorizontalexpectedpng"></a>
<div class="binary"><h4>Modified: trunk/LayoutTests/platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkmathmlopentypeopentypestretchyhorizontalexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt (202155 => 202156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt        2016-06-17 03:51:00 UTC (rev 202155)
+++ trunk/LayoutTests/platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt        2016-06-17 04:34:24 UTC (rev 202156)
</span><span class="lines">@@ -5,34 +5,34 @@
</span><span class="cx">     RenderBody {BODY} at (8,16) size 784x125
</span><span class="cx">       RenderBlock {P} at (0,0) size 784x25
</span><span class="cx">         RenderMathMLMath {math} at (0,2) size 10x23 [padding: 0 1 0 1]
</span><del>-          RenderMathMLRow {mstyle} at (1,0) size 16x23
-            RenderMathMLUnderOver {mover} at (0,0) size 16x23
-              RenderMathMLOperator {mo} at (0,1) size 16x22
-                RenderMathMLBlock (anonymous, flex) at (2,0) size 11x4
</del><ins>+          RenderMathMLRow {mstyle} at (1,0) size 8x23
+            RenderMathMLUnderOver {mover} at (0,0) size 8x23
+              RenderMathMLOperator {mo} at (0,1) size 8x22
+                RenderMathMLBlock (anonymous, flex) at (2,0) size 2x4
</ins><span class="cx">                   RenderBlock (anonymous) at (0,0) size 1x4
</span><span class="cx">                     RenderText at (0,-3) size 1x0
</span><span class="cx">                       text run at (0,-3) width 1: &quot;\x{219C}&quot;
</span><del>-              RenderMathMLSpace {mspace} at (4,0) size 8x1
</del><ins>+              RenderMathMLSpace {mspace} at (0,0) size 8x1
</ins><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span><span class="cx">       RenderBlock {P} at (0,41) size 784x25
</span><span class="cx">         RenderMathMLMath {math} at (0,2) size 17x23 [padding: 0 1 0 1]
</span><del>-          RenderMathMLRow {mstyle} at (1,0) size 26x23
-            RenderMathMLUnderOver {mover} at (0,0) size 26x23
-              RenderMathMLOperator {mo} at (0,1) size 26x22
-                RenderMathMLBlock (anonymous, flex) at (2,0) size 21x4
</del><ins>+          RenderMathMLRow {mstyle} at (1,0) size 15x23
+            RenderMathMLUnderOver {mover} at (0,0) size 15x23
+              RenderMathMLOperator {mo} at (4,1) size 7x22
+                RenderMathMLBlock (anonymous, flex) at (2,0) size 2x4
</ins><span class="cx">                   RenderBlock (anonymous) at (0,0) size 1x4
</span><span class="cx">                     RenderText at (0,-3) size 1x0
</span><span class="cx">                       text run at (0,-3) width 1: &quot;\x{219C}&quot;
</span><del>-              RenderMathMLSpace {mspace} at (5,0) size 16x1
</del><ins>+              RenderMathMLSpace {mspace} at (0,0) size 15x1
</ins><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span><span class="cx">       RenderBlock {P} at (0,82) size 784x43
</span><span class="cx">         RenderMathMLMath {math} at (0,0) size 152x43 [padding: 0 1 0 1]
</span><del>-          RenderMathMLRow {mstyle} at (1,0) size 156x43
-            RenderMathMLUnderOver {mover} at (0,0) size 156x43
-              RenderMathMLOperator {mo} at (0,1) size 156x42
-                RenderMathMLBlock (anonymous, flex) at (2,0) size 151x4
</del><ins>+          RenderMathMLRow {mstyle} at (1,0) size 150x43
+            RenderMathMLUnderOver {mover} at (0,0) size 150x43
+              RenderMathMLOperator {mo} at (71,1) size 8x42
+                RenderMathMLBlock (anonymous, flex) at (2,0) size 2x4
</ins><span class="cx">                   RenderBlock (anonymous) at (0,0) size 1x4
</span><span class="cx">                     RenderText at (0,-3) size 1x0
</span><span class="cx">                       text run at (0,-3) width 1: &quot;\x{219C}&quot;
</span><del>-              RenderMathMLSpace {mspace} at (2,0) size 151x1
</del><ins>+              RenderMathMLSpace {mspace} at (0,0) size 150x1
</ins><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkmathmlopentypeverticalexpectedpng"></a>
<div class="binary"><h4>Modified: trunk/LayoutTests/platform/gtk/mathml/opentype/vertical-expected.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkmathmlopentypeverticalexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/mathml/opentype/vertical-expected.txt (202155 => 202156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/mathml/opentype/vertical-expected.txt        2016-06-17 03:51:00 UTC (rev 202155)
+++ trunk/LayoutTests/platform/gtk/mathml/opentype/vertical-expected.txt        2016-06-17 04:34:24 UTC (rev 202156)
</span><span class="lines">@@ -82,8 +82,8 @@
</span><span class="cx">                   text run at (0,-45) width 6: &quot;\x{27E9}&quot;
</span><span class="cx">           RenderMathMLSpace {mspace} at (192,4) size 0x8
</span><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span><del>-      RenderBlock {P} at (0,34) size 784x32
-        RenderMathMLMath {math} at (0,3) size 194x30 [padding: 0 1 0 1]
</del><ins>+      RenderBlock {P} at (0,34) size 784x30
+        RenderMathMLMath {math} at (0,0) size 194x30 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLOperator {mo} at (1,0) size 11x30
</span><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 4x16
</span><span class="lines">@@ -114,7 +114,7 @@
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 6x16
</span><span class="cx">                 RenderText at (0,-45) size 6x106
</span><span class="cx">                   text run at (0,-45) width 6: &quot;)&quot;
</span><del>-          RenderMathMLOperator {mo} at (79,2) size 8x28
</del><ins>+          RenderMathMLOperator {mo} at (79,1) size 8x28
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (1,0) size 5x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 4x16
</span><span class="cx">                 RenderText at (0,-45) size 4x106
</span><span class="lines">@@ -160,72 +160,72 @@
</span><span class="cx">                 RenderText at (0,-45) size 6x106
</span><span class="cx">                   text run at (0,-45) width 6: &quot;\x{27E9}&quot;
</span><span class="cx">           RenderMathMLSpace {mspace} at (192,3) size 0x16
</span><del>-        RenderText {#text} at (193,8) size 5x17
-          text run at (193,8) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (197,0) size 213x27 [padding: 0 1 0 1]
-          RenderMathMLOperator {mo} at (1,0) size 17x22
</del><ins>+        RenderText {#text} at (193,5) size 5x17
+          text run at (193,5) width 5: &quot; &quot;
+        RenderMathMLMath {math} at (197,3) size 213x23 [padding: 0 1 0 1]
+          RenderMathMLOperator {mo} at (1,1) size 17x22
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (4,0) size 9x15
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 8x15
</span><span class="cx">                 RenderText at (0,-46) size 8x106
</span><span class="cx">                   text run at (0,-46) width 8: &quot;\x{2191}&quot;
</span><del>-          RenderMathMLOperator {mo} at (17,0) size 18x22
</del><ins>+          RenderMathMLOperator {mo} at (17,1) size 18x22
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (4,0) size 9x15
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 8x15
</span><span class="cx">                 RenderText at (0,-45) size 8x106
</span><span class="cx">                   text run at (0,-45) width 8: &quot;\x{2193}&quot;
</span><del>-          RenderMathMLOperator {mo} at (34,9) size 19x18
</del><ins>+          RenderMathMLOperator {mo} at (34,3) size 19x18
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (4,0) size 10x18
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 8x18
</span><span class="cx">                 RenderText at (0,-44) size 8x106
</span><span class="cx">                   text run at (0,-44) width 8: &quot;\x{2195}&quot;
</span><del>-          RenderMathMLOperator {mo} at (52,0) size 20x22
</del><ins>+          RenderMathMLOperator {mo} at (52,1) size 20x22
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (4,0) size 11x14
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 10x14
</span><span class="cx">                 RenderText at (0,-46) size 10x106
</span><span class="cx">                   text run at (0,-46) width 10: &quot;\x{21A5}&quot;
</span><del>-          RenderMathMLOperator {mo} at (71,0) size 20x22
</del><ins>+          RenderMathMLOperator {mo} at (71,1) size 20x22
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (4,0) size 11x14
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 10x14
</span><span class="cx">                 RenderText at (0,-46) size 10x106
</span><span class="cx">                   text run at (0,-46) width 10: &quot;\x{21A7}&quot;
</span><del>-          RenderMathMLOperator {mo} at (90,10) size 17x16
</del><ins>+          RenderMathMLOperator {mo} at (90,4) size 17x16
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (4,0) size 8x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                 RenderText at (0,-45) size 7x106
</span><span class="cx">                   text run at (0,-45) width 7: &quot;\x{21BE}&quot;
</span><del>-          RenderMathMLOperator {mo} at (106,10) size 17x16
</del><ins>+          RenderMathMLOperator {mo} at (106,4) size 17x16
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (4,0) size 8x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                 RenderText at (0,-45) size 7x106
</span><span class="cx">                   text run at (0,-45) width 7: &quot;\x{21C2}&quot;
</span><del>-          RenderMathMLOperator {mo} at (122,10) size 16x16
</del><ins>+          RenderMathMLOperator {mo} at (122,4) size 16x16
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (4,0) size 8x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                 RenderText at (0,-45) size 7x106
</span><span class="cx">                   text run at (0,-45) width 7: &quot;\x{21BF}&quot;
</span><del>-          RenderMathMLOperator {mo} at (138,10) size 16x16
</del><ins>+          RenderMathMLOperator {mo} at (138,4) size 16x16
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (4,0) size 8x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                 RenderText at (0,-45) size 7x106
</span><span class="cx">                   text run at (0,-45) width 7: &quot;\x{21C3}&quot;
</span><del>-          RenderMathMLOperator {mo} at (153,0) size 20x22
</del><ins>+          RenderMathMLOperator {mo} at (153,1) size 20x22
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (4,0) size 11x15
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 10x15
</span><span class="cx">                 RenderText at (0,-46) size 10x106
</span><span class="cx">                   text run at (0,-46) width 10: &quot;\x{21D1}&quot;
</span><del>-          RenderMathMLOperator {mo} at (172,0) size 20x22
</del><ins>+          RenderMathMLOperator {mo} at (172,1) size 20x22
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (4,0) size 11x15
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 10x15
</span><span class="cx">                 RenderText at (0,-45) size 10x106
</span><span class="cx">                   text run at (0,-45) width 10: &quot;\x{21D3}&quot;
</span><del>-          RenderMathMLOperator {mo} at (191,10) size 20x16
</del><ins>+          RenderMathMLOperator {mo} at (191,4) size 20x16
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (4,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 10x16
</span><span class="cx">                 RenderText at (0,-45) size 10x106
</span><span class="cx">                   text run at (0,-45) width 10: &quot;\x{21D5}&quot;
</span><del>-          RenderMathMLSpace {mspace} at (210,6) size 0x16
</del><ins>+          RenderMathMLSpace {mspace} at (210,0) size 0x16
</ins><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span><del>-      RenderBlock {P} at (0,82) size 784x47
</del><ins>+      RenderBlock {P} at (0,80) size 784x48
</ins><span class="cx">         RenderMathMLMath {math} at (0,0) size 194x48 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLOperator {mo} at (1,0) size 11x48
</span><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="lines">@@ -257,7 +257,7 @@
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 6x16
</span><span class="cx">                 RenderText at (0,-45) size 6x106
</span><span class="cx">                   text run at (0,-45) width 6: &quot;)&quot;
</span><del>-          RenderMathMLOperator {mo} at (79,4) size 8x42
</del><ins>+          RenderMathMLOperator {mo} at (79,3) size 8x42
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (1,0) size 5x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 4x16
</span><span class="cx">                 RenderText at (0,-45) size 4x106
</span><span class="lines">@@ -304,34 +304,34 @@
</span><span class="cx">                   text run at (0,-45) width 6: &quot;\x{27E9}&quot;
</span><span class="cx">           RenderMathMLSpace {mspace} at (192,4) size 0x24
</span><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span><del>-      RenderBlock {P} at (0,145) size 784x57
</del><ins>+      RenderBlock {P} at (0,144) size 784x58
</ins><span class="cx">         RenderMathMLMath {math} at (0,0) size 194x58 [padding: 0 1 0 1]
</span><del>-          RenderMathMLOperator {mo} at (1,0) size 11x57
</del><ins>+          RenderMathMLOperator {mo} at (1,1) size 11x57
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 4x16
</span><span class="cx">                 RenderText at (0,-45) size 4x106
</span><span class="cx">                   text run at (0,-45) width 4: &quot;[&quot;
</span><del>-          RenderMathMLOperator {mo} at (12,0) size 11x57
</del><ins>+          RenderMathMLOperator {mo} at (12,1) size 11x57
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 4x16
</span><span class="cx">                 RenderText at (0,-45) size 4x106
</span><span class="cx">                   text run at (0,-45) width 4: &quot;]&quot;
</span><del>-          RenderMathMLOperator {mo} at (23,0) size 14x57
</del><ins>+          RenderMathMLOperator {mo} at (23,1) size 14x57
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 8x16
</span><span class="cx">                 RenderText at (0,-45) size 8x106
</span><span class="cx">                   text run at (0,-45) width 8: &quot;{&quot;
</span><del>-          RenderMathMLOperator {mo} at (37,0) size 14x57
</del><ins>+          RenderMathMLOperator {mo} at (37,1) size 14x57
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 8x16
</span><span class="cx">                 RenderText at (0,-45) size 8x106
</span><span class="cx">                   text run at (0,-45) width 8: &quot;}&quot;
</span><del>-          RenderMathMLOperator {mo} at (51,0) size 14x57
</del><ins>+          RenderMathMLOperator {mo} at (51,1) size 14x57
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 6x16
</span><span class="cx">                 RenderText at (0,-45) size 6x106
</span><span class="cx">                   text run at (0,-45) width 6: &quot;(&quot;
</span><del>-          RenderMathMLOperator {mo} at (65,0) size 14x57
</del><ins>+          RenderMathMLOperator {mo} at (65,1) size 14x57
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 6x16
</span><span class="cx">                 RenderText at (0,-45) size 6x106
</span><span class="lines">@@ -341,50 +341,50 @@
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 4x16
</span><span class="cx">                 RenderText at (0,-45) size 4x106
</span><span class="cx">                   text run at (0,-45) width 4: &quot;|&quot;
</span><del>-          RenderMathMLOperator {mo} at (86,0) size 12x57
</del><ins>+          RenderMathMLOperator {mo} at (86,1) size 12x57
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                 RenderText at (0,-45) size 7x106
</span><span class="cx">                   text run at (0,-45) width 7: &quot;\x{2308}&quot;
</span><del>-          RenderMathMLOperator {mo} at (97,0) size 12x57
</del><ins>+          RenderMathMLOperator {mo} at (97,1) size 12x57
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                 RenderText at (0,-45) size 7x106
</span><span class="cx">                   text run at (0,-45) width 7: &quot;\x{2309}&quot;
</span><del>-          RenderMathMLOperator {mo} at (108,0) size 12x57
</del><ins>+          RenderMathMLOperator {mo} at (108,1) size 12x57
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                 RenderText at (0,-45) size 7x106
</span><span class="cx">                   text run at (0,-45) width 7: &quot;\x{230A}&quot;
</span><del>-          RenderMathMLOperator {mo} at (119,0) size 12x57
</del><ins>+          RenderMathMLOperator {mo} at (119,1) size 12x57
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                 RenderText at (0,-45) size 7x106
</span><span class="cx">                   text run at (0,-45) width 7: &quot;\x{230B}&quot;
</span><del>-          RenderMathMLOperator {mo} at (130,0) size 17x57
</del><ins>+          RenderMathMLOperator {mo} at (130,1) size 17x57
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 16x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                 RenderText at (0,-45) size 7x106
</span><span class="cx">                   text run at (0,-45) width 7: &quot;\x{27E6}&quot;
</span><del>-          RenderMathMLOperator {mo} at (146,0) size 17x57
</del><ins>+          RenderMathMLOperator {mo} at (146,1) size 17x57
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 16x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                 RenderText at (0,-45) size 7x106
</span><span class="cx">                   text run at (0,-45) width 7: &quot;\x{27E7}&quot;
</span><del>-          RenderMathMLOperator {mo} at (162,6) size 16x48
</del><ins>+          RenderMathMLOperator {mo} at (162,5) size 16x48
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 15x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 6x16
</span><span class="cx">                 RenderText at (0,-45) size 6x106
</span><span class="cx">                   text run at (0,-45) width 6: &quot;\x{27E8}&quot;
</span><del>-          RenderMathMLOperator {mo} at (177,6) size 16x48
</del><ins>+          RenderMathMLOperator {mo} at (177,5) size 16x48
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 15x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 6x16
</span><span class="cx">                 RenderText at (0,-45) size 6x106
</span><span class="cx">                   text run at (0,-45) width 6: &quot;\x{27E9}&quot;
</span><del>-          RenderMathMLSpace {mspace} at (192,0) size 0x32
-        RenderText {#text} at (193,18) size 5x17
-          text run at (193,18) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (197,0) size 213x32 [padding: 0 1 0 1]
</del><ins>+          RenderMathMLSpace {mspace} at (192,1) size 0x32
+        RenderText {#text} at (193,19) size 5x17
+          text run at (193,19) width 5: &quot; &quot;
+        RenderMathMLMath {math} at (197,1) size 213x32 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLOperator {mo} at (1,0) size 17x32
</span><span class="cx">             RenderMathMLBlock (anonymous, flex) at (4,0) size 9x15
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 8x15
</span><span class="lines">@@ -514,12 +514,12 @@
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                 RenderText at (0,-45) size 7x106
</span><span class="cx">                   text run at (0,-45) width 7: &quot;\x{27E7}&quot;
</span><del>-          RenderMathMLOperator {mo} at (162,39) size 16x48
</del><ins>+          RenderMathMLOperator {mo} at (162,36) size 16x48
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 15x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 6x16
</span><span class="cx">                 RenderText at (0,-45) size 6x106
</span><span class="cx">                   text run at (0,-45) width 6: &quot;\x{27E8}&quot;
</span><del>-          RenderMathMLOperator {mo} at (177,39) size 16x48
</del><ins>+          RenderMathMLOperator {mo} at (177,36) size 16x48
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 15x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 6x16
</span><span class="cx">                 RenderText at (0,-45) size 6x106
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkmathmlpresentationmostretchexpectedpng"></a>
<div class="binary"><h4>Modified: trunk/LayoutTests/platform/gtk/mathml/presentation/mo-stretch-expected.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkmathmlpresentationmostretchexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/mathml/presentation/mo-stretch-expected.txt (202155 => 202156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/mathml/presentation/mo-stretch-expected.txt        2016-06-17 03:51:00 UTC (rev 202155)
+++ trunk/LayoutTests/platform/gtk/mathml/presentation/mo-stretch-expected.txt        2016-06-17 04:34:24 UTC (rev 202156)
</span><span class="lines">@@ -1,56 +1,56 @@
</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 800x269
-  RenderBlock {HTML} at (0,0) size 800x269
-    RenderBody {BODY} at (8,8) size 784x253
</del><ins>+layer at (0,0) size 800x270
+  RenderBlock {HTML} at (0,0) size 800x270
+    RenderBody {BODY} at (8,8) size 784x254
</ins><span class="cx">       RenderMathMLMath {math} at (0,0) size 173x36 [padding: 0 1 0 1]
</span><span class="cx">         RenderMathMLRow {mrow} at (1,0) size 171x36
</span><del>-          RenderMathMLOperator {mo} at (0,4) size 14x30
</del><ins>+          RenderMathMLOperator {mo} at (0,3) size 14x30
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 6x16
</span><span class="cx">                 RenderText at (0,-45) size 6x106
</span><span class="cx">                   text run at (0,-45) width 6: &quot;(&quot;
</span><del>-          RenderMathMLOperator {mo} at (14,4) size 14x30
</del><ins>+          RenderMathMLOperator {mo} at (14,3) size 14x30
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 6x16
</span><span class="cx">                 RenderText at (0,-45) size 6x106
</span><span class="cx">                   text run at (0,-45) width 6: &quot;)&quot;
</span><del>-          RenderMathMLOperator {mo} at (28,4) size 14x30
</del><ins>+          RenderMathMLOperator {mo} at (28,3) size 14x30
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 8x16
</span><span class="cx">                 RenderText at (0,-45) size 8x106
</span><span class="cx">                   text run at (0,-45) width 8: &quot;{&quot;
</span><del>-          RenderMathMLOperator {mo} at (42,4) size 14x30
</del><ins>+          RenderMathMLOperator {mo} at (42,3) size 14x30
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 8x16
</span><span class="cx">                 RenderText at (0,-45) size 8x106
</span><span class="cx">                   text run at (0,-45) width 8: &quot;}&quot;
</span><del>-          RenderMathMLOperator {mo} at (56,4) size 11x30
</del><ins>+          RenderMathMLOperator {mo} at (56,3) size 11x30
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 4x16
</span><span class="cx">                 RenderText at (0,-45) size 4x106
</span><span class="cx">                   text run at (0,-45) width 4: &quot;[&quot;
</span><del>-          RenderMathMLOperator {mo} at (67,4) size 11x30
</del><ins>+          RenderMathMLOperator {mo} at (67,3) size 11x30
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 4x16
</span><span class="cx">                 RenderText at (0,-45) size 4x106
</span><span class="cx">                   text run at (0,-45) width 4: &quot;]&quot;
</span><del>-          RenderMathMLOperator {mo} at (78,4) size 11x30
</del><ins>+          RenderMathMLOperator {mo} at (78,3) size 11x30
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                 RenderText at (0,-45) size 7x106
</span><span class="cx">                   text run at (0,-45) width 7: &quot;\x{2308}&quot;
</span><del>-          RenderMathMLOperator {mo} at (89,4) size 11x30
</del><ins>+          RenderMathMLOperator {mo} at (89,3) size 11x30
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                 RenderText at (0,-45) size 7x106
</span><span class="cx">                   text run at (0,-45) width 7: &quot;\x{2309}&quot;
</span><del>-          RenderMathMLOperator {mo} at (100,4) size 11x30
</del><ins>+          RenderMathMLOperator {mo} at (100,3) size 11x30
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                 RenderText at (0,-45) size 7x106
</span><span class="cx">                   text run at (0,-45) width 7: &quot;\x{230A}&quot;
</span><del>-          RenderMathMLOperator {mo} at (111,4) size 11x30
</del><ins>+          RenderMathMLOperator {mo} at (111,3) size 11x30
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                 RenderText at (0,-45) size 7x106
</span><span class="lines">@@ -60,25 +60,25 @@
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 11x18
</span><span class="cx">                 RenderText at (0,-44) size 11x106
</span><span class="cx">                   text run at (0,-44) width 11: &quot;\x{222B}&quot;
</span><del>-          RenderMathMLOperator {mo} at (138,6) size 9x28
</del><ins>+          RenderMathMLOperator {mo} at (138,4) size 9x28
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (1,0) size 5x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 4x16
</span><span class="cx">                 RenderText at (0,-45) size 4x106
</span><span class="cx">                   text run at (0,-45) width 4: &quot;|&quot;
</span><del>-          RenderMathMLOperator {mo} at (146,11) size 8x16
</del><ins>+          RenderMathMLOperator {mo} at (146,10) size 8x16
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 7x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 6x16
</span><span class="cx">                 RenderText at (0,-45) size 6x106
</span><span class="cx">                   text run at (0,-45) width 6: &quot;\x{2016}&quot;
</span><del>-          RenderMathMLOperator {mo} at (153,11) size 18x16
</del><ins>+          RenderMathMLOperator {mo} at (153,10) size 18x16
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (4,0) size 9x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 8x16
</span><span class="cx">                 RenderText at (0,-45) size 8x106
</span><span class="cx">                   text run at (0,-45) width 8: &quot;\x{2225}&quot;
</span><del>-      RenderText {#text} at (172,9) size 5x17
-        text run at (172,9) width 5: &quot; &quot;
</del><ins>+      RenderText {#text} at (172,8) size 5x17
+        text run at (172,8) width 5: &quot; &quot;
</ins><span class="cx">       RenderBR {BR} at (0,0) size 0x0
</span><del>-      RenderMathMLMath {math} at (0,35) size 173x143 [padding: 0 1 0 1]
</del><ins>+      RenderMathMLMath {math} at (0,36) size 173x143 [padding: 0 1 0 1]
</ins><span class="cx">         RenderMathMLRow {mrow} at (1,0) size 171x143
</span><span class="cx">           RenderMathMLOperator {mo} at (0,0) size 14x143
</span><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
</span><span class="lines">@@ -130,7 +130,7 @@
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                 RenderText at (0,-45) size 7x106
</span><span class="cx">                   text run at (0,-45) width 7: &quot;\x{230B}&quot;
</span><del>-          RenderMathMLOperator {mo} at (122,57) size 17x36
</del><ins>+          RenderMathMLOperator {mo} at (122,53) size 17x36
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 16x18
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 11x18
</span><span class="cx">                 RenderText at (0,-44) size 11x106
</span><span class="lines">@@ -151,160 +151,160 @@
</span><span class="cx">                 RenderText at (0,-45) size 8x106
</span><span class="cx">                   text run at (0,-45) width 8: &quot;\x{2225}&quot;
</span><span class="cx">           RenderMathMLSpace {mspace} at (170,0) size 0x76
</span><del>-      RenderText {#text} at (172,96) size 5x17
-        text run at (172,96) width 5: &quot; &quot;
-      RenderMathMLMath {math} at (176,54) size 173x99 [padding: 0 1 0 1]
-        RenderMathMLRow {mrow} at (1,0) size 171x99
-          RenderMathMLOperator {mo} at (0,6) size 14x93
</del><ins>+      RenderText {#text} at (172,97) size 5x17
+        text run at (172,97) width 5: &quot; &quot;
+      RenderMathMLMath {math} at (176,61) size 173x93 [padding: 0 1 0 1]
+        RenderMathMLRow {mrow} at (1,0) size 171x93
+          RenderMathMLOperator {mo} at (0,0) size 14x93
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 6x16
</span><span class="cx">                 RenderText at (0,-45) size 6x106
</span><span class="cx">                   text run at (0,-45) width 6: &quot;(&quot;
</span><del>-          RenderMathMLOperator {mo} at (14,6) size 14x93
</del><ins>+          RenderMathMLOperator {mo} at (14,0) size 14x93
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 6x16
</span><span class="cx">                 RenderText at (0,-45) size 6x106
</span><span class="cx">                   text run at (0,-45) width 6: &quot;)&quot;
</span><del>-          RenderMathMLOperator {mo} at (28,6) size 14x93
</del><ins>+          RenderMathMLOperator {mo} at (28,0) size 14x93
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 8x16
</span><span class="cx">                 RenderText at (0,-45) size 8x106
</span><span class="cx">                   text run at (0,-45) width 8: &quot;{&quot;
</span><del>-          RenderMathMLOperator {mo} at (42,6) size 14x93
</del><ins>+          RenderMathMLOperator {mo} at (42,0) size 14x93
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 8x16
</span><span class="cx">                 RenderText at (0,-45) size 8x106
</span><span class="cx">                   text run at (0,-45) width 8: &quot;}&quot;
</span><del>-          RenderMathMLOperator {mo} at (56,6) size 11x93
</del><ins>+          RenderMathMLOperator {mo} at (56,0) size 11x93
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 4x16
</span><span class="cx">                 RenderText at (0,-45) size 4x106
</span><span class="cx">                   text run at (0,-45) width 4: &quot;[&quot;
</span><del>-          RenderMathMLOperator {mo} at (67,6) size 11x93
</del><ins>+          RenderMathMLOperator {mo} at (67,0) size 11x93
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 4x16
</span><span class="cx">                 RenderText at (0,-45) size 4x106
</span><span class="cx">                   text run at (0,-45) width 4: &quot;]&quot;
</span><del>-          RenderMathMLOperator {mo} at (78,6) size 11x93
</del><ins>+          RenderMathMLOperator {mo} at (78,0) size 11x93
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                 RenderText at (0,-45) size 7x106
</span><span class="cx">                   text run at (0,-45) width 7: &quot;\x{2308}&quot;
</span><del>-          RenderMathMLOperator {mo} at (89,6) size 11x93
</del><ins>+          RenderMathMLOperator {mo} at (89,0) size 11x93
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                 RenderText at (0,-45) size 7x106
</span><span class="cx">                   text run at (0,-45) width 7: &quot;\x{2309}&quot;
</span><del>-          RenderMathMLOperator {mo} at (100,6) size 11x93
</del><ins>+          RenderMathMLOperator {mo} at (100,0) size 11x93
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                 RenderText at (0,-45) size 7x106
</span><span class="cx">                   text run at (0,-45) width 7: &quot;\x{230A}&quot;
</span><del>-          RenderMathMLOperator {mo} at (111,6) size 11x93
</del><ins>+          RenderMathMLOperator {mo} at (111,0) size 11x93
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                 RenderText at (0,-45) size 7x106
</span><span class="cx">                   text run at (0,-45) width 7: &quot;\x{230B}&quot;
</span><del>-          RenderMathMLOperator {mo} at (122,37) size 17x36
</del><ins>+          RenderMathMLOperator {mo} at (122,28) size 17x36
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 16x18
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 11x18
</span><span class="cx">                 RenderText at (0,-44) size 11x106
</span><span class="cx">                   text run at (0,-44) width 11: &quot;\x{222B}&quot;
</span><del>-          RenderMathMLOperator {mo} at (138,6) size 9x93
</del><ins>+          RenderMathMLOperator {mo} at (138,0) size 9x93
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (1,0) size 5x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 4x16
</span><span class="cx">                 RenderText at (0,-45) size 4x106
</span><span class="cx">                   text run at (0,-45) width 4: &quot;|&quot;
</span><del>-          RenderMathMLOperator {mo} at (146,0) size 8x58
</del><ins>+          RenderMathMLOperator {mo} at (146,17) size 8x58
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 7x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 6x16
</span><span class="cx">                 RenderText at (0,-45) size 6x106
</span><span class="cx">                   text run at (0,-45) width 6: &quot;\x{2016}&quot;
</span><del>-          RenderMathMLOperator {mo} at (153,0) size 18x58
</del><ins>+          RenderMathMLOperator {mo} at (153,17) size 18x58
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (4,0) size 9x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 8x16
</span><span class="cx">                 RenderText at (0,-45) size 8x106
</span><span class="cx">                   text run at (0,-45) width 8: &quot;\x{2225}&quot;
</span><del>-          RenderMathMLSpace {mspace} at (170,6) size 0x51
-      RenderText {#text} at (348,96) size 5x17
-        text run at (348,96) width 5: &quot; &quot;
-      RenderMathMLMath {math} at (352,88) size 173x37 [padding: 0 1 0 1]
-        RenderMathMLRow {mrow} at (1,0) size 171x37
-          RenderMathMLOperator {mo} at (0,2) size 14x34
</del><ins>+          RenderMathMLSpace {mspace} at (170,0) size 0x51
+      RenderText {#text} at (348,97) size 5x17
+        text run at (348,97) width 5: &quot; &quot;
+      RenderMathMLMath {math} at (352,89) size 173x36 [padding: 0 1 0 1]
+        RenderMathMLRow {mrow} at (1,0) size 171x36
+          RenderMathMLOperator {mo} at (0,1) size 14x34
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 6x16
</span><span class="cx">                 RenderText at (0,-45) size 6x106
</span><span class="cx">                   text run at (0,-45) width 6: &quot;(&quot;
</span><del>-          RenderMathMLOperator {mo} at (14,2) size 14x34
</del><ins>+          RenderMathMLOperator {mo} at (14,1) size 14x34
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 6x16
</span><span class="cx">                 RenderText at (0,-45) size 6x106
</span><span class="cx">                   text run at (0,-45) width 6: &quot;)&quot;
</span><del>-          RenderMathMLOperator {mo} at (28,2) size 14x34
</del><ins>+          RenderMathMLOperator {mo} at (28,1) size 14x34
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 8x16
</span><span class="cx">                 RenderText at (0,-45) size 8x106
</span><span class="cx">                   text run at (0,-45) width 8: &quot;{&quot;
</span><del>-          RenderMathMLOperator {mo} at (42,2) size 14x34
</del><ins>+          RenderMathMLOperator {mo} at (42,1) size 14x34
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 8x16
</span><span class="cx">                 RenderText at (0,-45) size 8x106
</span><span class="cx">                   text run at (0,-45) width 8: &quot;}&quot;
</span><del>-          RenderMathMLOperator {mo} at (56,2) size 11x34
</del><ins>+          RenderMathMLOperator {mo} at (56,1) size 11x34
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 4x16
</span><span class="cx">                 RenderText at (0,-45) size 4x106
</span><span class="cx">                   text run at (0,-45) width 4: &quot;[&quot;
</span><del>-          RenderMathMLOperator {mo} at (67,2) size 11x34
</del><ins>+          RenderMathMLOperator {mo} at (67,1) size 11x34
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 4x16
</span><span class="cx">                 RenderText at (0,-45) size 4x106
</span><span class="cx">                   text run at (0,-45) width 4: &quot;]&quot;
</span><del>-          RenderMathMLOperator {mo} at (78,2) size 11x34
</del><ins>+          RenderMathMLOperator {mo} at (78,1) size 11x34
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                 RenderText at (0,-45) size 7x106
</span><span class="cx">                   text run at (0,-45) width 7: &quot;\x{2308}&quot;
</span><del>-          RenderMathMLOperator {mo} at (89,2) size 11x34
</del><ins>+          RenderMathMLOperator {mo} at (89,1) size 11x34
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                 RenderText at (0,-45) size 7x106
</span><span class="cx">                   text run at (0,-45) width 7: &quot;\x{2309}&quot;
</span><del>-          RenderMathMLOperator {mo} at (100,2) size 11x34
</del><ins>+          RenderMathMLOperator {mo} at (100,1) size 11x34
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                 RenderText at (0,-45) size 7x106
</span><span class="cx">                   text run at (0,-45) width 7: &quot;\x{230A}&quot;
</span><del>-          RenderMathMLOperator {mo} at (111,2) size 11x34
</del><ins>+          RenderMathMLOperator {mo} at (111,1) size 11x34
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                 RenderText at (0,-45) size 7x106
</span><span class="cx">                   text run at (0,-45) width 7: &quot;\x{230B}&quot;
</span><del>-          RenderMathMLOperator {mo} at (122,1) size 17x36
</del><ins>+          RenderMathMLOperator {mo} at (122,0) size 17x36
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 16x18
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 11x18
</span><span class="cx">                 RenderText at (0,-44) size 11x106
</span><span class="cx">                   text run at (0,-44) width 11: &quot;\x{222B}&quot;
</span><del>-          RenderMathMLOperator {mo} at (138,2) size 9x34
</del><ins>+          RenderMathMLOperator {mo} at (138,1) size 9x34
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (1,0) size 5x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 4x16
</span><span class="cx">                 RenderText at (0,-45) size 4x106
</span><span class="cx">                   text run at (0,-45) width 4: &quot;|&quot;
</span><del>-          RenderMathMLOperator {mo} at (146,0) size 8x24
</del><ins>+          RenderMathMLOperator {mo} at (146,6) size 8x24
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (0,0) size 7x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 6x16
</span><span class="cx">                 RenderText at (0,-45) size 6x106
</span><span class="cx">                   text run at (0,-45) width 6: &quot;\x{2016}&quot;
</span><del>-          RenderMathMLOperator {mo} at (153,0) size 18x24
</del><ins>+          RenderMathMLOperator {mo} at (153,6) size 18x24
</ins><span class="cx">             RenderMathMLBlock (anonymous, flex) at (4,0) size 9x16
</span><span class="cx">               RenderBlock (anonymous) at (0,0) size 8x16
</span><span class="cx">                 RenderText at (0,-45) size 8x106
</span><span class="cx">                   text run at (0,-45) width 8: &quot;\x{2225}&quot;
</span><span class="cx">           RenderMathMLSpace {mspace} at (170,2) size 0x21
</span><del>-      RenderText {#text} at (524,96) size 5x17
-        text run at (524,96) width 5: &quot; &quot;
</del><ins>+      RenderText {#text} at (524,97) size 5x17
+        text run at (524,97) width 5: &quot; &quot;
</ins><span class="cx">       RenderBR {BR} at (0,0) size 0x0
</span><del>-      RenderMathMLMath {math} at (0,178) size 190x76 [padding: 0 1 0 1]
</del><ins>+      RenderMathMLMath {math} at (0,179) size 190x76 [padding: 0 1 0 1]
</ins><span class="cx">         RenderMathMLSquareRoot {msqrt} at (1,0) size 188x76
</span><span class="cx">           RenderMathMLBlock (anonymous, flex) at (0,0) size 17x76
</span><span class="cx">             RenderMathMLRadicalOperator (anonymous) at (0,0) size 17x76
</span><span class="lines">@@ -363,7 +363,7 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 7x16
</span><span class="cx">                   RenderText at (0,-45) size 7x106
</span><span class="cx">                     text run at (0,-45) width 7: &quot;\x{230B}&quot;
</span><del>-            RenderMathMLOperator {mo} at (122,21) size 17x36
</del><ins>+            RenderMathMLOperator {mo} at (122,18) size 17x36
</ins><span class="cx">               RenderMathMLBlock (anonymous, flex) at (0,0) size 16x18
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 11x18
</span><span class="cx">                   RenderText at (0,-44) size 11x106
</span><span class="lines">@@ -373,12 +373,12 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 4x16
</span><span class="cx">                   RenderText at (0,-45) size 4x106
</span><span class="cx">                     text run at (0,-45) width 4: &quot;|&quot;
</span><del>-            RenderMathMLOperator {mo} at (146,0) size 8x42
</del><ins>+            RenderMathMLOperator {mo} at (146,15) size 8x42
</ins><span class="cx">               RenderMathMLBlock (anonymous, flex) at (0,0) size 7x16
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 6x16
</span><span class="cx">                   RenderText at (0,-45) size 6x106
</span><span class="cx">                     text run at (0,-45) width 6: &quot;\x{2016}&quot;
</span><del>-            RenderMathMLOperator {mo} at (153,0) size 18x42
</del><ins>+            RenderMathMLOperator {mo} at (153,15) size 18x42
</ins><span class="cx">               RenderMathMLBlock (anonymous, flex) at (4,0) size 9x16
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 8x16
</span><span class="cx">                   RenderText at (0,-45) size 8x106
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkmathmlpresentationrootsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/mathml/presentation/roots-expected.txt (202155 => 202156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/mathml/presentation/roots-expected.txt        2016-06-17 03:51:00 UTC (rev 202155)
+++ trunk/LayoutTests/platform/gtk/mathml/presentation/roots-expected.txt        2016-06-17 04:34:24 UTC (rev 202156)
</span><span class="lines">@@ -198,7 +198,7 @@
</span><span class="cx">           text run at (0,8) width 185: &quot;long index w/ complex base: &quot;
</span><span class="cx">         RenderMathMLMath {math} at (185,0) size 90x41 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLRoot {mroot} at (1,0) size 88x41
</span><del>-            RenderMathMLRootWrapper at (4,8) size 40x33
</del><ins>+            RenderMathMLRootWrapper at (4,6) size 40x35
</ins><span class="cx">               RenderMathMLRow {mrow} at (0,0) size 39x8
</span><span class="cx">                 RenderMathMLToken {mi} at (0,2) size 6x5 [padding: 0 1 0 0]
</span><span class="cx">                   RenderMathMLBlock (anonymous, flex) at (0,0) size 5x5
</span><span class="lines">@@ -555,7 +555,7 @@
</span><span class="cx">                                         RenderText at (0,-47) size 12x106
</span><span class="cx">                                           text run at (0,-47) width 12: &quot;+&quot;
</span><span class="cx">                                   RenderMathMLRoot {mroot} at (27,0) size 183x49
</span><del>-                                    RenderMathMLRootWrapper at (4,11) size 6x38
</del><ins>+                                    RenderMathMLRootWrapper at (4,9) size 6x40
</ins><span class="cx">                                       RenderMathMLToken {mn} at (0,0) size 5x8
</span><span class="cx">                                         RenderMathMLBlock (anonymous, flex) at (0,0) size 5x8
</span><span class="cx">                                           RenderBlock (anonymous) at (0,0) size 5x8
</span><span class="lines">@@ -580,7 +580,7 @@
</span><span class="cx">                                               RenderText at (0,-47) size 12x106
</span><span class="cx">                                                 text run at (0,-47) width 12: &quot;+&quot;
</span><span class="cx">                                         RenderMathMLRoot {mroot} at (27,0) size 139x41
</span><del>-                                          RenderMathMLRootWrapper at (4,9) size 6x32
</del><ins>+                                          RenderMathMLRootWrapper at (4,6) size 6x35
</ins><span class="cx">                                             RenderMathMLToken {mn} at (0,0) size 5x7
</span><span class="cx">                                               RenderMathMLBlock (anonymous, flex) at (0,0) size 5x7
</span><span class="cx">                                                 RenderBlock (anonymous) at (0,0) size 5x7
</span><span class="lines">@@ -605,7 +605,7 @@
</span><span class="cx">                                                     RenderText at (0,-47) size 12x106
</span><span class="cx">                                                       text run at (0,-47) width 12: &quot;+&quot;
</span><span class="cx">                                               RenderMathMLRoot {mroot} at (27,0) size 94x31
</span><del>-                                                RenderMathMLRootWrapper at (4,5) size 6x26
</del><ins>+                                                RenderMathMLRootWrapper at (4,4) size 6x27
</ins><span class="cx">                                                   RenderMathMLToken {mn} at (0,0) size 5x7
</span><span class="cx">                                                     RenderMathMLBlock (anonymous, flex) at (0,0) size 5x7
</span><span class="cx">                                                       RenderBlock (anonymous) at (0,0) size 5x7
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatormathmlopentypehorizontalmunderoverexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt (202155 => 202156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt        2016-06-17 03:51:00 UTC (rev 202155)
+++ trunk/LayoutTests/platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt        2016-06-17 04:34:24 UTC (rev 202156)
</span><span class="lines">@@ -7,8 +7,8 @@
</span><span class="cx">         RenderMathMLMath {math} at (0,13) size 50x3 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLRow {mstyle} at (1,0) size 48x3
</span><span class="cx">             RenderMathMLUnderOver {mover} at (0,0) size 48x3
</span><del>-              RenderMathMLOperator {mo} at (0,2) size 48x1
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 48x1
</del><ins>+              RenderMathMLOperator {mo} at (24,2) size 0x1
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
</ins><span class="cx">                   RenderBlock (anonymous) at (0,0) size 0x1
</span><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="lines">@@ -19,8 +19,8 @@
</span><span class="cx">           RenderMathMLRow {mstyle} at (1,0) size 64x3
</span><span class="cx">             RenderMathMLUnderOver {mover} at (0,0) size 64x3
</span><span class="cx">               RenderMathMLSpace {mspace} at (0,1) size 64x2 [bgcolor=#FF0000]
</span><del>-              RenderMathMLOperator {mo} at (0,0) size 64x1
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 64x1
</del><ins>+              RenderMathMLOperator {mo} at (32,0) size 0x1
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
</ins><span class="cx">                   RenderBlock (anonymous) at (0,0) size 0x1
</span><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="lines">@@ -29,8 +29,8 @@
</span><span class="cx">         RenderMathMLMath {math} at (124,15) size 50x3 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLRow {mstyle} at (1,0) size 48x3
</span><span class="cx">             RenderMathMLUnderOver {munder} at (0,0) size 48x3
</span><del>-              RenderMathMLOperator {mo} at (0,0) size 48x1
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 48x1
</del><ins>+              RenderMathMLOperator {mo} at (24,0) size 0x1
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
</ins><span class="cx">                   RenderBlock (anonymous) at (0,0) size 0x1
</span><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="lines">@@ -41,13 +41,13 @@
</span><span class="cx">           RenderMathMLRow {mstyle} at (1,0) size 64x4
</span><span class="cx">             RenderMathMLUnderOver {munderover} at (0,0) size 64x4
</span><span class="cx">               RenderMathMLSpace {mspace} at (0,1) size 64x2 [bgcolor=#FF0000]
</span><del>-              RenderMathMLOperator {mo} at (0,3) size 64x1
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 64x1
</del><ins>+              RenderMathMLOperator {mo} at (32,3) size 0x1
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
</ins><span class="cx">                   RenderBlock (anonymous) at (0,0) size 0x1
</span><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 (0,0) size 64x1
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 64x1
</del><ins>+              RenderMathMLOperator {mo} at (32,0) size 0x1
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
</ins><span class="cx">                   RenderBlock (anonymous) at (0,0) size 0x1
</span><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="lines">@@ -56,14 +56,14 @@
</span><span class="cx">         RenderMathMLMath {math} at (248,14) size 50x4 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLRow {mstyle} at (1,0) size 48x4
</span><span class="cx">             RenderMathMLUnderOver {munderover} at (0,0) size 48x4
</span><del>-              RenderMathMLOperator {mo} at (0,1) size 48x1
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 48x1
</del><ins>+              RenderMathMLOperator {mo} at (24,1) size 0x1
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
</ins><span class="cx">                   RenderBlock (anonymous) at (0,0) size 0x1
</span><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,2) size 48x2 [bgcolor=#FF0000]
</span><del>-              RenderMathMLOperator {mo} at (0,0) size 48x1
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 48x1
</del><ins>+              RenderMathMLOperator {mo} at (24,0) size 0x1
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
</ins><span class="cx">                   RenderBlock (anonymous) at (0,0) size 0x1
</span><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="lines">@@ -72,13 +72,13 @@
</span><span class="cx">         RenderMathMLMath {math} at (302,13) size 50x4 [padding: 0 1 0 1]
</span><span class="cx">           RenderMathMLRow {mstyle} at (1,0) size 48x4
</span><span class="cx">             RenderMathMLUnderOver {munderover} at (0,0) size 48x4
</span><del>-              RenderMathMLOperator {mo} at (0,2) size 48x1
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 48x1
</del><ins>+              RenderMathMLOperator {mo} at (24,2) size 0x1
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
</ins><span class="cx">                   RenderBlock (anonymous) at (0,0) size 0x1
</span><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 (0,3) size 48x1
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 48x1
</del><ins>+              RenderMathMLOperator {mo} at (24,3) size 0x1
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
</ins><span class="cx">                   RenderBlock (anonymous) at (0,0) size 0x1
</span><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="lines">@@ -89,14 +89,14 @@
</span><span class="cx">           RenderMathMLRow {mstyle} at (1,0) size 48x4
</span><span class="cx">             RenderMathMLUnderOver {munder} at (0,0) size 48x4
</span><span class="cx">               RenderMathMLUnderOver {mover} at (0,0) size 48x3
</span><del>-                RenderMathMLOperator {mo} at (0,2) size 48x1
-                  RenderMathMLBlock (anonymous, flex) at (0,0) size 48x1
</del><ins>+                RenderMathMLOperator {mo} at (24,2) size 0x1
+                  RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
</ins><span class="cx">                     RenderBlock (anonymous) at (0,0) size 0x1
</span><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 (0,3) size 48x1
-                RenderMathMLBlock (anonymous, flex) at (0,0) size 48x1
</del><ins>+              RenderMathMLOperator {mo} at (24,3) size 0x1
+                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
</ins><span class="cx">                   RenderBlock (anonymous) at (0,0) size 0x1
</span><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></pre></div>
<a id="trunkLayoutTestsplatformmacmathmlopentypeopentypestretchyhorizontalexpectedpng"></a>
<div class="binary"><h4>Modified: trunk/LayoutTests/platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacmathmlopentypeopentypestretchyhorizontalexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt (202155 => 202156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt        2016-06-17 03:51:00 UTC (rev 202155)
+++ trunk/LayoutTests/platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt        2016-06-17 04:34:24 UTC (rev 202156)
</span><span class="lines">@@ -5,34 +5,34 @@
</span><span class="cx">     RenderBody {BODY} at (8,16) size 784x121
</span><span class="cx">       RenderBlock {P} at (0,0) size 784x24
</span><span class="cx">         RenderMathMLMath {math} at (0,3) size 10x22 [padding: 0 1 0 1]
</span><del>-          RenderMathMLRow {mstyle} at (1,0) size 16x22
-            RenderMathMLUnderOver {mover} at (0,0) size 16x22
-              RenderMathMLOperator {mo} at (0,1) size 16x21
-                RenderMathMLBlock (anonymous, flex) at (2,0) size 11x4
-                  RenderBlock (anonymous) at (0,0) size 2x4
</del><ins>+          RenderMathMLRow {mstyle} at (1,0) size 8x22
+            RenderMathMLUnderOver {mover} at (0,0) size 8x22
+              RenderMathMLOperator {mo} at (0,1) size 8x21
+                RenderMathMLBlock (anonymous, flex) at (2,0) size 2x4
+                  RenderBlock (anonymous) at (0,0) size 1x4
</ins><span class="cx">                     RenderText at (0,-3) size 2x0
</span><span class="cx">                       text run at (0,-3) width 2: &quot;\x{219C}&quot;
</span><del>-              RenderMathMLSpace {mspace} at (4,0) size 8x1
</del><ins>+              RenderMathMLSpace {mspace} at (0,0) size 8x1
</ins><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span><span class="cx">       RenderBlock {P} at (0,40) size 784x24
</span><span class="cx">         RenderMathMLMath {math} at (0,3) size 17x22 [padding: 0 1 0 1]
</span><del>-          RenderMathMLRow {mstyle} at (1,0) size 26x22
-            RenderMathMLUnderOver {mover} at (0,0) size 26x22
-              RenderMathMLOperator {mo} at (0,1) size 26x21
-                RenderMathMLBlock (anonymous, flex) at (2,0) size 22x4
-                  RenderBlock (anonymous) at (0,0) size 2x4
</del><ins>+          RenderMathMLRow {mstyle} at (1,0) size 15x22
+            RenderMathMLUnderOver {mover} at (0,0) size 15x22
+              RenderMathMLOperator {mo} at (4,1) size 7x21
+                RenderMathMLBlock (anonymous, flex) at (2,0) size 2x4
+                  RenderBlock (anonymous) at (0,0) size 1x4
</ins><span class="cx">                     RenderText at (0,-3) size 2x0
</span><span class="cx">                       text run at (0,-3) width 2: &quot;\x{219C}&quot;
</span><del>-              RenderMathMLSpace {mspace} at (5,0) size 16x1
</del><ins>+              RenderMathMLSpace {mspace} at (0,0) size 15x1
</ins><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span><span class="cx">       RenderBlock {P} at (0,80) size 784x41
</span><span class="cx">         RenderMathMLMath {math} at (0,0) size 152x42 [padding: 0 1 0 1]
</span><del>-          RenderMathMLRow {mstyle} at (1,0) size 156x42
-            RenderMathMLUnderOver {mover} at (0,0) size 156x42
-              RenderMathMLOperator {mo} at (0,1) size 156x41
-                RenderMathMLBlock (anonymous, flex) at (2,0) size 151x4
-                  RenderBlock (anonymous) at (0,0) size 2x4
</del><ins>+          RenderMathMLRow {mstyle} at (1,0) size 150x42
+            RenderMathMLUnderOver {mover} at (0,0) size 150x42
+              RenderMathMLOperator {mo} at (71,1) size 8x41
+                RenderMathMLBlock (anonymous, flex) at (2,0) size 2x4
+                  RenderBlock (anonymous) at (0,0) size 1x4
</ins><span class="cx">                     RenderText at (0,-3) size 2x0
</span><span class="cx">                       text run at (0,-3) width 2: &quot;\x{219C}&quot;
</span><del>-              RenderMathMLSpace {mspace} at (2,0) size 151x1
</del><ins>+              RenderMathMLSpace {mspace} at (0,0) size 150x1
</ins><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (202155 => 202156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-06-17 03:51:00 UTC (rev 202155)
+++ trunk/Source/WebCore/ChangeLog        2016-06-17 04:34:24 UTC (rev 202156)
</span><span class="lines">@@ -1,3 +1,63 @@
</span><ins>+2016-06-16  Frederic Wang  &lt;fwang@igalia.com&gt;
+
+        Add separate MathOperator for selection/measuring/drawing of stretchy operators
+        https://bugs.webkit.org/show_bug.cgi?id=152244
+
+        Reviewed by Brent Fulgham.
+
+        We complete the class to select, measure and draw stretchy operators that is independent
+        from RenderMathMLOperator. That way, we will be able use stretchy operator without having
+        to introduce &amp; manage anonymous RenderMathMLOperator's
+        (e.g for &lt;mroot&gt;, &lt;msqrt&gt; and &lt;mfenced&gt;).
+
+        No new tests, already covered by existing tests.
+
+        * rendering/mathml/MathOperator.cpp:
+        (WebCore::ascentForGlyph): Add this helper function to get glyph ascent.
+        (WebCore::descentForGlyph): Add this helper function to get glyph descent.
+        (WebCore::MathOperator::reset): Initialize all the data and calculate ascent/descent of the
+        base glyph.
+        (WebCore::MathOperator::setSizeVariant): Set the width/ascent/descent.
+        (WebCore::MathOperator::setGlyphAssembly): Ditto.
+        (WebCore::MathOperator::calculateDisplayStyleLargeOperator): Remove the STIX Word hack and
+        change m_maxPreferredWidth to use the actual width instead.
+        (WebCore::MathOperator::stretchTo): New functions to execute the actual operator streching.
+        (WebCore::MathOperator::fillWithVerticalExtensionGlyph): Add a FIXME for bug 155434.
+        (WebCore::MathOperator::fillWithHorizontalExtensionGlyph): Align all the glyph baselines on
+        the same axis, given by m_ascent.
+        Add a FIXME for bug 155434.
+        (WebCore::MathOperator::paintHorizontalGlyphAssembly): Ditto.
+        (WebCore::MathOperator::paint): Public function to do the painting.
+        (WebCore::MathOperator::paintVerticalGlyphAssembly): Deleted.
+        * rendering/mathml/MathOperator.h: Update declarations and make most of the members private.
+        (WebCore::MathOperator::ascent): Function to expose m_ascent.
+        (WebCore::MathOperator::descent): Function to expose m_descent.
+        * rendering/mathml/RenderMathMLOperator.cpp:
+        (WebCore::RenderMathMLOperator::stretchTo): Forward the stretching call to MathOperator.
+        (WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Unfold advanceForGlyph
+        since we delete RenderMathMLOperator::advanceForGlyph. Just rely on
+        MathOperator::maxPreferredWidth to determine the preferred width of stretchy operators.
+        For horizontal operators, we just use the width of the base glyph.
+        Finally, we remove the dirty flag on preferred logical width.
+        (WebCore::RenderMathMLOperator::rebuildTokenContent): Reinit the MathOperator instance.
+        (WebCore::RenderMathMLOperator::updateFromElement): Force more updates of
+        RenderMathMLOperator to avoid test breakage.
+        (WebCore::RenderMathMLOperator::styleDidChange): Call MathOperator::reset to take into
+        account style change.
+        (WebCore::RenderMathMLOperator::updateStyle): Remove unused code.
+        (WebCore::RenderMathMLOperator::firstLineBaseline): Use MathOperator::ascent() function.
+        (WebCore::RenderMathMLOperator::computeLogicalHeight): Use MathOperator::ascent() and
+        MathOperator::descent() functions to calculate the height.
+        (WebCore::RenderMathMLOperator::paint): Only stretched operators are treated specially.
+        We center horizontal operator and forward the paint() call to MathOperator.
+        (WebCore::RenderMathMLOperator::trailingSpaceError): The error is now just the difference
+        between the values returned by MathOperator::maxPreferredWidth() and
+        MathOperator::width().
+        (WebCore::boundsForGlyph): Deleted.
+        (WebCore::heightForGlyph): Deleted.
+        (WebCore::advanceWidthForGlyph): Deleted.
+        (WebCore::RenderMathMLOperator::updateStyle): Deleted.
+
</ins><span class="cx"> 2016-06-16  Jiewen Tan  &lt;jiewen_tan@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         CSP: Content Security Policy should allow '*' to match the originating page's scheme
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlMathOperatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/MathOperator.cpp (202155 => 202156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/MathOperator.cpp        2016-06-17 03:51:00 UTC (rev 202155)
+++ trunk/Source/WebCore/rendering/mathml/MathOperator.cpp        2016-06-17 04:34:24 UTC (rev 202156)
</span><span class="lines">@@ -43,6 +43,13 @@
</span><span class="cx">     return boundsForGlyph(data).height();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+static inline void getAscentAndDescentForGlyph(const GlyphData&amp; data, LayoutUnit&amp; ascent, LayoutUnit&amp; descent)
+{
+    FloatRect bounds = boundsForGlyph(data);
+    ascent = -bounds.y();
+    descent = bounds.maxY();
+}
+
</ins><span class="cx"> static inline float advanceWidthForGlyph(const GlyphData&amp; data)
</span><span class="cx"> {
</span><span class="cx">     return data.isValid() ? data.font-&gt;widthForGlyph(data.glyph) : 0;
</span><span class="lines">@@ -84,14 +91,19 @@
</span><span class="cx"> 
</span><span class="cx"> void MathOperator::reset(const RenderStyle&amp; style)
</span><span class="cx"> {
</span><ins>+    m_stretchType = StretchType::Unstretched;
</ins><span class="cx">     m_maxPreferredWidth = 0;
</span><span class="cx">     m_width = 0;
</span><ins>+    m_ascent = 0;
+    m_descent = 0;
+    m_italicCorrection = 0;
</ins><span class="cx"> 
</span><span class="cx">     // We use the base size for the calculation of the preferred width.
</span><span class="cx">     GlyphData baseGlyph;
</span><span class="cx">     if (!getBaseGlyph(style, baseGlyph))
</span><span class="cx">         return;
</span><span class="cx">     m_maxPreferredWidth = m_width = advanceWidthForGlyph(baseGlyph);
</span><ins>+    getAscentAndDescentForGlyph(baseGlyph, m_ascent, m_descent);
</ins><span class="cx"> 
</span><span class="cx">     if (m_operatorType == Type::VerticalOperator)
</span><span class="cx">         calculateStretchyData(style, true); // We also take into account the width of larger sizes for the calculation of the preferred width.
</span><span class="lines">@@ -117,6 +129,8 @@
</span><span class="cx">     ASSERT(sizeVariant.font-&gt;mathData());
</span><span class="cx">     m_stretchType = StretchType::SizeVariant;
</span><span class="cx">     m_variant = sizeVariant;
</span><ins>+    m_width = advanceWidthForGlyph(sizeVariant);
+    getAscentAndDescentForGlyph(sizeVariant, m_ascent, m_descent);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void MathOperator::setGlyphAssembly(const GlyphAssemblyData&amp; assemblyData)
</span><span class="lines">@@ -124,6 +138,29 @@
</span><span class="cx">     ASSERT(m_operatorType == Type::VerticalOperator || m_operatorType == Type::HorizontalOperator);
</span><span class="cx">     m_stretchType = StretchType::GlyphAssembly;
</span><span class="cx">     m_assembly = assemblyData;
</span><ins>+    if (m_operatorType == Type::VerticalOperator) {
+        m_width = 0;
+        m_width = std::max&lt;LayoutUnit&gt;(m_width, advanceWidthForGlyph(m_assembly.topOrRight));
+        m_width = std::max&lt;LayoutUnit&gt;(m_width, advanceWidthForGlyph(m_assembly.extension));
+        m_width = std::max&lt;LayoutUnit&gt;(m_width, advanceWidthForGlyph(m_assembly.bottomOrLeft));
+        m_width = std::max&lt;LayoutUnit&gt;(m_width, advanceWidthForGlyph(m_assembly.middle));
+    } else {
+        m_ascent = 0;
+        m_descent = 0;
+        LayoutUnit ascent, descent;
+        getAscentAndDescentForGlyph(m_assembly.bottomOrLeft, ascent, descent);
+        m_ascent = std::max(m_ascent, ascent);
+        m_descent = std::max(m_descent, descent);
+        getAscentAndDescentForGlyph(m_assembly.extension, ascent, descent);
+        m_ascent = std::max(m_ascent, ascent);
+        m_descent = std::max(m_descent, descent);
+        getAscentAndDescentForGlyph(m_assembly.topOrRight, ascent, descent);
+        m_ascent = std::max(m_ascent, ascent);
+        m_descent = std::max(m_descent, descent);
+        getAscentAndDescentForGlyph(m_assembly.middle, ascent, descent);
+        m_ascent = std::max(m_ascent, ascent);
+        m_descent = std::max(m_descent, descent);
+    }
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void MathOperator::calculateDisplayStyleLargeOperator(const RenderStyle&amp; style)
</span><span class="lines">@@ -145,8 +182,7 @@
</span><span class="cx">     for (auto&amp; sizeVariant : sizeVariants) {
</span><span class="cx">         GlyphData glyphData(sizeVariant, baseGlyph.font);
</span><span class="cx">         setSizeVariant(glyphData);
</span><del>-        // Large operators in STIX Word have incorrect advance width, causing misplacement of superscript, so we use the glyph bound instead (http://sourceforge.net/p/stixfonts/tracking/49/).
-        m_maxPreferredWidth = boundsForGlyph(glyphData).width();
</del><ins>+        m_maxPreferredWidth = m_width;
</ins><span class="cx">         m_italicCorrection = glyphData.font-&gt;mathData()-&gt;getItalicCorrection(*glyphData.font, glyphData.glyph);
</span><span class="cx">         if (heightForGlyph(glyphData) &gt;= displayOperatorMinHeight)
</span><span class="cx">             break;
</span><span class="lines">@@ -341,6 +377,24 @@
</span><span class="cx">     setGlyphAssembly(assemblyData);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void MathOperator::stretchTo(const RenderStyle&amp; style, LayoutUnit ascent, LayoutUnit descent)
+{
+    ASSERT(m_operatorType == Type::VerticalOperator);
+    calculateStretchyData(style, false, ascent + descent);
+    if (m_stretchType == StretchType::GlyphAssembly) {
+        m_ascent = ascent;
+        m_descent = descent;
+    }
+}
+
+void MathOperator::stretchTo(const RenderStyle&amp; style, LayoutUnit width)
+{
+    ASSERT(m_operatorType == Type::HorizontalOperator);
+    calculateStretchyData(style, false, width);
+    if (m_stretchType == StretchType::GlyphAssembly)
+        m_width = width;
+}
+
</ins><span class="cx"> LayoutRect MathOperator::paintGlyph(const RenderStyle&amp; style, PaintInfo&amp; info, const GlyphData&amp; data, const LayoutPoint&amp; origin, GlyphPaintTrimming trim)
</span><span class="cx"> {
</span><span class="cx">     FloatRect glyphBounds = boundsForGlyph(data);
</span><span class="lines">@@ -420,6 +474,8 @@
</span><span class="cx">     LayoutPoint glyphOrigin = LayoutPoint(from.x(), from.y() - offsetToGlyphTop);
</span><span class="cx">     FloatRect lastPaintedGlyphRect(from, FloatSize());
</span><span class="cx"> 
</span><ins>+    // FIXME: In practice, only small stretch sizes are requested but we may need to limit the number
+    // of pieces that can be repeated to avoid hangs. See http://webkit.org/b/155434
</ins><span class="cx">     while (lastPaintedGlyphRect.maxY() &lt; to.y()) {
</span><span class="cx">         lastPaintedGlyphRect = paintGlyph(style, info, m_assembly.extension, glyphOrigin, TrimTopAndBottom);
</span><span class="cx">         glyphOrigin.setY(glyphOrigin.y() + lastPaintedGlyphRect.height());
</span><span class="lines">@@ -437,6 +493,7 @@
</span><span class="cx">     ASSERT(m_stretchType == StretchType::GlyphAssembly);
</span><span class="cx">     ASSERT(m_assembly.extension.isValid());
</span><span class="cx">     ASSERT(from.x() &lt;= to.x());
</span><ins>+    ASSERT(from.y() == to.y());
</ins><span class="cx"> 
</span><span class="cx">     // If there is no space for the extension glyph, we don't need to do anything.
</span><span class="cx">     if (from.x() == to.x())
</span><span class="lines">@@ -453,9 +510,11 @@
</span><span class="cx"> 
</span><span class="cx">     // Trimming may remove up to two pixels from the left of the extender glyph, so we move it left by two pixels.
</span><span class="cx">     float offsetToGlyphLeft = -2;
</span><del>-    LayoutPoint glyphOrigin = LayoutPoint(from.x() + offsetToGlyphLeft, std::min(from.y(), to.y()));
</del><ins>+    LayoutPoint glyphOrigin = LayoutPoint(from.x() + offsetToGlyphLeft, from.y());
</ins><span class="cx">     FloatRect lastPaintedGlyphRect(from, FloatSize());
</span><span class="cx"> 
</span><ins>+    // FIXME: In practice, only small stretch sizes are requested but we may need to limit the number
+    // of pieces that can be repeated to avoid hangs. See http://webkit.org/b/155434
</ins><span class="cx">     while (lastPaintedGlyphRect.maxX() &lt; to.x()) {
</span><span class="cx">         lastPaintedGlyphRect = paintGlyph(style, info, m_assembly.extension, glyphOrigin, TrimLeftAndRight);
</span><span class="cx">         glyphOrigin.setX(glyphOrigin.x() + lastPaintedGlyphRect.width());
</span><span class="lines">@@ -476,7 +535,6 @@
</span><span class="cx"> 
</span><span class="cx">     // We are positioning the glyphs so that the edge of the tight glyph bounds line up exactly with the edges of our paint box.
</span><span class="cx">     LayoutPoint operatorTopLeft = paintOffset;
</span><del>-    operatorTopLeft = ceiledIntPoint(operatorTopLeft);
</del><span class="cx">     FloatRect topGlyphBounds = boundsForGlyph(m_assembly.topOrRight);
</span><span class="cx">     LayoutPoint topGlyphOrigin(operatorTopLeft.x(), operatorTopLeft.y() - topGlyphBounds.y());
</span><span class="cx">     LayoutRect topGlyphPaintRect = paintGlyph(style, info, m_assembly.topOrRight, topGlyphOrigin, TrimBottom);
</span><span class="lines">@@ -508,26 +566,58 @@
</span><span class="cx"> 
</span><span class="cx">     // We are positioning the glyphs so that the edge of the tight glyph bounds line up exactly with the edges of our paint box.
</span><span class="cx">     LayoutPoint operatorTopLeft = paintOffset;
</span><del>-    operatorTopLeft = ceiledIntPoint(operatorTopLeft);
-    LayoutPoint leftGlyphOrigin(operatorTopLeft.x(), operatorTopLeft.y() + m_ascent);
</del><ins>+    LayoutUnit baselineY = operatorTopLeft.y() + m_ascent;
+    LayoutPoint leftGlyphOrigin(operatorTopLeft.x(), baselineY);
</ins><span class="cx">     LayoutRect leftGlyphPaintRect = paintGlyph(style, info, m_assembly.bottomOrLeft, leftGlyphOrigin, TrimRight);
</span><span class="cx"> 
</span><span class="cx">     FloatRect rightGlyphBounds = boundsForGlyph(m_assembly.topOrRight);
</span><del>-    LayoutPoint rightGlyphOrigin(operatorTopLeft.x() + m_width - rightGlyphBounds.width(), operatorTopLeft.y() + m_ascent);
</del><ins>+    LayoutPoint rightGlyphOrigin(operatorTopLeft.x() + stretchSize() - rightGlyphBounds.width(), baselineY);
</ins><span class="cx">     LayoutRect rightGlyphPaintRect = paintGlyph(style, info, m_assembly.topOrRight, rightGlyphOrigin, TrimLeft);
</span><span class="cx"> 
</span><del>-    LayoutPoint baselineShift(0, m_ascent);
</del><span class="cx">     if (m_assembly.middle.isValid()) {
</span><span class="cx">         // Center the glyph origin between the start and end glyph paint extents.
</span><del>-        LayoutPoint middleGlyphOrigin(operatorTopLeft.x(), leftGlyphOrigin.y());
</del><ins>+        LayoutPoint middleGlyphOrigin(operatorTopLeft.x(), baselineY);
</ins><span class="cx">         middleGlyphOrigin.moveBy(LayoutPoint((rightGlyphPaintRect.x() - leftGlyphPaintRect.maxX()) / 2.0, 0));
</span><span class="cx">         LayoutRect middleGlyphPaintRect = paintGlyph(style, info, m_assembly.middle, middleGlyphOrigin, TrimLeftAndRight);
</span><del>-        fillWithHorizontalExtensionGlyph(style, info, leftGlyphPaintRect.maxXMinYCorner() + baselineShift, middleGlyphPaintRect.minXMinYCorner() + baselineShift);
-        fillWithHorizontalExtensionGlyph(style, info, middleGlyphPaintRect.maxXMinYCorner() + baselineShift, rightGlyphPaintRect.minXMinYCorner() + baselineShift);
</del><ins>+        fillWithHorizontalExtensionGlyph(style, info, LayoutPoint(leftGlyphPaintRect.maxX(), baselineY), LayoutPoint(middleGlyphPaintRect.x(), baselineY));
+        fillWithHorizontalExtensionGlyph(style, info, LayoutPoint(middleGlyphPaintRect.maxX(), baselineY), LayoutPoint(rightGlyphPaintRect.x(), baselineY));
</ins><span class="cx">     } else
</span><del>-        fillWithHorizontalExtensionGlyph(style, info, leftGlyphPaintRect.maxXMinYCorner() + baselineShift, rightGlyphPaintRect.minXMinYCorner() + baselineShift);
</del><ins>+        fillWithHorizontalExtensionGlyph(style, info, LayoutPoint(leftGlyphPaintRect.maxX(), baselineY), LayoutPoint(rightGlyphPaintRect.x(), baselineY));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void MathOperator::paint(const RenderStyle&amp; style, PaintInfo&amp; info, const LayoutPoint&amp; paintOffset)
+{
+    if (info.context().paintingDisabled() || info.phase != PaintPhaseForeground || style.visibility() != VISIBLE)
+        return;
+
+    GraphicsContextStateSaver stateSaver(info.context());
+    info.context().setFillColor(style.visitedDependentColor(CSSPropertyColor));
+
+    if (m_stretchType == StretchType::GlyphAssembly) {
+        if (m_operatorType == Type::VerticalOperator)
+            paintVerticalGlyphAssembly(style, info, paintOffset);
+        else
+            paintHorizontalGlyphAssembly(style, info, paintOffset);
+        return;
+    }
+
+    GlyphData glyphData;
+    ASSERT(m_stretchType == StretchType::Unstretched || m_stretchType == StretchType::SizeVariant);
+    if (m_stretchType == StretchType::Unstretched) {
+        if (!getBaseGlyph(style, glyphData))
+            return;
+    } else if (m_stretchType == StretchType::SizeVariant) {
+        ASSERT(m_variant.isValid());
+        glyphData = m_variant;
+    }
+    GlyphBuffer buffer;
+    buffer.add(glyphData.glyph, glyphData.font, advanceWidthForGlyph(glyphData));
+    LayoutPoint operatorTopLeft = paintOffset;
+    FloatRect glyphBounds = boundsForGlyph(glyphData);
+    LayoutPoint operatorOrigin(operatorTopLeft.x(), operatorTopLeft.y() - glyphBounds.y());
+    info.context().drawGlyphs(style.fontCascade(), *glyphData.font, buffer, 0, 1, operatorOrigin);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+}
+
</ins><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlMathOperatorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/MathOperator.h (202155 => 202156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/MathOperator.h        2016-06-17 03:51:00 UTC (rev 202155)
+++ trunk/Source/WebCore/rendering/mathml/MathOperator.h        2016-06-17 04:34:24 UTC (rev 202156)
</span><span class="lines">@@ -46,13 +46,18 @@
</span><span class="cx"> 
</span><span class="cx">     LayoutUnit width() const { return m_width; }
</span><span class="cx">     LayoutUnit maxPreferredWidth() const { return m_maxPreferredWidth; }
</span><ins>+    LayoutUnit ascent() const { return m_ascent; }
+    LayoutUnit descent() const { return m_descent; }
</ins><span class="cx">     LayoutUnit italicCorrection() const { return m_italicCorrection; }
</span><span class="cx"> 
</span><ins>+    void stretchTo(const RenderStyle&amp;, LayoutUnit ascent, LayoutUnit descent);
+    void stretchTo(const RenderStyle&amp;, LayoutUnit width);
</ins><span class="cx">     bool isStretched() const { return m_stretchType != StretchType::Unstretched; }
</span><span class="cx">     void unstretch() { m_stretchType = StretchType::Unstretched; }
</span><span class="cx"> 
</span><del>-    // FIXME: All the code below should be private when it is no longer needed by RenderMathMLOperator (http://webkit.org/b/152244).
</del><ins>+    void paint(const RenderStyle&amp;, PaintInfo&amp;, const LayoutPoint&amp;);
</ins><span class="cx"> 
</span><ins>+private:
</ins><span class="cx">     struct GlyphAssemblyData {
</span><span class="cx">         GlyphData topOrRight;
</span><span class="cx">         GlyphData extension;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLOperatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp (202155 => 202156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp        2016-06-17 03:51:00 UTC (rev 202155)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp        2016-06-17 04:34:24 UTC (rev 202156)
</span><span class="lines">@@ -1,7 +1,7 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2010 Alex Milowski (alex@milowski.com). All rights reserved.
</span><span class="cx">  * Copyright (C) 2010 François Sausset (sausset@gmail.com). All rights reserved.
</span><del>- * Copyright (C) 2013 Igalia S.L.
</del><ins>+ * Copyright (C) 2013, 2016 Igalia S.L.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -207,6 +207,9 @@
</span><span class="cx">     }
</span><span class="cx">     m_stretchHeightAboveBaseline *= aspect;
</span><span class="cx">     m_stretchDepthBelowBaseline *= aspect;
</span><ins>+
+    m_mathOperator.stretchTo(style(), m_stretchHeightAboveBaseline, m_stretchDepthBelowBaseline);
+
</ins><span class="cx">     updateStyle();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -219,6 +222,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     m_stretchWidth = width;
</span><ins>+    m_mathOperator.stretchTo(style(), width);
</ins><span class="cx"> 
</span><span class="cx">     setOperatorProperties();
</span><span class="cx"> 
</span><span class="lines">@@ -234,21 +238,6 @@
</span><span class="cx">         m_stretchWidth = 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static inline FloatRect boundsForGlyph(const GlyphData&amp; data)
-{
-    return data.font &amp;&amp; data.glyph ? data.font-&gt;boundsForGlyph(data.glyph) : FloatRect();
-}
-
-static inline float heightForGlyph(const GlyphData&amp; data)
-{
-    return boundsForGlyph(data).height();
-}
-
-static inline float advanceWidthForGlyph(const GlyphData&amp; data)
-{
-    return data.font &amp;&amp; data.glyph ? data.font-&gt;widthForGlyph(data.glyph) : 0;
-}
-
</del><span class="cx"> void RenderMathMLOperator::computePreferredLogicalWidths()
</span><span class="cx"> {
</span><span class="cx">     ASSERT(preferredLogicalWidthsDirty());
</span><span class="lines">@@ -259,29 +248,15 @@
</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="cx">             GlyphData data = style().fontCascade().glyphDataForCharacter(m_textContent, false);
</span><del>-            float glyphWidth = advanceWidthForGlyph(data);
</del><ins>+            float glyphWidth = data.isValid() ? data.font-&gt;widthForGlyph(data.glyph) : 0;
</ins><span class="cx">             ASSERT(glyphWidth &lt;= m_minPreferredLogicalWidth);
</span><span class="cx">             m_minPreferredLogicalWidth -= glyphWidth;
</span><span class="cx">             m_maxPreferredLogicalWidth -= glyphWidth;
</span><span class="cx">         }
</span><del>-        return;
-    }
-
-    // FIXME: We should not use stretchSize during the preferred width calculation nor should we leave logical width dirty (http://webkit.org/b/152244).
-    MathOperator::Type type;
-    if (isLargeOperatorInDisplayStyle())
-        type = MathOperator::Type::DisplayOperator;
-    else
-        type = m_isVertical ? MathOperator::Type::VerticalOperator : MathOperator::Type::HorizontalOperator;
-    m_mathOperator.setOperator(style(), m_textContent, type);
-    float maximumGlyphWidth;
-    if (!m_isVertical) {
-        maximumGlyphWidth = m_mathOperator.width();
-        if (maximumGlyphWidth &lt; stretchSize())
-            maximumGlyphWidth = stretchSize();
</del><span class="cx">     } else
</span><del>-        maximumGlyphWidth = m_mathOperator.maxPreferredWidth();
-    m_maxPreferredLogicalWidth = m_minPreferredLogicalWidth = m_leadingSpace + maximumGlyphWidth + m_trailingSpace;
</del><ins>+        m_maxPreferredLogicalWidth = m_minPreferredLogicalWidth = m_leadingSpace + m_mathOperator.maxPreferredWidth() + m_trailingSpace;
+
+    setPreferredLogicalWidthsDirty(false);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderMathMLOperator::rebuildTokenContent(const String&amp; operatorString)
</span><span class="lines">@@ -302,6 +277,17 @@
</span><span class="cx">     // FIXME: This does not handle &lt;mo&gt; operators with multiple characters (https://bugs.webkit.org/show_bug.cgi?id=124828).
</span><span class="cx">     m_textContent = textContent.length() == 1 ? textContent[0] : 0;
</span><span class="cx">     setOperatorProperties();
</span><ins>+
+    if (shouldAllowStretching()) {
+        MathOperator::Type type;
+        if (isLargeOperatorInDisplayStyle())
+            type = MathOperator::Type::DisplayOperator;
+        else
+            type = m_isVertical ? MathOperator::Type::VerticalOperator : MathOperator::Type::HorizontalOperator;
+        m_mathOperator.setOperator(style(), m_textContent, type);
+    } else
+        m_mathOperator.unstretch();
+
</ins><span class="cx">     updateStyle();
</span><span class="cx">     setNeedsLayoutAndPrefWidthsRecalc();
</span><span class="cx"> }
</span><span class="lines">@@ -320,8 +306,7 @@
</span><span class="cx"> 
</span><span class="cx"> void RenderMathMLOperator::updateFromElement()
</span><span class="cx"> {
</span><del>-    setOperatorProperties();
-    RenderMathMLToken::updateFromElement();
</del><ins>+    updateTokenContent();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderMathMLOperator::updateOperatorProperties()
</span><span class="lines">@@ -340,6 +325,7 @@
</span><span class="cx"> void RenderMathMLOperator::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle)
</span><span class="cx"> {
</span><span class="cx">     RenderMathMLBlock::styleDidChange(diff, oldStyle);
</span><ins>+    m_mathOperator.reset(style());
</ins><span class="cx">     updateOperatorProperties();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -349,8 +335,6 @@
</span><span class="cx">     if (!firstChild())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    m_mathOperator.unstretch();
-    m_mathOperator.m_italicCorrection = 0;
</del><span class="cx">     // We add spacing around the operator.
</span><span class="cx">     // FIXME: The spacing should be added to the whole embellished operator (https://bugs.webkit.org/show_bug.cgi?id=124831).
</span><span class="cx">     // FIXME: The spacing should only be added inside (perhaps inferred) mrow (http://www.w3.org/TR/MathML/chapter3.html#presm.opspacing).
</span><span class="lines">@@ -360,118 +344,36 @@
</span><span class="cx">     newStyle.setMarginEnd(Length(m_trailingSpace, Fixed));
</span><span class="cx">     wrapper-&gt;setStyle(WTFMove(newStyle));
</span><span class="cx">     wrapper-&gt;setNeedsLayoutAndPrefWidthsRecalc();
</span><del>-
-    if (!shouldAllowStretching())
-        return;
-
-    MathOperator::Type type;
-    if (isLargeOperatorInDisplayStyle())
-        type = MathOperator::Type::DisplayOperator;
-    else
-        type = m_isVertical ? MathOperator::Type::VerticalOperator : MathOperator::Type::HorizontalOperator;
-    m_mathOperator.setOperator(style(), m_textContent, type);
-    if (m_isVertical &amp;&amp; isLargeOperatorInDisplayStyle())
-        m_mathOperator.calculateDisplayStyleLargeOperator(style());
-    else {
-        m_mathOperator.calculateStretchyData(style(), false, stretchSize());
-        if (!m_mathOperator.isStretched())
-            return;
-    }
-
-    if (m_isVertical &amp;&amp; m_mathOperator.m_stretchType == MathOperator::StretchType::SizeVariant) {
-        // We resize the operator to match the one of the size variant.
-        if (isLargeOperatorInDisplayStyle()) {
-            // The stretch size is actually not involved in the selection of the size variant in findDisplayStyleLargeOperator.
-            // We simply use the height and depth of the selected size variant glyph.
-            FloatRect glyphBounds = boundsForGlyph(m_mathOperator.m_variant);
-            m_stretchHeightAboveBaseline = -glyphBounds.y();
-            m_stretchDepthBelowBaseline = glyphBounds.maxY();
-        } else {
-            // We rescale the height and depth proportionately.
-            float variantSize = heightForGlyph(m_mathOperator.m_variant);
-            float size = stretchSize();
-            float aspect = size &gt; 0 ? variantSize / size : 1.0;
-            m_stretchHeightAboveBaseline *= aspect;
-            m_stretchDepthBelowBaseline *= aspect;
-        }
-    }
-
-    if (!m_isVertical) {
-        if (m_mathOperator.m_stretchType == MathOperator::StretchType::SizeVariant) {
-            FloatRect glyphBounds = boundsForGlyph(m_mathOperator.m_variant);
-            m_stretchHeightAboveBaseline = -glyphBounds.y();
-            m_stretchDepthBelowBaseline = glyphBounds.maxY();
-            m_stretchWidth = advanceWidthForGlyph(m_mathOperator.m_variant);
-        } else if (m_mathOperator.m_stretchType == MathOperator::StretchType::GlyphAssembly) {
-            FloatRect glyphBounds;
-            m_stretchHeightAboveBaseline = 0;
-            m_stretchDepthBelowBaseline = 0;
-
-            glyphBounds = boundsForGlyph(m_mathOperator.m_assembly.bottomOrLeft);
-            m_stretchHeightAboveBaseline = std::max&lt;LayoutUnit&gt;(m_stretchHeightAboveBaseline, -glyphBounds.y());
-            m_stretchDepthBelowBaseline = std::max&lt;LayoutUnit&gt;(m_stretchDepthBelowBaseline, glyphBounds.maxY());
-
-            glyphBounds = boundsForGlyph(m_mathOperator.m_assembly.topOrRight);
-            m_stretchHeightAboveBaseline = std::max&lt;LayoutUnit&gt;(m_stretchHeightAboveBaseline, -glyphBounds.y());
-            m_stretchDepthBelowBaseline = std::max&lt;LayoutUnit&gt;(m_stretchDepthBelowBaseline, glyphBounds.maxY());
-
-            glyphBounds = boundsForGlyph(m_mathOperator.m_assembly.extension);
-            m_stretchHeightAboveBaseline = std::max&lt;LayoutUnit&gt;(m_stretchHeightAboveBaseline, -glyphBounds.y());
-            m_stretchDepthBelowBaseline = std::max&lt;LayoutUnit&gt;(m_stretchDepthBelowBaseline, glyphBounds.maxY());
-
-            if (m_mathOperator.m_assembly.middle.isValid()) {
-                glyphBounds = boundsForGlyph(m_mathOperator.m_assembly.middle);
-                m_stretchHeightAboveBaseline = std::max&lt;LayoutUnit&gt;(m_stretchHeightAboveBaseline, -glyphBounds.y());
-                m_stretchDepthBelowBaseline = std::max&lt;LayoutUnit&gt;(m_stretchDepthBelowBaseline, glyphBounds.maxY());
-            }
-        }
-    }
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Optional&lt;int&gt; RenderMathMLOperator::firstLineBaseline() const
</span><span class="cx"> {
</span><span class="cx">     if (m_mathOperator.isStretched())
</span><del>-        return Optional&lt;int&gt;(m_stretchHeightAboveBaseline);
</del><ins>+        return Optional&lt;int&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><span class="cx">     if (m_mathOperator.isStretched())
</span><del>-        logicalHeight = m_stretchHeightAboveBaseline + m_stretchDepthBelowBaseline;
</del><ins>+        logicalHeight = m_mathOperator.ascent() + m_mathOperator.descent();
</ins><span class="cx">     RenderBox::computeLogicalHeight(logicalHeight, logicalTop, computedValues);
</span><span class="cx"> }
</span><span class="cx"> 
</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 (info.context().paintingDisabled() || info.phase != PaintPhaseForeground || style().visibility() != VISIBLE || !m_mathOperator.isStretched())
</del><ins>+    if (!m_mathOperator.isStretched())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    GraphicsContextStateSaver stateSaver(info.context());
-    info.context().setFillColor(style().visitedDependentColor(CSSPropertyColor));
-
-    if (m_mathOperator.m_stretchType == MathOperator::StretchType::SizeVariant) {
-        ASSERT(m_mathOperator.m_variant.isValid());
-        GlyphBuffer buffer;
-        buffer.add(m_mathOperator.m_variant.glyph, m_mathOperator.m_variant.font, advanceWidthForGlyph(m_mathOperator.m_variant));
-        LayoutPoint operatorTopLeft = ceiledIntPoint(paintOffset + location());
-        FloatRect glyphBounds = boundsForGlyph(m_mathOperator.m_variant);
-        LayoutPoint operatorOrigin(operatorTopLeft.x(), operatorTopLeft.y() - glyphBounds.y());
-        info.context().drawGlyphs(style().fontCascade(), *m_mathOperator.m_variant.font, buffer, 0, 1, operatorOrigin);
-        return;
-    }
-
-    m_mathOperator.m_ascent = m_stretchHeightAboveBaseline;
-    m_mathOperator.m_descent = m_stretchDepthBelowBaseline;
-    m_mathOperator.m_width = logicalWidth();
</del><span class="cx">     LayoutPoint operatorTopLeft = paintOffset + location();
</span><span class="cx">     operatorTopLeft.move(style().isLeftToRightDirection() ? m_leadingSpace : m_trailingSpace, 0);
</span><del>-    if (m_isVertical)
-        m_mathOperator.paintVerticalGlyphAssembly(style(), info, operatorTopLeft);
-    else
-        m_mathOperator.paintHorizontalGlyphAssembly(style(), info, operatorTopLeft);
</del><ins>+
+    // Center horizontal operators.
+    if (!m_isVertical)
+        operatorTopLeft.move(-(m_mathOperator.width() - width()) / 2, 0);
+
+    m_mathOperator.paint(style(), info, operatorTopLeft);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderMathMLOperator::paintChildren(PaintInfo&amp; paintInfo, const LayoutPoint&amp; paintOffset, PaintInfo&amp; paintInfoForChild, bool usePrintRect)
</span><span class="lines">@@ -484,28 +386,9 @@
</span><span class="cx"> 
</span><span class="cx"> LayoutUnit RenderMathMLOperator::trailingSpaceError()
</span><span class="cx"> {
</span><del>-    const auto&amp; primaryFont = style().fontCascade().primaryFont();
-    if (!primaryFont.mathData())
-        return 0;
-
</del><span class="cx">     // For OpenType MATH font, the layout is based on RenderMathOperator for which the preferred width is sometimes overestimated (bug https://bugs.webkit.org/show_bug.cgi?id=130326).
</span><span class="cx">     // Hence we determine the error in the logical width with respect to the actual width of the glyph(s) used to paint the operator.
</span><del>-    LayoutUnit width = logicalWidth();
-
-    if (!m_mathOperator.isStretched()) {
-        GlyphData data = style().fontCascade().glyphDataForCharacter(textContent(), !style().isLeftToRightDirection());
-        return width - advanceWidthForGlyph(data);
-    }
-
-    if (m_mathOperator.m_stretchType == MathOperator::StretchType::SizeVariant)
-        return width - advanceWidthForGlyph(m_mathOperator.m_variant);
-
-    float assemblyWidth = advanceWidthForGlyph(m_mathOperator.m_assembly.topOrRight);
-    assemblyWidth = std::max(assemblyWidth, advanceWidthForGlyph(m_mathOperator.m_assembly.bottomOrLeft));
-    assemblyWidth = std::max(assemblyWidth, advanceWidthForGlyph(m_mathOperator.m_assembly.extension));
-    if (m_mathOperator.m_assembly.middle.isValid())
-        assemblyWidth = std::max(assemblyWidth, advanceWidthForGlyph(m_mathOperator.m_assembly.middle));
-    return width - assemblyWidth;
</del><ins>+    return m_mathOperator.maxPreferredWidth() - m_mathOperator.width();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre>
</div>
</div>

</body>
</html>