<!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>[166633] 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/166633">166633</a></dd>
<dt>Author</dt> <dd>fred.wang@free.fr</dd>
<dt>Date</dt> <dd>2014-04-02 00:05:14 -0700 (Wed, 02 Apr 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Operator stretching: expose a math data API
https://bugs.webkit.org/show_bug.cgi?id=130572

Reviewed by Chris Fleizach.

We expose a new SimpleFontData API to give access to the data from the
OpenType MATH table. The class OpenTypeMathData will
be implemented in bug 130324. On Darwin platform, we also implement the
missing FontPlatformData::openTypeTable function which will be necessary
to load the OpenType MATH table. The changes are intended to be used
for MathML operator stretching (bug 130322) so tests are not added yet.

* CMakeLists.txt: add new OpenTypeMathData files.
* WebCore.vcxproj/WebCore.vcxproj: ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: ditto.
* WebCore.xcodeproj/project.pbxproj: ditto.
* platform/graphics/FontPlatformData.cpp:
(WebCore::FontPlatformData::openTypeTable): We implement openTypeTable() on Darwin platform.
* platform/graphics/FontPlatformData.h: We expose openTypeTable() on Darwin platform.
* platform/graphics/SimpleFontData.cpp:
(WebCore::SimpleFontData::SimpleFontData):
(WebCore::SimpleFontData::mathData): Initialize and return the math data.
* platform/graphics/SimpleFontData.h: We expose a mathData() function to access the MATH data.
* platform/graphics/opentype/OpenTypeMathData.cpp: Added. This is a new class that will be used to parse the data from the OpenType MATH table.
(WebCore::OpenTypeMathData::OpenTypeMathData):
* platform/graphics/opentype/OpenTypeMathData.h: Added.
(WebCore::OpenTypeMathData::create):
(WebCore::OpenTypeMathData::hasMathData):</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="#trunkSourceWebCoreWebCorevcxprojWebCorevcxproj">trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj</a></li>
<li><a href="#trunkSourceWebCoreWebCorevcxprojWebCorevcxprojfilters">trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsFontPlatformDatacpp">trunk/Source/WebCore/platform/graphics/FontPlatformData.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsFontPlatformDatah">trunk/Source/WebCore/platform/graphics/FontPlatformData.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsSimpleFontDatacpp">trunk/Source/WebCore/platform/graphics/SimpleFontData.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsSimpleFontDatah">trunk/Source/WebCore/platform/graphics/SimpleFontData.h</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreplatformgraphicsopentypeOpenTypeMathDatacpp">trunk/Source/WebCore/platform/graphics/opentype/OpenTypeMathData.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsopentypeOpenTypeMathDatah">trunk/Source/WebCore/platform/graphics/opentype/OpenTypeMathData.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 (166632 => 166633)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2014-04-02 06:29:38 UTC (rev 166632)
+++ trunk/Source/WebCore/CMakeLists.txt        2014-04-02 07:05:14 UTC (rev 166633)
</span><span class="lines">@@ -1948,6 +1948,8 @@
</span><span class="cx">     platform/graphics/filters/SourceGraphic.cpp
</span><span class="cx">     platform/graphics/filters/SpotLightSource.cpp
</span><span class="cx"> 
</span><ins>+    platform/graphics/opentype/OpenTypeMathData.cpp
+
</ins><span class="cx">     platform/graphics/texmap/TextureMapper.cpp
</span><span class="cx">     platform/graphics/texmap/TextureMapperBackingStore.cpp
</span><span class="cx">     platform/graphics/texmap/TextureMapperFPSCounter.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (166632 => 166633)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-04-02 06:29:38 UTC (rev 166632)
+++ trunk/Source/WebCore/ChangeLog        2014-04-02 07:05:14 UTC (rev 166633)
</span><span class="lines">@@ -1,3 +1,34 @@
</span><ins>+2014-04-02  Frédéric Wang  &lt;fred.wang@free.fr&gt;
+
+        Operator stretching: expose a math data API
+        https://bugs.webkit.org/show_bug.cgi?id=130572
+
+        Reviewed by Chris Fleizach.
+
+        We expose a new SimpleFontData API to give access to the data from the
+        OpenType MATH table. The class OpenTypeMathData will
+        be implemented in bug 130324. On Darwin platform, we also implement the
+        missing FontPlatformData::openTypeTable function which will be necessary
+        to load the OpenType MATH table. The changes are intended to be used
+        for MathML operator stretching (bug 130322) so tests are not added yet.
+
+        * CMakeLists.txt: add new OpenTypeMathData files.
+        * WebCore.vcxproj/WebCore.vcxproj: ditto.
+        * WebCore.vcxproj/WebCore.vcxproj.filters: ditto.
+        * WebCore.xcodeproj/project.pbxproj: ditto.
+        * platform/graphics/FontPlatformData.cpp:
+        (WebCore::FontPlatformData::openTypeTable): We implement openTypeTable() on Darwin platform.
+        * platform/graphics/FontPlatformData.h: We expose openTypeTable() on Darwin platform.
+        * platform/graphics/SimpleFontData.cpp:
+        (WebCore::SimpleFontData::SimpleFontData):
+        (WebCore::SimpleFontData::mathData): Initialize and return the math data.
+        * platform/graphics/SimpleFontData.h: We expose a mathData() function to access the MATH data.
+        * platform/graphics/opentype/OpenTypeMathData.cpp: Added. This is a new class that will be used to parse the data from the OpenType MATH table.
+        (WebCore::OpenTypeMathData::OpenTypeMathData):
+        * platform/graphics/opentype/OpenTypeMathData.h: Added.
+        (WebCore::OpenTypeMathData::create):
+        (WebCore::OpenTypeMathData::hasMathData):
+
</ins><span class="cx"> 2014-04-01  Mihnea Ovidenie  &lt;mihnea@adobe.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [CSSRegions] Displaying region's children in another region not supported
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorevcxprojWebCorevcxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj (166632 => 166633)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj        2014-04-02 06:29:38 UTC (rev 166632)
+++ trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj        2014-04-02 07:05:14 UTC (rev 166633)
</span><span class="lines">@@ -7989,6 +7989,7 @@
</span><span class="cx">     &lt;ClCompile Include=&quot;..\platform\graphics\win\IntRectWin.cpp&quot; /&gt;
</span><span class="cx">     &lt;ClCompile Include=&quot;..\platform\graphics\win\IntSizeWin.cpp&quot; /&gt;
</span><span class="cx">     &lt;ClCompile Include=&quot;..\platform\graphics\win\MediaPlayerPrivateFullscreenWindow.cpp&quot; /&gt;
</span><ins>+    &lt;ClCompile Include=&quot;..\platform\graphics\opentype\OpenTypeMathData.cpp&quot; /&gt;
</ins><span class="cx">     &lt;ClCompile Include=&quot;..\platform\graphics\opentype\OpenTypeUtilities.cpp&quot; /&gt;
</span><span class="cx">     &lt;ClCompile Include=&quot;..\platform\graphics\opentype\OpenTypeVerticalData.cpp&quot; /&gt;
</span><span class="cx">     &lt;ClCompile Include=&quot;..\platform\graphics\win\SimpleFontDataCairoWin.cpp&quot;&gt;
</span><span class="lines">@@ -19406,6 +19407,7 @@
</span><span class="cx">     &lt;ClInclude Include=&quot;..\platform\graphics\win\FullScreenControllerClient.h&quot; /&gt;
</span><span class="cx">     &lt;ClInclude Include=&quot;..\platform\graphics\win\LocalWindowsContext.h&quot; /&gt;
</span><span class="cx">     &lt;CustomBuildStep Include=&quot;..\platform\graphics\win\MediaPlayerPrivateFullscreenWindow.h&quot; /&gt;
</span><ins>+    &lt;ClInclude Include=&quot;..\platform\graphics\opentype\OpenTypeMathData.h&quot; /&gt;
</ins><span class="cx">     &lt;ClInclude Include=&quot;..\platform\graphics\opentype\OpenTypeTypes.h&quot; /&gt;
</span><span class="cx">     &lt;ClInclude Include=&quot;..\platform\graphics\opentype\OpenTypeUtilities.h&quot; /&gt;
</span><span class="cx">     &lt;ClInclude Include=&quot;..\platform\graphics\opentype\OpenTypeVerticalData.h&quot; /&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorevcxprojWebCorevcxprojfilters"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters (166632 => 166633)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters        2014-04-02 06:29:38 UTC (rev 166632)
+++ trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters        2014-04-02 07:05:14 UTC (rev 166633)
</span><span class="lines">@@ -1482,6 +1482,9 @@
</span><span class="cx">     &lt;ClCompile Include=&quot;..\platform\graphics\win\MediaPlayerPrivateFullscreenWindow.cpp&quot;&gt;
</span><span class="cx">       &lt;Filter&gt;platform\graphics\win&lt;/Filter&gt;
</span><span class="cx">     &lt;/ClCompile&gt;
</span><ins>+    &lt;ClCompile Include=&quot;..\platform\graphics\opentype\OpenTypeMathData.cpp&quot;&gt;
+      &lt;Filter&gt;platform\graphics\win&lt;/Filter&gt;
+    &lt;/ClCompile&gt;
</ins><span class="cx">     &lt;ClCompile Include=&quot;..\platform\graphics\opentype\OpenTypeUtilities.cpp&quot;&gt;
</span><span class="cx">       &lt;Filter&gt;platform\graphics\win&lt;/Filter&gt;
</span><span class="cx">     &lt;/ClCompile&gt;
</span><span class="lines">@@ -8449,6 +8452,9 @@
</span><span class="cx">     &lt;ClInclude Include=&quot;..\platform\graphics\win\LocalWindowsContext.h&quot;&gt;
</span><span class="cx">       &lt;Filter&gt;platform\graphics\win&lt;/Filter&gt;
</span><span class="cx">     &lt;/ClInclude&gt;
</span><ins>+    &lt;ClInclude Include=&quot;..\platform\graphics\opentype\OpenTypeMathData.h&quot;&gt;
+      &lt;Filter&gt;platform\graphics\win&lt;/Filter&gt;
+    &lt;/ClInclude&gt;
</ins><span class="cx">     &lt;ClInclude Include=&quot;..\platform\graphics\opentype\OpenTypeTypes.h&quot;&gt;
</span><span class="cx">       &lt;Filter&gt;platform\graphics\win&lt;/Filter&gt;
</span><span class="cx">     &lt;/ClInclude&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (166632 => 166633)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2014-04-02 06:29:38 UTC (rev 166632)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2014-04-02 07:05:14 UTC (rev 166633)
</span><span class="lines">@@ -4594,6 +4594,8 @@
</span><span class="cx">                 B2C3DA630D006CD600EF6F26 /* FontCache.h in Headers */ = {isa = PBXBuildFile; fileRef = B2C3DA520D006CD600EF6F26 /* FontCache.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 B2C3DA640D006CD600EF6F26 /* SimpleFontData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2C3DA530D006CD600EF6F26 /* SimpleFontData.cpp */; };
</span><span class="cx">                 B2C3DA650D006CD600EF6F26 /* SimpleFontData.h in Headers */ = {isa = PBXBuildFile; fileRef = B2C3DA540D006CD600EF6F26 /* SimpleFontData.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><ins>+                B2D3DA640D006CD600EF6F27 /* OpenTypeMathData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2D3DA530D006CD600EF6F27 /* OpenTypeMathData.cpp */; };
+                B2D3DA650D006CD600EF6F27 /* OpenTypeMathData.h in Headers */ = {isa = PBXBuildFile; fileRef = B2D3DA540D006CD600EF6F27 /* OpenTypeMathData.h */; settings = {ATTRIBUTES = (Private, ); }; };
</ins><span class="cx">                 B2C3DA660D006CD600EF6F26 /* FontDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = B2C3DA550D006CD600EF6F26 /* FontDescription.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 B2C3DA670D006CD600EF6F26 /* FontGlyphs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2C3DA560D006CD600EF6F26 /* FontGlyphs.cpp */; };
</span><span class="cx">                 B2C3DA680D006CD600EF6F26 /* FontGlyphs.h in Headers */ = {isa = PBXBuildFile; fileRef = B2C3DA570D006CD600EF6F26 /* FontGlyphs.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -11848,6 +11850,8 @@
</span><span class="cx">                 B2C3DA520D006CD600EF6F26 /* FontCache.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FontCache.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 B2C3DA530D006CD600EF6F26 /* SimpleFontData.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SimpleFontData.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 B2C3DA540D006CD600EF6F26 /* SimpleFontData.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SimpleFontData.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                B2D3DA530D006CD600EF6F27 /* OpenTypeMathData.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = opentype/OpenTypeMathData.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                B2D3DA540D006CD600EF6F27 /* OpenTypeMathData.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = opentype/OpenTypeMathData.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 B2C3DA550D006CD600EF6F26 /* FontDescription.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FontDescription.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 B2C3DA560D006CD600EF6F26 /* FontGlyphs.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = FontGlyphs.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 B2C3DA570D006CD600EF6F26 /* FontGlyphs.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FontGlyphs.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -20140,6 +20144,8 @@
</span><span class="cx">                                 0F3DD44E12F5EA1B000D9190 /* ShadowBlur.h */,
</span><span class="cx">                                 B2C3DA530D006CD600EF6F26 /* SimpleFontData.cpp */,
</span><span class="cx">                                 B2C3DA540D006CD600EF6F26 /* SimpleFontData.h */,
</span><ins>+                                B2D3DA530D006CD600EF6F27 /* OpenTypeMathData.cpp */,
+                                B2D3DA540D006CD600EF6F27 /* OpenTypeMathData.h */,
</ins><span class="cx">                                 CD641EB21818F5ED00EE4C41 /* SourceBufferPrivate.h */,
</span><span class="cx">                                 CDC61DA0180867D8004B913F /* SourceBufferPrivate.h */,
</span><span class="cx">                                 CDC8B5AC1804AE5D0016E685 /* SourceBufferPrivateClient.h */,
</span><span class="lines">@@ -25487,6 +25493,7 @@
</span><span class="cx">                                 E1B7839C163740A70007B692 /* SharedWorkerStrategy.h in Headers */,
</span><span class="cx">                                 41D168EE10226E89009BC827 /* SharedWorkerThread.h in Headers */,
</span><span class="cx">                                 B2C3DA650D006CD600EF6F26 /* SimpleFontData.h in Headers */,
</span><ins>+                                B2D3DA650D006CD600EF6F27 /* OpenTypeMathData.h in Headers */,
</ins><span class="cx">                                 E48944A3180B57D800F165D8 /* SimpleLineLayout.h in Headers */,
</span><span class="cx">                                 E4E9B11D1814569C003ACCDF /* SimpleLineLayoutFunctions.h in Headers */,
</span><span class="cx">                                 E4E9B1191810916F003ACCDF /* SimpleLineLayoutResolver.h in Headers */,
</span><span class="lines">@@ -28854,6 +28861,7 @@
</span><span class="cx">                                 E1B784201639CBBE0007B692 /* SharedWorkerRepository.cpp in Sources */,
</span><span class="cx">                                 41D168ED10226E89009BC827 /* SharedWorkerThread.cpp in Sources */,
</span><span class="cx">                                 B2C3DA640D006CD600EF6F26 /* SimpleFontData.cpp in Sources */,
</span><ins>+                                B2D3DA640D006CD600EF6F27 /* OpenTypeMathData.cpp in Sources */,
</ins><span class="cx">                                 163E88F7118A39D200ED9231 /* SimpleFontDataCoreText.cpp in Sources */,
</span><span class="cx">                                 37E65950163B10C200EB4574 /* SimpleFontDataIOS.mm in Sources */,
</span><span class="cx">                                 B2AFFC7F0D00A5C10030074D /* SimpleFontDataMac.mm in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFontPlatformDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/FontPlatformData.cpp (166632 => 166633)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/FontPlatformData.cpp        2014-04-02 06:29:38 UTC (rev 166632)
+++ trunk/Source/WebCore/platform/graphics/FontPlatformData.cpp        2014-04-02 07:05:14 UTC (rev 166633)
</span><span class="lines">@@ -27,6 +27,11 @@
</span><span class="cx"> #include &lt;wtf/text/StringHash.h&gt;
</span><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><ins>+#if OS(DARWIN) &amp;&amp; USE(CG)
+#include &quot;SharedBuffer.h&quot;
+#include &lt;CoreGraphics/CGFont.h&gt;
+#endif
+
</ins><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> FontPlatformData::FontPlatformData(WTF::HashTableDeletedValueType)
</span><span class="lines">@@ -169,4 +174,14 @@
</span><span class="cx">     return platformDataAssign(other);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+#if OS(DARWIN) &amp;&amp; USE(CG)
+PassRefPtr&lt;SharedBuffer&gt; FontPlatformData::openTypeTable(uint32_t table) const
+{
+    if (CFDataRef data = CGFontCopyTableForTag(cgFont(), table))
+        return SharedBuffer::wrapCFData(data);
+    
+    return nullptr;
</ins><span class="cx"> }
</span><ins>+#endif
+
+}
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFontPlatformDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/FontPlatformData.h (166632 => 166633)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/FontPlatformData.h        2014-04-02 06:29:38 UTC (rev 166632)
+++ trunk/Source/WebCore/platform/graphics/FontPlatformData.h        2014-04-02 07:05:14 UTC (rev 166633)
</span><span class="lines">@@ -216,7 +216,7 @@
</span><span class="cx"> #endif
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-#if PLATFORM(WIN) &amp;&amp; (USE(CG) || USE(CAIRO))
</del><ins>+#if (OS(DARWIN) &amp;&amp; USE(CG)) || (PLATFORM(WIN) &amp;&amp; (USE(CG) || USE(CAIRO)))
</ins><span class="cx">     PassRefPtr&lt;SharedBuffer&gt; openTypeTable(uint32_t table) const;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsSimpleFontDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/SimpleFontData.cpp (166632 => 166633)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/SimpleFontData.cpp        2014-04-02 06:29:38 UTC (rev 166632)
+++ trunk/Source/WebCore/platform/graphics/SimpleFontData.cpp        2014-04-02 07:05:14 UTC (rev 166633)
</span><span class="lines">@@ -32,6 +32,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;Font.h&quot;
</span><span class="cx"> #include &quot;FontCache.h&quot;
</span><ins>+#include &quot;OpenTypeMathData.h&quot;
</ins><span class="cx"> #include &lt;wtf/MathExtras.h&gt;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(OPENTYPE_VERTICAL)
</span><span class="lines">@@ -52,6 +53,7 @@
</span><span class="cx">     , m_isLoading(isLoading)
</span><span class="cx">     , m_isTextOrientationFallback(isTextOrientationFallback)
</span><span class="cx">     , m_isBrokenIdeographFallback(false)
</span><ins>+    , m_mathData(nullptr)
</ins><span class="cx"> #if ENABLE(OPENTYPE_VERTICAL)
</span><span class="cx">     , m_verticalData(0)
</span><span class="cx"> #endif
</span><span class="lines">@@ -76,6 +78,7 @@
</span><span class="cx">     , m_isLoading(false)
</span><span class="cx">     , m_isTextOrientationFallback(false)
</span><span class="cx">     , m_isBrokenIdeographFallback(false)
</span><ins>+    , m_mathData(nullptr)
</ins><span class="cx"> #if ENABLE(OPENTYPE_VERTICAL)
</span><span class="cx">     , m_verticalData(0)
</span><span class="cx"> #endif
</span><span class="lines">@@ -256,6 +259,16 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+const OpenTypeMathData* SimpleFontData::mathData() const
+{
+    if (!m_mathData) {
+        m_mathData = OpenTypeMathData::create(m_platformData);
+        if (!m_mathData-&gt;hasMathData())
+            m_mathData.clear();
+    }
+    return m_mathData.get();
+}
+
</ins><span class="cx"> PassOwnPtr&lt;SimpleFontData::DerivedFontData&gt; SimpleFontData::DerivedFontData::create(bool forCustomFont)
</span><span class="cx"> {
</span><span class="cx">     return adoptPtr(new DerivedFontData(forCustomFont));
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsSimpleFontDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/SimpleFontData.h (166632 => 166633)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/SimpleFontData.h        2014-04-02 06:29:38 UTC (rev 166632)
+++ trunk/Source/WebCore/platform/graphics/SimpleFontData.h        2014-04-02 07:05:14 UTC (rev 166633)
</span><span class="lines">@@ -32,6 +32,7 @@
</span><span class="cx"> #include &quot;GlyphBuffer.h&quot;
</span><span class="cx"> #include &quot;GlyphMetricsMap.h&quot;
</span><span class="cx"> #include &quot;GlyphPageTreeNode.h&quot;
</span><ins>+#include &quot;OpenTypeMathData.h&quot;
</ins><span class="cx"> #if ENABLE(OPENTYPE_VERTICAL)
</span><span class="cx"> #include &quot;OpenTypeVerticalData.h&quot;
</span><span class="cx"> #endif
</span><span class="lines">@@ -92,6 +93,7 @@
</span><span class="cx">     static const SimpleFontData* systemFallback() { return reinterpret_cast&lt;const SimpleFontData*&gt;(-1); }
</span><span class="cx"> 
</span><span class="cx">     const FontPlatformData&amp; platformData() const { return m_platformData; }
</span><ins>+    const OpenTypeMathData* mathData() const;
</ins><span class="cx"> #if ENABLE(OPENTYPE_VERTICAL)
</span><span class="cx">     const OpenTypeVerticalData* verticalData() const { return m_verticalData.get(); }
</span><span class="cx"> #endif
</span><span class="lines">@@ -259,6 +261,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool m_isTextOrientationFallback;
</span><span class="cx">     bool m_isBrokenIdeographFallback;
</span><ins>+    mutable RefPtr&lt;OpenTypeMathData&gt; m_mathData;
</ins><span class="cx"> #if ENABLE(OPENTYPE_VERTICAL)
</span><span class="cx">     RefPtr&lt;OpenTypeVerticalData&gt; m_verticalData;
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsopentypeOpenTypeMathDatacpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/platform/graphics/opentype/OpenTypeMathData.cpp (0 => 166633)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/opentype/OpenTypeMathData.cpp                                (rev 0)
+++ trunk/Source/WebCore/platform/graphics/opentype/OpenTypeMathData.cpp        2014-04-02 07:05:14 UTC (rev 166633)
</span><span class="lines">@@ -0,0 +1,41 @@
</span><ins>+/*
+ * Copyright (C) 2014 Frederic Wang (fred.wang@free.fr). 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;
+#include &quot;OpenTypeMathData.h&quot;
+
+#include &quot;FontPlatformData.h&quot;
+
+using namespace std;
+
+namespace WebCore {
+
+OpenTypeMathData::OpenTypeMathData(const FontPlatformData&amp;)
+{
+    // FIXME: We should read the data from the MATH table (https://bugs.webkit.org/show_bug.cgi?id=130324).
+    m_mathBuffer = nullptr;
+}
+
+} // namespace WebCore
</ins><span class="cx">Property changes on: trunk/Source/WebCore/platform/graphics/opentype/OpenTypeMathData.cpp
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<a id="trunkSourceWebCoreplatformgraphicsopentypeOpenTypeMathDatah"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/platform/graphics/opentype/OpenTypeMathData.h (0 => 166633)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/opentype/OpenTypeMathData.h                                (rev 0)
+++ trunk/Source/WebCore/platform/graphics/opentype/OpenTypeMathData.h        2014-04-02 07:05:14 UTC (rev 166633)
</span><span class="lines">@@ -0,0 +1,53 @@
</span><ins>+/*
+ * Copyright (C) 2014 Frederic Wang (fred.wang@free.fr). 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.
+ */
+
+#ifndef OpenTypeMathData_h
+#define OpenTypeMathData_h
+
+#include &quot;SharedBuffer.h&quot;
+#include &lt;wtf/PassRefPtr.h&gt;
+#include &lt;wtf/RefCounted.h&gt;
+
+namespace WebCore {
+
+class FontPlatformData;
+
+class OpenTypeMathData : public RefCounted&lt;OpenTypeMathData&gt; {
+public:
+    static PassRefPtr&lt;OpenTypeMathData&gt; create(const FontPlatformData&amp; fontData)
+    {
+        return adoptRef(new OpenTypeMathData(fontData));
+    }
+
+    bool hasMathData() const { return m_mathBuffer; }
+
+private:
+    explicit OpenTypeMathData(const FontPlatformData&amp;);
+    RefPtr&lt;SharedBuffer&gt; m_mathBuffer;
+};
+
+} // namespace WebCore
+
+#endif // OpenTypeMathData_h
</ins><span class="cx">Property changes on: trunk/Source/WebCore/platform/graphics/opentype/OpenTypeMathData.h
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
</div>

</body>
</html>