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):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@166633 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Blending] Compositing requirements for blending are not computed correctly
https://bugs.webkit.org/show_bug.cgi?id=130664

Patch by Ion Rosca <rosca@adobe.com> on 2014-04-02
Reviewed by Dean Jackson.

Source/WebCore:

Tests: css3/compositing/blend-mode-accelerated-with-multiple-stacking-contexts.html
       css3/compositing/blend-mode-with-accelerated-sibling.html

Compositing requirements for blending: if a layer having blend mode
other than normal is composited for any reason, its closest stacking
context ancestor should be composited as well.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
* rendering/RenderLayer.h: added a new field,
m_hasUnisolatedCompositedBlendingDescendants, which is true if the layer
has composited blending descendants not isolated by any stacking context child;
added a new method: isolatesCompositedBlending(), which is true if we should
accelerate that layer in order to perform isolation correctly.

* rendering/RenderLayerCompositor.cpp:
(WebCore::CompositingState::CompositingState): m_subtreeHasBlending was renamed
m_hasUnisolatedCompositedBlendingDescendants in order to be more self-explanatory.
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
computes the isolation requirements for composited blending by
(re)setting RenderLayer::m_hasUnisolatedCompositedBlendingDescendants flag.

(WebCore::RenderLayerCompositor::reasonsForCompositing):
fixed the reason of compositing: isolation instead of blending.

(WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason):
* rendering/RenderLayerCompositor.h:

LayoutTests:

* css3/compositing/blend-mode-accelerated-with-multiple-stacking-contexts-expected.txt: Added.
* css3/compositing/blend-mode-accelerated-with-multiple-stacking-contexts.html: Added.
* css3/compositing/blend-mode-with-accelerated-sibling-expected.txt: Added.
* css3/compositing/blend-mode-with-accelerated-sibling.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@166634 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CMake] Drop port check from FindEGL.cmake.
https://bugs.webkit.org/show_bug.cgi?id=131091

Reviewed by Gyuyoung Kim.

There is no reason to mark some variables as advanced only for the
GTK+ port.

* Source/cmake/FindEGL.cmake: Mark EGL_INCLUDE_DIR and EGL_LIBRARY
as advanced regardless of the port.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@166635 268f45cc-cd09-0410-ab3c-d52691b4dbfc