Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(150)

Issue 2871133004: Build FreeType with HarfBuzz support (Closed)

Created:
3 years, 7 months ago by drott
Modified:
3 years, 7 months ago
CC:
chromium-reviews, darin-cc_chromium.org, jam, jochen+watch_chromium.org, mlamouri+watch-content_chromium.org, Peter Beverloo
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

Build FreeType with HarfBuzz support FreeType's autohinter uses HarfBuzz API to collect additional GSUB and GPOS mappings to detect ligatures that should be aligned by the autohinter. Previously we were not able to build FreeType with HarfBuzz support because of the cyclic dependency. This CL resolves the cyclic dependency by building a bootstrap FreeType in order to build HarfBuzz' hb_ft_* functions as a static library called harfbuzz-ng-ft. Then we build harfbuzz-ng separately (which does not depend on FreeType), then we build FreeType depending on harfbuzz-ng and harfbuzz-ng-ft. This resolves issues with fi and ffi ligatures in Roboto looking like they were shifted to a different baseline. I tried developing a pixel test for this, which works if I force usage of the FreeType autohinter through SkPaint::kSlight_Hinting, however we are currently unable to automatically test this since our Linux layout tests do not exercise the autohinting code and do not set this hinting mode, probably due to the special fontconfig settings that we are using for the layout tests. Manually verifying the Roboto ligatures however confirms that this works. BUG=617168 Review-Url: https://codereview.chromium.org/2871133004 Cr-Commit-Position: refs/heads/master@{#471277} Committed: https://chromium.googlesource.com/chromium/src/+/a377e3e1fa4f44a58f70abb2402e6cc79e210945

Patch Set 1 #

Patch Set 2 : Don't touch linkage of content_shell #

Patch Set 3 : Try fixing the ChromeOS build #

Patch Set 4 : Attempt to resolve duplicate symbols #

Patch Set 5 : Attempt to resolve remaining CrOS build failures #

Patch Set 6 : Try to fix chromeos_amd64_generic_chromium_compile_only_ng builder, which seems to use own freetype… #

Patch Set 7 : Rebaseline expectation #

Unified diffs Side-by-side diffs Delta from patch set Stats (+120 lines, -29 lines) Patch
M third_party/WebKit/LayoutTests/TestExpectations View 1 2 3 4 5 6 1 chunk +2 lines, -0 lines 0 comments Download
M third_party/freetype/BUILD.gn View 1 2 3 4 5 6 chunks +68 lines, -3 lines 0 comments Download
M third_party/freetype/include/freetype-custom-config/ftoption.h View 1 2 3 4 5 1 chunk +3 lines, -1 line 0 comments Download
M third_party/harfbuzz-ng/BUILD.gn View 1 2 4 chunks +35 lines, -25 lines 0 comments Download
A third_party/harfbuzz-ng/harfbuzz.gni View 1 2 1 chunk +12 lines, -0 lines 0 comments Download

Messages

Total messages: 52 (37 generated)
drott
PTAL, this the new approach replacing the previous attempt in https://codereview.chromium.org/2872333002 which wouldn't work on ...
3 years, 7 months ago (2017-05-11 16:09:08 UTC) #4
Peter Beverloo
//c/s/BUILD.gn change lgtm, although it seems unrelated to the act of actually enabling HarfBuzz since ...
3 years, 7 months ago (2017-05-11 16:12:48 UTC) #5
drott
On 2017/05/11 at 16:12:48, peter wrote: > //c/s/BUILD.gn change lgtm, although it seems unrelated to ...
3 years, 7 months ago (2017-05-11 16:14:10 UTC) #6
Dirk Pranke
lgtm
3 years, 7 months ago (2017-05-11 20:10:43 UTC) #29
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2871133004/110001
3 years, 7 months ago (2017-05-12 07:52:11 UTC) #34
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_chromeos_ozone_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_ozone_rel_ng/builds/382899)
3 years, 7 months ago (2017-05-12 09:02:08 UTC) #36
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2871133004/110001
3 years, 7 months ago (2017-05-12 09:03:48 UTC) #38
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_chromeos_ozone_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_ozone_rel_ng/builds/382965)
3 years, 7 months ago (2017-05-12 10:29:31 UTC) #40
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2871133004/110001
3 years, 7 months ago (2017-05-12 11:27:13 UTC) #42
commit-bot: I haz the power
Committed patchset #7 (id:110001) as https://chromium.googlesource.com/chromium/src/+/a377e3e1fa4f44a58f70abb2402e6cc79e210945
3 years, 7 months ago (2017-05-12 11:51:28 UTC) #46
Michael Achenbach
Is this possibly breaking: https://build.chromium.org/p/chromium.chrome/builders/Google%20Chrome%20Linux%20x64/builds/17788 ?
3 years, 7 months ago (2017-05-12 14:03:51 UTC) #48
drott
On 2017/05/12 at 14:03:51, machenbach wrote: > Is this possibly breaking: > https://build.chromium.org/p/chromium.chrome/builders/Google%20Chrome%20Linux%20x64/builds/17788 > ? ...
3 years, 7 months ago (2017-05-12 14:27:47 UTC) #49
drott
A revert of this CL (patchset #7 id:110001) has been created in https://codereview.chromium.org/2879843003/ by drott@chromium.org. ...
3 years, 7 months ago (2017-05-12 14:40:25 UTC) #50
Mathieu
On 2017/05/12 14:40:25, drott wrote: > A revert of this CL (patchset #7 id:110001) has ...
3 years, 7 months ago (2017-05-12 14:59:11 UTC) #51
drott
3 years, 7 months ago (2017-05-12 15:42:37 UTC) #52
Message was sent while issue was closed.
I posted the wrong build link the reason, this one should be it:
https://luci-logdog.appspot.com/v/?s=chromium%2Fbb%2Fchromium.chrome%2FGoogle...
from builder
https://build.chromium.org/p/chromium.chrome/builders/Google%20Chrome%20Linux...

Powered by Google App Engine
This is Rietveld 408576698