<!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>[203553] trunk/Source/WebCore</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/203553">203553</a></dd>
<dt>Author</dt> <dd>fred.wang@free.fr</dd>
<dt>Date</dt> <dd>2016-07-21 22:33:01 -0700 (Thu, 21 Jul 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Move parsing of accentunder and accent attributes from renderer to element classes
https://bugs.webkit.org/show_bug.cgi?id=159625

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

We introduce a new MathMLUnderOverElement that is used for elements munder, mover and
munderover in order to create RenderMathMLUnderOver and parse and expose the values of the
accent and accentunder attributes. This is one more step toward moving MathML attribute
parsing to the DOM (bug 156536). We also do minor clean-up for this and previous renderer
classes that no longer do attribute parsing: the MathMLNames namespace is no longer necessary
and constructors can take a more accurate element type.

No new tests, already covered by existing test.

* CMakeLists.txt: Add MathMLUnderOverElement files.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* mathml/MathMLAllInOne.cpp: Ditto.
* mathml/MathMLElement.cpp:
(WebCore::MathMLElement::cachedBooleanAttribute): Add parsing of boolean attributes.
* mathml/MathMLElement.h: New type and helper functions for boolean attributes.
* mathml/MathMLInlineContainerElement.cpp:
(WebCore::MathMLInlineContainerElement::createElementRenderer): Remove handling of
under/over/underover elements.
* mathml/MathMLScriptsElement.cpp:
(WebCore::MathMLScriptsElement::MathMLScriptsElement): Remove inline keyword to avoid link
errors now that MathMLUnderOverElement overrides that class.
* mathml/MathMLScriptsElement.h: Allow MathMLUnderOverElement to override this class.
* mathml/MathMLUnderOverElement.cpp:
(WebCore::MathMLUnderOverElement::MathMLUnderOverElement):
(WebCore::MathMLUnderOverElement::create):
(WebCore::MathMLUnderOverElement::accent): Helper function to access the accent value.
(WebCore::MathMLUnderOverElement::accentUnder): Helper function to access the accentunder value.
(WebCore::MathMLUnderOverElement::parseAttribute): Make accent and accentunder dirty.
(WebCore::MathMLUnderOverElement::createElementRenderer): Create RenderMathMLUnderOver
* mathml/MathMLUnderOverElement.h:
* mathml/mathtags.in: Map under/over/underover to MathMLUnderOverElement.
* rendering/mathml/RenderMathMLFraction.cpp: Remove MathMLNames and make the constructor
take a MathMLFractionElement.
(WebCore::RenderMathMLFraction::RenderMathMLFraction):
* rendering/mathml/RenderMathMLFraction.h:
* rendering/mathml/RenderMathMLPadded.cpp: Remove MathMLNames and make the constructor
take a MathMLPaddedElement.
(WebCore::RenderMathMLPadded::RenderMathMLPadded):
* rendering/mathml/RenderMathMLPadded.h:
* rendering/mathml/RenderMathMLScripts.cpp: Remove MathMLNames and make the constructor
take a MathMLScriptsElement. Also rename scriptsElement() to element().
(WebCore::RenderMathMLScripts::RenderMathMLScripts):
(WebCore::RenderMathMLScripts::element):
(WebCore::RenderMathMLScripts::getScriptMetricsAndLayoutIfNeeded):
(WebCore::RenderMathMLScripts::scriptsElement): Deleted.
* rendering/mathml/RenderMathMLScripts.h:
* rendering/mathml/RenderMathMLUnderOver.cpp: Remove MathMLNames and make the constructor
take a RenderMathMLUnderOver.
(WebCore::RenderMathMLUnderOver::RenderMathMLUnderOver):
(WebCore::RenderMathMLUnderOver::element):
(WebCore::RenderMathMLUnderOver::hasAccent): Use the helper functions for accent and accentunder.
* rendering/mathml/RenderMathMLUnderOver.h:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLAllInOnecpp">trunk/Source/WebCore/mathml/MathMLAllInOne.cpp</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLElementcpp">trunk/Source/WebCore/mathml/MathMLElement.cpp</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLElementh">trunk/Source/WebCore/mathml/MathMLElement.h</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLInlineContainerElementcpp">trunk/Source/WebCore/mathml/MathMLInlineContainerElement.cpp</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLScriptsElementcpp">trunk/Source/WebCore/mathml/MathMLScriptsElement.cpp</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLScriptsElementh">trunk/Source/WebCore/mathml/MathMLScriptsElement.h</a></li>
<li><a href="#trunkSourceWebCoremathmlmathtagsin">trunk/Source/WebCore/mathml/mathtags.in</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLFractioncpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLFractionh">trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.h</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLPaddedcpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLPadded.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLPaddedh">trunk/Source/WebCore/rendering/mathml/RenderMathMLPadded.h</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLScriptscpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLScriptsh">trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.h</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLSpacecpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLSpace.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLUnderOvercpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLUnderOverh">trunk/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.h</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoremathmlMathMLUnderOverElementcpp">trunk/Source/WebCore/mathml/MathMLUnderOverElement.cpp</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLUnderOverElementh">trunk/Source/WebCore/mathml/MathMLUnderOverElement.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (203552 => 203553)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2016-07-22 04:51:28 UTC (rev 203552)
+++ trunk/Source/WebCore/CMakeLists.txt        2016-07-22 05:33:01 UTC (rev 203553)
</span><span class="lines">@@ -1995,6 +1995,7 @@
</span><span class="cx">     mathml/MathMLSelectElement.cpp
</span><span class="cx">     mathml/MathMLSpaceElement.cpp
</span><span class="cx">     mathml/MathMLTextElement.cpp
</span><ins>+    mathml/MathMLUnderOverElement.cpp
</ins><span class="cx"> 
</span><span class="cx">     page/AutoscrollController.cpp
</span><span class="cx">     page/BarProp.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (203552 => 203553)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-07-22 04:51:28 UTC (rev 203552)
+++ trunk/Source/WebCore/ChangeLog        2016-07-22 05:33:01 UTC (rev 203553)
</span><span class="lines">@@ -1,3 +1,63 @@
</span><ins>+2016-07-21  Frederic Wang  &lt;fwang@igalia.com&gt;
+
+        Move parsing of accentunder and accent attributes from renderer to element classes
+        https://bugs.webkit.org/show_bug.cgi?id=159625
+
+        Reviewed by Brent Fulgham.
+
+        We introduce a new MathMLUnderOverElement that is used for elements munder, mover and
+        munderover in order to create RenderMathMLUnderOver and parse and expose the values of the
+        accent and accentunder attributes. This is one more step toward moving MathML attribute
+        parsing to the DOM (bug 156536). We also do minor clean-up for this and previous renderer
+        classes that no longer do attribute parsing: the MathMLNames namespace is no longer necessary
+        and constructors can take a more accurate element type.
+
+        No new tests, already covered by existing test.
+
+        * CMakeLists.txt: Add MathMLUnderOverElement files.
+        * WebCore.xcodeproj/project.pbxproj: Ditto.
+        * mathml/MathMLAllInOne.cpp: Ditto.
+        * mathml/MathMLElement.cpp:
+        (WebCore::MathMLElement::cachedBooleanAttribute): Add parsing of boolean attributes.
+        * mathml/MathMLElement.h: New type and helper functions for boolean attributes.
+        * mathml/MathMLInlineContainerElement.cpp:
+        (WebCore::MathMLInlineContainerElement::createElementRenderer): Remove handling of
+        under/over/underover elements.
+        * mathml/MathMLScriptsElement.cpp:
+        (WebCore::MathMLScriptsElement::MathMLScriptsElement): Remove inline keyword to avoid link
+        errors now that MathMLUnderOverElement overrides that class.
+        * mathml/MathMLScriptsElement.h: Allow MathMLUnderOverElement to override this class.
+        * mathml/MathMLUnderOverElement.cpp:
+        (WebCore::MathMLUnderOverElement::MathMLUnderOverElement):
+        (WebCore::MathMLUnderOverElement::create):
+        (WebCore::MathMLUnderOverElement::accent): Helper function to access the accent value.
+        (WebCore::MathMLUnderOverElement::accentUnder): Helper function to access the accentunder value.
+        (WebCore::MathMLUnderOverElement::parseAttribute): Make accent and accentunder dirty.
+        (WebCore::MathMLUnderOverElement::createElementRenderer): Create RenderMathMLUnderOver
+        * mathml/MathMLUnderOverElement.h:
+        * mathml/mathtags.in: Map under/over/underover to MathMLUnderOverElement.
+        * rendering/mathml/RenderMathMLFraction.cpp: Remove MathMLNames and make the constructor
+        take a MathMLFractionElement.
+        (WebCore::RenderMathMLFraction::RenderMathMLFraction):
+        * rendering/mathml/RenderMathMLFraction.h:
+        * rendering/mathml/RenderMathMLPadded.cpp: Remove MathMLNames and make the constructor
+        take a MathMLPaddedElement.
+        (WebCore::RenderMathMLPadded::RenderMathMLPadded):
+        * rendering/mathml/RenderMathMLPadded.h:
+        * rendering/mathml/RenderMathMLScripts.cpp: Remove MathMLNames and make the constructor
+        take a MathMLScriptsElement. Also rename scriptsElement() to element().
+        (WebCore::RenderMathMLScripts::RenderMathMLScripts):
+        (WebCore::RenderMathMLScripts::element):
+        (WebCore::RenderMathMLScripts::getScriptMetricsAndLayoutIfNeeded):
+        (WebCore::RenderMathMLScripts::scriptsElement): Deleted.
+        * rendering/mathml/RenderMathMLScripts.h:
+        * rendering/mathml/RenderMathMLUnderOver.cpp: Remove MathMLNames and make the constructor
+        take a RenderMathMLUnderOver.
+        (WebCore::RenderMathMLUnderOver::RenderMathMLUnderOver):
+        (WebCore::RenderMathMLUnderOver::element):
+        (WebCore::RenderMathMLUnderOver::hasAccent): Use the helper functions for accent and accentunder.
+        * rendering/mathml/RenderMathMLUnderOver.h:
+
</ins><span class="cx"> 2016-07-21  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Parameter to Node.isSameNode() / isEqualNode() should be mandatory
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (203552 => 203553)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-07-22 04:51:28 UTC (rev 203552)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-07-22 05:33:01 UTC (rev 203553)
</span><span class="lines">@@ -6908,6 +6908,8 @@
</span><span class="cx">                 F9F0ED7A0DB50CA200D16DB9 /* XMLHttpRequestProgressEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = F9F0ED770DB50CA200D16DB9 /* XMLHttpRequestProgressEvent.h */; };
</span><span class="cx">                 FA654A6B1108ABED002615E0 /* MathMLTextElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA654A691108ABED002615E0 /* MathMLTextElement.cpp */; };
</span><span class="cx">                 FA654A6C1108ABED002615E0 /* MathMLTextElement.h in Headers */ = {isa = PBXBuildFile; fileRef = FA654A6A1108ABED002615E0 /* MathMLTextElement.h */; };
</span><ins>+                FA654A6B1108ABED002626F1 /* MathMLUnderOverElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA654A691108ABED002626F1 /* MathMLUnderOverElement.cpp */; };
+                FA654A6C1108ABED002626F1 /* MathMLUnderOverElement.h in Headers */ = {isa = PBXBuildFile; fileRef = FA654A6A1108ABED002626F1 /* MathMLUnderOverElement.h */; };
</ins><span class="cx">                 FABE72F41059C1EB00D999DD /* MathMLElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FABE72ED1059C1EB00D999DD /* MathMLElement.cpp */; };
</span><span class="cx">                 FABE72F51059C1EB00D999DD /* MathMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = FABE72EE1059C1EB00D999DD /* MathMLElement.h */; };
</span><span class="cx">                 FABE72F61059C1EB00D999DD /* MathMLInlineContainerElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FABE72EF1059C1EB00D999DD /* MathMLInlineContainerElement.cpp */; };
</span><span class="lines">@@ -15087,6 +15089,8 @@
</span><span class="cx">                 FA654A671108ABE2002615E0 /* mathattrs.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = mathattrs.in; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 FA654A691108ABED002615E0 /* MathMLTextElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MathMLTextElement.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 FA654A6A1108ABED002615E0 /* MathMLTextElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MathMLTextElement.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                FA654A691108ABED002626F1 /* MathMLUnderOverElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MathMLUnderOverElement.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                FA654A6A1108ABED002626F1 /* MathMLUnderOverElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MathMLUnderOverElement.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 FA6E466FCD0418A9966A5B60 /* DNSResolveQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DNSResolveQueue.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 FABE72ED1059C1EB00D999DD /* MathMLElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MathMLElement.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 FABE72EE1059C1EB00D999DD /* MathMLElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MathMLElement.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -24911,6 +24915,8 @@
</span><span class="cx">                                 4FA65A6A1108ABED002615E0 /* MathMLSpaceElement.h */,
</span><span class="cx">                                 FA654A691108ABED002615E0 /* MathMLTextElement.cpp */,
</span><span class="cx">                                 FA654A6A1108ABED002615E0 /* MathMLTextElement.h */,
</span><ins>+                                FA654A691108ABED002626F1 /* MathMLUnderOverElement.cpp */,
+                                FA654A6A1108ABED002626F1 /* MathMLUnderOverElement.h */,
</ins><span class="cx">                                 FABE72F31059C1EB00D999DD /* mathtags.in */,
</span><span class="cx">                         );
</span><span class="cx">                         path = mathml;
</span><span class="lines">@@ -27449,6 +27455,7 @@
</span><span class="cx">                                 439176E012DA25E17BAF80A2 /* MathMLStyle.h in Headers */,
</span><span class="cx">                                 4FA65A6C1108ABED002615E0 /* MathMLSpaceElement.h in Headers */,
</span><span class="cx">                                 FA654A6C1108ABED002615E0 /* MathMLTextElement.h in Headers */,
</span><ins>+                                FA654A6C1108ABED002626F1 /* MathMLUnderOverElement.h in Headers */,
</ins><span class="cx">                                 439046EA12DA25E812AF80AC /* MathOperator.h in Headers */,
</span><span class="cx">                                 49D5DC2C0F423A73008F20FD /* Matrix3DTransformOperation.h in Headers */,
</span><span class="cx">                                 49E911C70EF86D47009D0CAF /* MatrixTransformOperation.h in Headers */,
</span><span class="lines">@@ -31282,6 +31289,7 @@
</span><span class="cx">                                 FED48390CED66C3255F72C59 /* MathMLSelectElement.cpp in Sources */,
</span><span class="cx">                                 4FA65A6B1108ABED002615E0 /* MathMLSpaceElement.cpp in Sources */,
</span><span class="cx">                                 FA654A6B1108ABED002615E0 /* MathMLTextElement.cpp in Sources */,
</span><ins>+                                FA654A6B1108ABED002626F1 /* MathMLUnderOverElement.cpp in Sources */,
</ins><span class="cx">                                 439046E912DA25E812AF80AC /* MathOperator.cpp in Sources */,
</span><span class="cx">                                 49D5DC2B0F423A73008F20FD /* Matrix3DTransformOperation.cpp in Sources */,
</span><span class="cx">                                 49E911C60EF86D47009D0CAF /* MatrixTransformOperation.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLAllInOnecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLAllInOne.cpp (203552 => 203553)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLAllInOne.cpp        2016-07-22 04:51:28 UTC (rev 203552)
+++ trunk/Source/WebCore/mathml/MathMLAllInOne.cpp        2016-07-22 05:33:01 UTC (rev 203553)
</span><span class="lines">@@ -35,4 +35,5 @@
</span><span class="cx"> #include &quot;MathMLScriptsElement.cpp&quot;
</span><span class="cx"> #include &quot;MathMLSelectElement.cpp&quot;
</span><span class="cx"> #include &quot;MathMLTextElement.cpp&quot;
</span><ins>+#include &quot;MathMLUnderOverElement.cpp&quot;
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLElement.cpp (203552 => 203553)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLElement.cpp        2016-07-22 04:51:28 UTC (rev 203552)
+++ trunk/Source/WebCore/mathml/MathMLElement.cpp        2016-07-22 05:33:01 UTC (rev 203553)
</span><span class="lines">@@ -525,6 +525,24 @@
</span><span class="cx">     return length;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+const MathMLElement::BooleanValue&amp; MathMLElement::cachedBooleanAttribute(const QualifiedName&amp; name, BooleanAttribute&amp; attribute)
+{
+    if (!attribute.dirty)
+        return attribute.value;
+
+    // In MathML, attribute values are case-sensitive.
+    const AtomicString&amp; value = attributeWithoutSynchronization(name);
+    if (value == &quot;true&quot;)
+        attribute.value = BooleanValue::True;
+    else if (value == &quot;false&quot;)
+        attribute.value = BooleanValue::False;
+    else
+        attribute.value = BooleanValue::Default;
+    attribute.dirty = false;
+
+    return attribute.value;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+}
+
</ins><span class="cx"> #endif // ENABLE(MATHML)
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLElement.h (203552 => 203553)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLElement.h        2016-07-22 04:51:28 UTC (rev 203552)
+++ trunk/Source/WebCore/mathml/MathMLElement.h        2016-07-22 05:33:01 UTC (rev 203553)
</span><span class="lines">@@ -66,6 +66,12 @@
</span><span class="cx">     };
</span><span class="cx">     static Length parseMathMLLength(const String&amp;);
</span><span class="cx"> 
</span><ins>+    enum class BooleanValue { True, False, Default };
+    struct BooleanAttribute {
+        BooleanValue value { BooleanValue::Default };
+        bool dirty { true };
+    };
+
</ins><span class="cx"> protected:
</span><span class="cx">     MathMLElement(const QualifiedName&amp; tagName, Document&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -83,6 +89,7 @@
</span><span class="cx">     void defaultEventHandler(Event*) override;
</span><span class="cx"> 
</span><span class="cx">     const Length&amp; cachedMathMLLength(const QualifiedName&amp;, Length&amp;);
</span><ins>+    const BooleanValue&amp; cachedBooleanAttribute(const QualifiedName&amp;, BooleanAttribute&amp;);
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     virtual void updateSelectedChild() { }
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLInlineContainerElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLInlineContainerElement.cpp (203552 => 203553)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLInlineContainerElement.cpp        2016-07-22 04:51:28 UTC (rev 203552)
+++ trunk/Source/WebCore/mathml/MathMLInlineContainerElement.cpp        2016-07-22 05:33:01 UTC (rev 203553)
</span><span class="lines">@@ -36,7 +36,6 @@
</span><span class="cx"> #include &quot;RenderMathMLMenclose.h&quot;
</span><span class="cx"> #include &quot;RenderMathMLRoot.h&quot;
</span><span class="cx"> #include &quot;RenderMathMLRow.h&quot;
</span><del>-#include &quot;RenderMathMLUnderOver.h&quot;
</del><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="lines">@@ -65,8 +64,6 @@
</span><span class="cx"> {
</span><span class="cx">     if (hasTagName(annotation_xmlTag) || hasTagName(merrorTag) || hasTagName(mphantomTag) || hasTagName(mrowTag) || hasTagName(mstyleTag))
</span><span class="cx">         return createRenderer&lt;RenderMathMLRow&gt;(*this, WTFMove(style));
</span><del>-    if (hasTagName(moverTag) || hasTagName(munderTag) || hasTagName(munderoverTag))
-        return createRenderer&lt;RenderMathMLUnderOver&gt;(*this, WTFMove(style));
</del><span class="cx">     if (hasTagName(msqrtTag) || hasTagName(mrootTag))
</span><span class="cx">         return createRenderer&lt;RenderMathMLRoot&gt;(*this, WTFMove(style));
</span><span class="cx">     if (hasTagName(mfencedTag))
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLScriptsElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLScriptsElement.cpp (203552 => 203553)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLScriptsElement.cpp        2016-07-22 04:51:28 UTC (rev 203552)
+++ trunk/Source/WebCore/mathml/MathMLScriptsElement.cpp        2016-07-22 05:33:01 UTC (rev 203553)
</span><span class="lines">@@ -35,7 +35,7 @@
</span><span class="cx"> 
</span><span class="cx"> using namespace MathMLNames;
</span><span class="cx"> 
</span><del>-inline MathMLScriptsElement::MathMLScriptsElement(const QualifiedName&amp; tagName, Document&amp; document)
</del><ins>+MathMLScriptsElement::MathMLScriptsElement(const QualifiedName&amp; tagName, Document&amp; document)
</ins><span class="cx">     : MathMLInlineContainerElement(tagName, document)
</span><span class="cx"> {
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLScriptsElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLScriptsElement.h (203552 => 203553)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLScriptsElement.h        2016-07-22 04:51:28 UTC (rev 203552)
+++ trunk/Source/WebCore/mathml/MathMLScriptsElement.h        2016-07-22 05:33:01 UTC (rev 203553)
</span><span class="lines">@@ -30,17 +30,19 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-class MathMLScriptsElement final : public MathMLInlineContainerElement {
</del><ins>+class MathMLScriptsElement : public MathMLInlineContainerElement {
</ins><span class="cx"> public:
</span><span class="cx">     static Ref&lt;MathMLScriptsElement&gt; create(const QualifiedName&amp; tagName, Document&amp;);
</span><span class="cx">     const Length&amp; subscriptShift();
</span><span class="cx">     const Length&amp; superscriptShift();
</span><span class="cx"> 
</span><del>-private:
</del><ins>+protected:
</ins><span class="cx">     MathMLScriptsElement(const QualifiedName&amp; tagName, Document&amp;);
</span><del>-    RenderPtr&lt;RenderElement&gt; createElementRenderer(RenderStyle&amp;&amp;, const RenderTreePosition&amp;) final;
-    void parseAttribute(const QualifiedName&amp;, const AtomicString&amp;) final;
</del><span class="cx"> 
</span><ins>+private:
+    RenderPtr&lt;RenderElement&gt; createElementRenderer(RenderStyle&amp;&amp;, const RenderTreePosition&amp;) override;
+    void parseAttribute(const QualifiedName&amp;, const AtomicString&amp;) override;
+
</ins><span class="cx">     Length m_subscriptShift;
</span><span class="cx">     Length m_superscriptShift;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLUnderOverElementcppfromrev203552trunkSourceWebCoremathmlMathMLScriptsElementcpp"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/mathml/MathMLUnderOverElement.cpp (from rev 203552, trunk/Source/WebCore/mathml/MathMLScriptsElement.cpp) (0 => 203553)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLUnderOverElement.cpp                                (rev 0)
+++ trunk/Source/WebCore/mathml/MathMLUnderOverElement.cpp        2016-07-22 05:33:01 UTC (rev 203553)
</span><span class="lines">@@ -0,0 +1,76 @@
</span><ins>+/*
+ * Copyright (C) 2016 Igalia S.L. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include &quot;config.h&quot;
+
+#if ENABLE(MATHML)
+#include &quot;MathMLUnderOverElement.h&quot;
+
+#include &quot;RenderMathMLUnderOver.h&quot;
+
+namespace WebCore {
+
+using namespace MathMLNames;
+
+inline MathMLUnderOverElement::MathMLUnderOverElement(const QualifiedName&amp; tagName, Document&amp; document)
+    : MathMLScriptsElement(tagName, document)
+{
+}
+
+Ref&lt;MathMLUnderOverElement&gt; MathMLUnderOverElement::create(const QualifiedName&amp; tagName, Document&amp; document)
+{
+    return adoptRef(*new MathMLUnderOverElement(tagName, document));
+}
+
+const MathMLElement::BooleanValue&amp; MathMLUnderOverElement::accent()
+{
+    return cachedBooleanAttribute(accentAttr, m_accent);
+}
+
+const MathMLElement::BooleanValue&amp; MathMLUnderOverElement::accentUnder()
+{
+    return cachedBooleanAttribute(accentunderAttr, m_accentUnder);
+}
+
+void MathMLUnderOverElement::parseAttribute(const QualifiedName&amp; name, const AtomicString&amp; value)
+{
+    if (name == accentAttr)
+        m_accent.dirty = true;
+    else if (name == accentunderAttr)
+        m_accentUnder.dirty = true;
+
+    MathMLElement::parseAttribute(name, value);
+}
+
+RenderPtr&lt;RenderElement&gt; MathMLUnderOverElement::createElementRenderer(RenderStyle&amp;&amp; style, const RenderTreePosition&amp;)
+{
+    ASSERT(hasTagName(munderTag) || hasTagName(moverTag) || hasTagName(munderoverTag));
+    return createRenderer&lt;RenderMathMLUnderOver&gt;(*this, WTFMove(style));
+}
+
+}
+
+#endif // ENABLE(MATHML)
</ins></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLUnderOverElementhfromrev203552trunkSourceWebCoremathmlMathMLScriptsElementh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/mathml/MathMLUnderOverElement.h (from rev 203552, trunk/Source/WebCore/mathml/MathMLScriptsElement.h) (0 => 203553)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLUnderOverElement.h                                (rev 0)
+++ trunk/Source/WebCore/mathml/MathMLUnderOverElement.h        2016-07-22 05:33:01 UTC (rev 203553)
</span><span class="lines">@@ -0,0 +1,50 @@
</span><ins>+/*
+ * Copyright (C) 2016 Igalia S.L. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#if ENABLE(MATHML)
+#include &quot;MathMLScriptsElement.h&quot;
+
+namespace WebCore {
+
+class MathMLUnderOverElement final : public MathMLScriptsElement {
+public:
+    static Ref&lt;MathMLUnderOverElement&gt; create(const QualifiedName&amp; tagName, Document&amp;);
+    const BooleanValue&amp; accent();
+    const BooleanValue&amp; accentUnder();
+
+private:
+    MathMLUnderOverElement(const QualifiedName&amp; tagName, Document&amp;);
+    RenderPtr&lt;RenderElement&gt; createElementRenderer(RenderStyle&amp;&amp;, const RenderTreePosition&amp;) final;
+    void parseAttribute(const QualifiedName&amp;, const AtomicString&amp;) final;
+
+    BooleanAttribute m_accent;
+    BooleanAttribute m_accentUnder;
+};
+
+}
+
+#endif // ENABLE(MATHML)
</ins></span></pre></div>
<a id="trunkSourceWebCoremathmlmathtagsin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/mathtags.in (203552 => 203553)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/mathtags.in        2016-07-22 04:51:28 UTC (rev 203552)
+++ trunk/Source/WebCore/mathml/mathtags.in        2016-07-22 05:33:01 UTC (rev 203553)
</span><span class="lines">@@ -15,9 +15,9 @@
</span><span class="cx"> mphantom interfaceName=MathMLInlineContainerElement
</span><span class="cx"> mrow interfaceName=MathMLInlineContainerElement
</span><span class="cx"> mstyle interfaceName=MathMLInlineContainerElement
</span><del>-mover interfaceName=MathMLInlineContainerElement
-munder interfaceName=MathMLInlineContainerElement
-munderover interfaceName=MathMLInlineContainerElement
</del><ins>+mover interfaceName=MathMLUnderOverElement
+munder interfaceName=MathMLUnderOverElement
+munderover interfaceName=MathMLUnderOverElement
</ins><span class="cx"> msqrt interfaceName=MathMLInlineContainerElement
</span><span class="cx"> mroot interfaceName=MathMLInlineContainerElement
</span><span class="cx"> mi interfaceName=MathMLTextElement
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLFractioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp (203552 => 203553)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp        2016-07-22 04:51:28 UTC (rev 203552)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp        2016-07-22 05:33:01 UTC (rev 203553)
</span><span class="lines">@@ -31,15 +31,13 @@
</span><span class="cx"> #include &quot;RenderMathMLFraction.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;GraphicsContext.h&quot;
</span><del>-#include &quot;MathMLNames.h&quot;
</del><ins>+#include &quot;MathMLFractionElement.h&quot;
</ins><span class="cx"> #include &quot;PaintInfo.h&quot;
</span><span class="cx"> #include &lt;cmath&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-using namespace MathMLNames;
-
-RenderMathMLFraction::RenderMathMLFraction(MathMLInlineContainerElement&amp; element, RenderStyle&amp;&amp; style)
</del><ins>+RenderMathMLFraction::RenderMathMLFraction(MathMLFractionElement&amp; element, RenderStyle&amp;&amp; style)
</ins><span class="cx">     : RenderMathMLBlock(element, WTFMove(style))
</span><span class="cx"> {
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLFractionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.h (203552 => 203553)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.h        2016-07-22 04:51:28 UTC (rev 203552)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.h        2016-07-22 05:33:01 UTC (rev 203553)
</span><span class="lines">@@ -35,9 +35,11 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><ins>+class MathMLFractionElement;
+
</ins><span class="cx"> class RenderMathMLFraction final : public RenderMathMLBlock {
</span><span class="cx"> public:
</span><del>-    RenderMathMLFraction(MathMLInlineContainerElement&amp;, RenderStyle&amp;&amp;);
</del><ins>+    RenderMathMLFraction(MathMLFractionElement&amp;, RenderStyle&amp;&amp;);
</ins><span class="cx"> 
</span><span class="cx">     float relativeLineThickness() const { return m_defaultLineThickness ? m_lineThickness / m_defaultLineThickness : LayoutUnit(0); }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLPaddedcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLPadded.cpp (203552 => 203553)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLPadded.cpp        2016-07-22 04:51:28 UTC (rev 203552)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLPadded.cpp        2016-07-22 05:33:01 UTC (rev 203553)
</span><span class="lines">@@ -28,14 +28,11 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(MATHML)
</span><span class="cx"> 
</span><del>-#include &quot;MathMLNames.h&quot;
</del><span class="cx"> #include &lt;cmath&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-using namespace MathMLNames;
-
-RenderMathMLPadded::RenderMathMLPadded(Element&amp; element, RenderStyle&amp;&amp; style)
</del><ins>+RenderMathMLPadded::RenderMathMLPadded(MathMLPaddedElement&amp; element, RenderStyle&amp;&amp; style)
</ins><span class="cx">     : RenderMathMLRow(element, WTFMove(style))
</span><span class="cx"> {
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLPaddedh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLPadded.h (203552 => 203553)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLPadded.h        2016-07-22 04:51:28 UTC (rev 203552)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLPadded.h        2016-07-22 05:33:01 UTC (rev 203553)
</span><span class="lines">@@ -34,7 +34,7 @@
</span><span class="cx"> 
</span><span class="cx"> class RenderMathMLPadded final : public RenderMathMLRow {
</span><span class="cx"> public:
</span><del>-    RenderMathMLPadded(Element&amp;, RenderStyle&amp;&amp;);
</del><ins>+    RenderMathMLPadded(MathMLPaddedElement&amp;, RenderStyle&amp;&amp;);
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     const char* renderName() const final { return &quot;RenderMathMLPadded&quot;; }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLScriptscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp (203552 => 203553)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp        2016-07-22 04:51:28 UTC (rev 203552)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp        2016-07-22 05:33:01 UTC (rev 203553)
</span><span class="lines">@@ -37,14 +37,12 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-using namespace MathMLNames;
-
</del><span class="cx"> static bool isPrescriptDelimiter(const RenderObject&amp; renderObject)
</span><span class="cx"> {
</span><span class="cx">     return renderObject.node() &amp;&amp; renderObject.node()-&gt;hasTagName(MathMLNames::mprescriptsTag);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RenderMathMLScripts::RenderMathMLScripts(Element&amp; element, RenderStyle&amp;&amp; style)
</del><ins>+RenderMathMLScripts::RenderMathMLScripts(MathMLScriptsElement&amp; element, RenderStyle&amp;&amp; style)
</ins><span class="cx">     : RenderMathMLBlock(element, WTFMove(style))
</span><span class="cx"> {
</span><span class="cx">     // Determine what kind of sub/sup expression we have by element name
</span><span class="lines">@@ -66,9 +64,8 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-MathMLScriptsElement&amp; RenderMathMLScripts::scriptsElement() const
</del><ins>+MathMLScriptsElement&amp; RenderMathMLScripts::element() const
</ins><span class="cx"> {
</span><del>-    ASSERT(!isRenderMathMLUnderOver());
</del><span class="cx">     return static_cast&lt;MathMLScriptsElement&amp;&gt;(nodeForNonAnonymous());
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -260,7 +257,7 @@
</span><span class="cx">         if (!isRenderMathMLUnderOver()) {
</span><span class="cx">             // It is not clear how to interpret the default shift and it is not available yet anyway.
</span><span class="cx">             // Hence we just pass 0 as the default value used by toUserUnits.
</span><del>-            LayoutUnit specifiedMinSubShift = toUserUnits(scriptsElement().subscriptShift(), style(), 0);
</del><ins>+            LayoutUnit specifiedMinSubShift = toUserUnits(element().subscriptShift(), style(), 0);
</ins><span class="cx">             minSubScriptShift = std::max(minSubScriptShift, specifiedMinSubShift);
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -269,7 +266,7 @@
</span><span class="cx">         if (!isRenderMathMLUnderOver()) {
</span><span class="cx">             // It is not clear how to interpret the default shift and it is not available yet anyway.
</span><span class="cx">             // Hence we just pass 0 as the default value used by toUserUnits.
</span><del>-            LayoutUnit specifiedMinSupShift = toUserUnits(scriptsElement().superscriptShift(), style(), 0);
</del><ins>+            LayoutUnit specifiedMinSupShift = toUserUnits(element().superscriptShift(), style(), 0);
</ins><span class="cx">             minSupScriptShift = std::max(minSupScriptShift, specifiedMinSupShift);
</span><span class="cx">         }
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLScriptsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.h (203552 => 203553)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.h        2016-07-22 04:51:28 UTC (rev 203552)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.h        2016-07-22 05:33:01 UTC (rev 203553)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx"> // Render a base with scripts.
</span><span class="cx"> class RenderMathMLScripts : public RenderMathMLBlock {
</span><span class="cx"> public:
</span><del>-    RenderMathMLScripts(Element&amp;, RenderStyle&amp;&amp;);
</del><ins>+    RenderMathMLScripts(MathMLScriptsElement&amp;, RenderStyle&amp;&amp;);
</ins><span class="cx">     RenderMathMLOperator* unembellishedOperator() final;
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx">     ScriptsType m_scriptType;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    MathMLScriptsElement&amp; scriptsElement() const;
</del><ins>+    MathMLScriptsElement&amp; element() const;
</ins><span class="cx">     Optional&lt;int&gt; firstLineBaseline() const final;
</span><span class="cx">     bool getBaseAndScripts(RenderBox*&amp; base, RenderBox*&amp; firstPostScript, RenderBox*&amp; firstPreScript);
</span><span class="cx">     LayoutUnit spaceAfterScript();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLSpacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLSpace.cpp (203552 => 203553)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLSpace.cpp        2016-07-22 04:51:28 UTC (rev 203552)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLSpace.cpp        2016-07-22 05:33:01 UTC (rev 203553)
</span><span class="lines">@@ -29,13 +29,10 @@
</span><span class="cx"> #if ENABLE(MATHML)
</span><span class="cx"> 
</span><span class="cx"> #include &quot;GraphicsContext.h&quot;
</span><del>-#include &quot;MathMLNames.h&quot;
</del><span class="cx"> #include &quot;PaintInfo.h&quot;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-using namespace MathMLNames;
-
</del><span class="cx"> RenderMathMLSpace::RenderMathMLSpace(MathMLSpaceElement&amp; element, RenderStyle&amp;&amp; style)
</span><span class="cx">     : RenderMathMLBlock(element, WTFMove(style))
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLUnderOvercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp (203552 => 203553)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp        2016-07-22 04:51:28 UTC (rev 203552)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp        2016-07-22 05:33:01 UTC (rev 203553)
</span><span class="lines">@@ -31,20 +31,23 @@
</span><span class="cx"> #include &quot;RenderMathMLUnderOver.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;MathMLElement.h&quot;
</span><del>-#include &quot;MathMLNames.h&quot;
</del><span class="cx"> #include &quot;MathMLOperatorDictionary.h&quot;
</span><ins>+#include &quot;MathMLUnderOverElement.h&quot;
</ins><span class="cx"> #include &quot;RenderIterator.h&quot;
</span><span class="cx"> #include &quot;RenderMathMLOperator.h&quot;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-using namespace MathMLNames;
-
-RenderMathMLUnderOver::RenderMathMLUnderOver(Element&amp; element, RenderStyle&amp;&amp; style)
</del><ins>+RenderMathMLUnderOver::RenderMathMLUnderOver(MathMLUnderOverElement&amp; element, RenderStyle&amp;&amp; style)
</ins><span class="cx">     : RenderMathMLScripts(element, WTFMove(style))
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+MathMLUnderOverElement&amp; RenderMathMLUnderOver::element() const
+{
+    return static_cast&lt;MathMLUnderOverElement&amp;&gt;(nodeForNonAnonymous());
+}
+
</ins><span class="cx"> void RenderMathMLUnderOver::computeOperatorsHorizontalStretch()
</span><span class="cx"> {
</span><span class="cx">     LayoutUnit stretchWidth = 0;
</span><span class="lines">@@ -165,10 +168,10 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_scriptType == UnderOver || (accentUnder &amp;&amp; m_scriptType == Under) || (!accentUnder &amp;&amp; m_scriptType == Over));
</span><span class="cx"> 
</span><del>-    const AtomicString&amp; attributeValue = element()-&gt;attributeWithoutSynchronization(accentUnder ? accentunderAttr : accentAttr);
-    if (attributeValue == &quot;true&quot;)
</del><ins>+    const MathMLElement::BooleanValue&amp; attributeValue = accentUnder ? element().accentUnder() : element().accent();
+    if (attributeValue == MathMLElement::BooleanValue::True)
</ins><span class="cx">         return true;
</span><del>-    if (attributeValue == &quot;false&quot;)
</del><ins>+    if (attributeValue == MathMLElement::BooleanValue::False)
</ins><span class="cx">         return false;
</span><span class="cx">     RenderBox&amp; script = accentUnder ? under() : over();
</span><span class="cx">     if (!is&lt;RenderMathMLBlock&gt;(script))
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLUnderOverh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.h (203552 => 203553)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.h        2016-07-22 04:51:28 UTC (rev 203552)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.h        2016-07-22 05:33:01 UTC (rev 203553)
</span><span class="lines">@@ -32,14 +32,17 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><ins>+class MathMLUnderOverElement;
+
</ins><span class="cx"> class RenderMathMLUnderOver final : public RenderMathMLScripts {
</span><span class="cx"> public:
</span><del>-    RenderMathMLUnderOver(Element&amp;, RenderStyle&amp;&amp;);
</del><ins>+    RenderMathMLUnderOver(MathMLUnderOverElement&amp;, RenderStyle&amp;&amp;);
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     bool isRenderMathMLScripts() const final { return false; }
</span><span class="cx">     bool isRenderMathMLUnderOver() const final { return true; }
</span><span class="cx">     const char* renderName() const final { return &quot;RenderMathMLUnderOver&quot;; }
</span><ins>+    MathMLUnderOverElement&amp; element() const;
</ins><span class="cx"> 
</span><span class="cx">     void computePreferredLogicalWidths() final;
</span><span class="cx">     void layoutBlock(bool relayoutChildren, LayoutUnit pageLogicalHeight = 0) final;
</span></span></pre>
</div>
</div>

</body>
</html>