[GTK] Bring Harfbuzz-ng support to Gtk
authormrobinson@webkit.org <mrobinson@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 10 Dec 2012 14:50:44 +0000 (14:50 +0000)
committermrobinson@webkit.org <mrobinson@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 10 Dec 2012 14:50:44 +0000 (14:50 +0000)
commit34e2e34e94f8e15d4cef8c8c57e965b30702598d
treec2c6c380b474e24cb56e335ff33691554495e28f
parent957bbf110c36d41d452913a2956302e6ecac34dd
[GTK] Bring Harfbuzz-ng support to Gtk
https://bugs.webkit.org/show_bug.cgi?id=92098

Reviewed by Gustavo Noronha Silva.

.:

Add support for detecting HarfBuzz during configuration phase. Add these
flags to the FreeType ones since HarfBuzz support is part of the FreeType
backend.

* configure.ac: Detect HarfBuzz.

Source/WebCore:

Enable HarfBuzz support by default. With the Freetype backend we no longer
fall back to Pango for rendering complex text.

No new tests. This is covered by existing tests.

* GNUmakefile.am: Add HarfBuzz include directories and define.
* GNUmakefile.list.am: Add HarfBuzz files to source list and remove
Pango ones.
* platform/graphics/freetype/FontPlatformDataFreeType.cpp:
(WebCore::FontPlatformData::operator==): To properly render fallback
fonts via HarfBuzz , it's important that we actually ask Fontconfig
whether or not two patterns are the same. This ensures that when patterns
are just copies of one another they only take up one slot in the font cache
and appear to be the same font to HarfBuzzShaper.

Source/WebKit/gtk:

Add HarfBuzz dependency.

* GNUmakefile.am: Add FreeType/HarfBuzz CFLAGS to the library.

Source/WebKit2:

Add a HarfBuzz dependency.

* GNUmakefile.am: Add FreeType/HarfBuzz CFLAGS/LIBS to the libraries.

Tools:

Add HarfBuzz dependency.

* GNUmakefile.am: Add FreeType/HarfBuzz CFLAGS to the WebCore Internals library.
* gtk/jhbuild.modules: Add HarfBuzz to the JHbuild and remove Pango, since it
should no longer affect layout test results.

LayoutTests:

Update tests results that have changed due to the switch to HarfBuzz.
In general, these are progressions or harmless metrics differences.

