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

Issue 2880223002: Reland: Compile FreeType with HarfBuzz support (Closed)

Created:
3 years, 7 months ago by drott
Modified:
3 years, 7 months ago
Reviewers:
Dirk Pranke, Elliot Glaysher, Evan Stade, nicholss, bungeman-chromium. thomasanderson, Tom Anderson, Hzj_jie
CC:
chromium-reviews, chromoting-reviews_chromium.org
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

Reland: Compile 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 CL also removes the previous pangoft2 link hack since the :harfbuzz-ng target now brings all symbols required by pangoft2. 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. Reland after revert in https://codereview.chromium.org/2879843003/ BUG=617168 Review-Url: https://codereview.chromium.org/2880223002 Cr-Commit-Position: refs/heads/master@{#472413} Committed: https://chromium.googlesource.com/chromium/src/+/fbec38011870753cffb3cb2ff98aa0c00c63b25c

Patch Set 1 #

Patch Set 2 : Fix CrOS build, clarify FreeType dependencies #

Patch Set 3 : Remove freetype bootstrap files from freetype target #

Patch Set 4 : Try Fix Mac build #

Patch Set 5 : Fix Android build #

Patch Set 6 : Fix Android build, and update TestExpectations for linux rebaselines #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+145 lines, -75 lines) Patch
M build/config/freetype/BUILD.gn View 1 2 3 1 chunk +1 line, -11 lines 0 comments Download
A + build/config/freetype/freetype.gni View 1 2 3 2 chunks +0 lines, -12 lines 0 comments Download
M chrome/browser/ui/libgtkui/BUILD.gn View 2 chunks +5 lines, -7 lines 1 comment Download
M remoting/host/it2me/BUILD.gn View 1 chunk +8 lines, -7 lines 0 comments Download
M third_party/WebKit/LayoutTests/TestExpectations View 1 2 3 4 5 1 chunk +2 lines, -0 lines 0 comments Download
M third_party/freetype/BUILD.gn View 1 2 3 4 5 chunks +66 lines, -3 lines 0 comments Download
M third_party/freetype/include/freetype-custom-config/ftoption.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/harfbuzz-ng/BUILD.gn View 1 2 3 4 6 chunks +50 lines, -34 lines 0 comments Download
A third_party/harfbuzz-ng/harfbuzz.gni View 1 chunk +12 lines, -0 lines 0 comments Download

Messages

Total messages: 41 (32 generated)
drott
zijiehe@, nicholss@: Please review the change to the remoting BUILD.gn file. > # You can ...
3 years, 7 months ago (2017-05-15 15:50:32 UTC) #23
nicholss
lgtm for remoting/host/it2me/BUILD.gn
3 years, 7 months ago (2017-05-15 15:52:41 UTC) #24
Evan Stade
https://codereview.chromium.org/2880223002/diff/100001/chrome/browser/ui/libgtkui/BUILD.gn File chrome/browser/ui/libgtkui/BUILD.gn (right): https://codereview.chromium.org/2880223002/diff/100001/chrome/browser/ui/libgtkui/BUILD.gn#newcode120 chrome/browser/ui/libgtkui/BUILD.gn:120: "//third_party/harfbuzz-ng", this looks like something thomasanderson@ knows about, so ...
3 years, 7 months ago (2017-05-15 16:40:07 UTC) #28
Hzj_jie
On 2017/05/15 16:40:07, Evan Stade wrote: > https://codereview.chromium.org/2880223002/diff/100001/chrome/browser/ui/libgtkui/BUILD.gn > File chrome/browser/ui/libgtkui/BUILD.gn (right): > > https://codereview.chromium.org/2880223002/diff/100001/chrome/browser/ui/libgtkui/BUILD.gn#newcode120 ...
3 years, 7 months ago (2017-05-15 17:53:21 UTC) #31
Tom Anderson
libgtkui lgtm
3 years, 7 months ago (2017-05-16 18:00:01 UTC) #34
Elliot Glaysher
On 2017/05/16 18:00:01, Thomas Anderson wrote: > libgtkui lgtm owners lgtm since tom is happy ...
3 years, 7 months ago (2017-05-16 18:08:34 UTC) #35
Dirk Pranke
lgtm
3 years, 7 months ago (2017-05-16 22:53:32 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/2880223002/100001
3 years, 7 months ago (2017-05-17 06:19:38 UTC) #38
commit-bot: I haz the power
3 years, 7 months ago (2017-05-17 10:49:22 UTC) #41
Message was sent while issue was closed.
Committed patchset #6 (id:100001) as
https://chromium.googlesource.com/chromium/src/+/fbec38011870753cffb3cb2ff98a...

Powered by Google App Engine
This is Rietveld 408576698