* platform/gtk: Update test results that have changed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137146 268f45cc-cd09-0410-ab3c-d52691b4dbfc
142 files changed:
ChangeLog
LayoutTests/ChangeLog
LayoutTests/platform/gtk/css3/font-feature-settings-rendering-expected.png [new file with mode: 0644]
LayoutTests/platform/gtk/css3/font-feature-settings-rendering-expected.txt
LayoutTests/platform/gtk/fast/css/text-rendering-expected.png
LayoutTests/platform/gtk/fast/css/text-rendering-expected.txt
LayoutTests/platform/gtk/fast/text/atsui-multiple-renderers-expected.png
LayoutTests/platform/gtk/fast/text/atsui-multiple-renderers-expected.txt
LayoutTests/platform/gtk/fast/text/atsui-negative-spacing-features-expected.png
LayoutTests/platform/gtk/fast/text/atsui-negative-spacing-features-expected.txt
LayoutTests/platform/gtk/fast/text/atsui-pointtooffset-calls-cg-expected.png
LayoutTests/platform/gtk/fast/text/atsui-pointtooffset-calls-cg-expected.txt
LayoutTests/platform/gtk/fast/text/atsui-spacing-features-expected.png
LayoutTests/platform/gtk/fast/text/atsui-spacing-features-expected.txt
LayoutTests/platform/gtk/fast/text/complex-text-opacity-expected.png
LayoutTests/platform/gtk/fast/text/complex-text-opacity-expected.txt
LayoutTests/platform/gtk/fast/text/emphasis-expected.png
LayoutTests/platform/gtk/fast/text/emphasis-expected.txt
LayoutTests/platform/gtk/fast/text/international/arabic-justify-expected.png [new file with mode: 0644]
LayoutTests/platform/gtk/fast/text/international/arabic-justify-expected.txt
LayoutTests/platform/gtk/fast/text/international/bidi-AN-after-empty-run-expected.png
LayoutTests/platform/gtk/fast/text/international/bidi-AN-after-empty-run-expected.txt
LayoutTests/platform/gtk/fast/text/international/bidi-linebreak-001-expected.png
LayoutTests/platform/gtk/fast/text/international/bidi-linebreak-001-expected.txt
LayoutTests/platform/gtk/fast/text/international/bidi-linebreak-002-expected.png
LayoutTests/platform/gtk/fast/text/international/bidi-linebreak-002-expected.txt
LayoutTests/platform/gtk/fast/text/international/bidi-linebreak-003-expected.png
LayoutTests/platform/gtk/fast/text/international/bidi-linebreak-003-expected.txt
LayoutTests/platform/gtk/fast/text/international/bidi-listbox-atsui-expected.png
LayoutTests/platform/gtk/fast/text/international/bidi-listbox-atsui-expected.txt
LayoutTests/platform/gtk/fast/text/international/bold-bengali-expected.png [new file with mode: 0644]
LayoutTests/platform/gtk/fast/text/international/bold-bengali-expected.txt
LayoutTests/platform/gtk/fast/text/international/complex-character-based-fallback-expected.png
LayoutTests/platform/gtk/fast/text/international/complex-character-based-fallback-expected.txt
LayoutTests/platform/gtk/fast/text/international/danda-space-expected.png
LayoutTests/platform/gtk/fast/text/international/danda-space-expected.txt
LayoutTests/platform/gtk/fast/text/international/hindi-spacing-expected.png
LayoutTests/platform/gtk/fast/text/international/hindi-spacing-expected.txt
LayoutTests/platform/gtk/fast/text/international/hindi-whitespace-expected.png
LayoutTests/platform/gtk/fast/text/international/hindi-whitespace-expected.txt
LayoutTests/platform/gtk/fast/text/international/khmer-selection-expected.png
LayoutTests/platform/gtk/fast/text/international/khmer-selection-expected.txt
LayoutTests/platform/gtk/fast/text/international/thai-baht-space-expected.png
LayoutTests/platform/gtk/fast/text/international/thai-baht-space-expected.txt
LayoutTests/platform/gtk/fast/text/international/thai-line-breaks-expected.png
LayoutTests/platform/gtk/fast/text/international/thai-line-breaks-expected.txt
LayoutTests/platform/gtk/fast/text/justify-ideograph-complex-expected.png [new file with mode: 0644]
LayoutTests/platform/gtk/fast/text/justify-ideograph-complex-expected.txt
LayoutTests/platform/gtk/fast/text/large-text-composed-char-expected.png
LayoutTests/platform/gtk/fast/text/large-text-composed-char-expected.txt
LayoutTests/platform/gtk/fast/text/midword-break-before-surrogate-pair-2-expected.png
LayoutTests/platform/gtk/fast/text/midword-break-before-surrogate-pair-2-expected.txt
LayoutTests/platform/gtk/fast/text/shaping/shaping-script-order-expected.txt [new file with mode: 0644]
LayoutTests/platform/gtk/fast/text/shaping/shaping-selection-rect-expected.txt [new file with mode: 0644]
LayoutTests/platform/gtk/fast/text/stroking-decorations-expected.png
LayoutTests/platform/gtk/fast/text/stroking-decorations-expected.txt
LayoutTests/platform/gtk/fast/text/stroking-expected.png
LayoutTests/platform/gtk/fast/text/stroking-expected.txt
LayoutTests/platform/gtk/fast/text/unicode-variation-selector-expected.png [new file with mode: 0644]
LayoutTests/platform/gtk/fast/text/unicode-variation-selector-expected.txt
LayoutTests/platform/gtk/fast/text/wide-zero-width-space-expected.png
LayoutTests/platform/gtk/fast/text/wide-zero-width-space-expected.txt
LayoutTests/platform/gtk/fonts/complex-text-shadows-expected.png
LayoutTests/platform/gtk/fonts/font-face-with-complex-text-expected.png
LayoutTests/platform/gtk/platform/gtk/fonts/complex-text-shadows-expected.txt
LayoutTests/platform/gtk/platform/gtk/fonts/font-face-with-complex-text-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/g-dirLTR-ubNone-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/g-dirLTR-ubNone-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/g-dirLTR-ubOverride-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/g-dirLTR-ubOverride-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/g-dirRTL-ubNone-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/g-dirRTL-ubNone-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/g-dirRTL-ubOverride-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/g-dirRTL-ubOverride-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/text-dirLTR-ubNone-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/text-dirLTR-ubNone-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/text-dirLTR-ubOverride-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/text-dirLTR-ubOverride-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/text-dirRTL-ubNone-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/text-dirRTL-ubNone-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/text-dirRTL-ubOverride-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/text-dirRTL-ubOverride-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubEmbed-in-rtl-context-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubEmbed-in-rtl-context-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubNone-in-rtl-context-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubNone-in-rtl-context-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-default-context-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-default-context-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-ltr-context-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-ltr-context-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-rtl-context-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-rtl-context-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirNone-ubOverride-in-default-context-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirNone-ubOverride-in-default-context-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirNone-ubOverride-in-ltr-context-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirNone-ubOverride-in-ltr-context-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirNone-ubOverride-in-rtl-context-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirNone-ubOverride-in-rtl-context-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirRTL-ubEmbed-in-default-context-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirRTL-ubEmbed-in-default-context-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirRTL-ubEmbed-in-ltr-context-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirRTL-ubEmbed-in-ltr-context-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirRTL-ubNone-in-default-context-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirRTL-ubNone-in-default-context-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirRTL-ubNone-in-ltr-context-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirRTL-ubNone-in-ltr-context-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-default-context-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-default-context-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-ltr-context-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-ltr-context-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-rtl-context-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-rtl-context-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-direction-ltr-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-direction-ltr-expected.txt
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-direction-rtl-expected.png
LayoutTests/platform/gtk/svg/W3C-I18N/tspan-direction-rtl-expected.txt
LayoutTests/platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-05-t-expected.png
LayoutTests/platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-05-t-expected.txt
LayoutTests/platform/gtk/svg/W3C-SVG-1.1/text-intro-05-t-expected.png
LayoutTests/platform/gtk/svg/W3C-SVG-1.1/text-intro-05-t-expected.txt
LayoutTests/platform/gtk/svg/custom/svg-fonts-fallback-expected.png
LayoutTests/platform/gtk/svg/custom/svg-fonts-fallback-expected.txt
LayoutTests/platform/gtk/svg/text/bidi-text-query-expected.png
LayoutTests/platform/gtk/svg/text/bidi-text-query-expected.txt
LayoutTests/platform/gtk/svg/text/bidi-tspans-expected.png
LayoutTests/platform/gtk/svg/text/bidi-tspans-expected.txt
LayoutTests/platform/gtk/svg/text/text-intro-05-t-expected.png
LayoutTests/platform/gtk/svg/text/text-intro-05-t-expected.txt
LayoutTests/platform/gtk/transforms/2d/hindi-rotated-expected.png
LayoutTests/platform/gtk/transforms/2d/hindi-rotated-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/GNUmakefile.am
Source/WebCore/GNUmakefile.list.am
Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp
Source/WebKit/gtk/ChangeLog
Source/WebKit/gtk/GNUmakefile.am
Source/WebKit2/ChangeLog
Source/WebKit2/GNUmakefile.am
Tools/ChangeLog
Tools/GNUmakefile.am
Tools/gtk/jhbuild.modules
configure.ac