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

Issue 1806653002: Shape unicode-range: font faces in only one iteration (Closed)

Created:
4 years, 9 months ago by drott
Modified:
4 years, 9 months ago
Reviewers:
eae, behdad
CC:
darktears, apavlov+blink_chromium.org, blink-reviews, blink-reviews-css, blink-reviews-platform-graphics_chromium.org, Rik, chromium-reviews, danakj+watch_chromium.org, dglazkov+blink, dshwang, drott+blinkwatch_chromium.org, krit, f(malita), jbroman, Justin Novosad, kinuko+watch, pdr+graphicswatchlist_chromium.org, rwlbuis, Stephen Chennney
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Shape unicode-range: font faces in only one iteration Previously, we incorrectly split CSS composite faces into multiple faces for shaping, one for each comma-separated entry of unicode-range:. This breaks shaping of ligatures and other features when the characters that ought to be shaped combined were in different unicode-range entries. It is also inefficient for subsetted web fonts that use unicode-range: extensively, for example Google Fonts and Adobe TypeKit. The fix is to transfer the UnicodeRangeSet information from CSSFontFace to HarfBuzzFace and only restrict the glyph lookup function to the whole unicode-range information, instead of restricting it to a single entry and shaping multiple times with the same face. This should have a slight performance benefit as well. BUG=583450 TEST=fast/css/font-face-unicode-range-ligatures.html R=eae, behdad Committed: https://crrev.com/9694005f93116f9c9cc73fa99132fa4475a0cdab Cr-Commit-Position: refs/heads/master@{#381683}

Patch Set 1 #

Patch Set 2 : cleanup, fixing GlyphPageTreeNode tests, test added #

Patch Set 3 : Temporary lifecycle issue fix #

Patch Set 4 : Moving UnicodeRangeSet to RefPtr for passing it between CSSFontFace and HarfBuzzFace #

Patch Set 5 : Rebased on UnicodeRangeSet move #

Patch Set 6 : Update UnicodeRangeSetTests to RefPtr, remove copy test, and fix test expectation #

Patch Set 7 : Update UnicodeRangeSetTests to RefPtrtr, rm copy constructor and test #

Unified diffs Side-by-side diffs Delta from patch set Stats (+329 lines, -272 lines) Patch
A third_party/WebKit/LayoutTests/fast/css/font-face-unicode-range-ligatures.html View 1 chunk +53 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/fast/css/font-face-unicode-range-ligatures-expected.txt View 1 2 3 4 5 1 chunk +5 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/css/CSSFontFace.h View 1 2 3 4 4 chunks +4 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/css/CSSFontFace.cpp View 1 2 3 4 2 chunks +3 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/core/css/CSSFontSelector.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/css/CSSFontSelector.cpp View 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/css/CSSSegmentedFontFace.h View 1 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/css/CSSSegmentedFontFace.cpp View 1 2 3 4 6 chunks +7 lines, -20 lines 0 comments Download
M third_party/WebKit/Source/platform/blink_platform.gypi View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
A third_party/WebKit/Source/platform/fonts/FontDataForRangeSet.h View 1 2 3 4 5 1 chunk +81 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/fonts/FontDataRange.h View 1 1 chunk +0 lines, -76 lines 0 comments Download
M third_party/WebKit/Source/platform/fonts/FontFallbackIterator.h View 1 5 chunks +6 lines, -7 lines 0 comments Download
M third_party/WebKit/Source/platform/fonts/FontFallbackIterator.cpp View 1 7 chunks +23 lines, -23 lines 0 comments Download
M third_party/WebKit/Source/platform/fonts/FontFallbackList.cpp View 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/platform/fonts/FontSelector.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/platform/fonts/GlyphPageTreeNode.cpp View 1 2 3 1 chunk +23 lines, -19 lines 0 comments Download
M third_party/WebKit/Source/platform/fonts/GlyphPageTreeNodeTest.cpp View 1 4 chunks +9 lines, -9 lines 0 comments Download
M third_party/WebKit/Source/platform/fonts/SegmentedFontData.h View 3 chunks +5 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/platform/fonts/SegmentedFontData.cpp View 4 chunks +13 lines, -13 lines 0 comments Download
M third_party/WebKit/Source/platform/fonts/UnicodeRangeSet.h View 1 2 3 4 5 6 3 chunks +11 lines, -9 lines 0 comments Download
M third_party/WebKit/Source/platform/fonts/UnicodeRangeSet.cpp View 1 2 3 4 2 chunks +13 lines, -9 lines 0 comments Download
M third_party/WebKit/Source/platform/fonts/UnicodeRangeSetTest.cpp View 1 2 3 4 5 3 chunks +43 lines, -43 lines 0 comments Download
M third_party/WebKit/Source/platform/fonts/shaping/HarfBuzzFace.h View 1 2 3 2 chunks +2 lines, -1 line 0 comments Download
M third_party/WebKit/Source/platform/fonts/shaping/HarfBuzzFace.cpp View 1 2 3 5 chunks +9 lines, -9 lines 0 comments Download
M third_party/WebKit/Source/platform/fonts/shaping/HarfBuzzShaper.h View 1 2 3 2 chunks +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/platform/fonts/shaping/HarfBuzzShaper.cpp View 1 2 3 5 chunks +8 lines, -11 lines 0 comments Download
M third_party/WebKit/Source/platform/testing/FontTestHelpers.cpp View 1 1 chunk +1 line, -1 line 0 comments Download

Depends on Patchset:

Messages

Total messages: 50 (24 generated)
drott
cleanup, fixing GlyphPageTreeNode tests, test added
4 years, 9 months ago (2016-03-16 08:41:57 UTC) #1
drott
Temporary lifecycle issue fix
4 years, 9 months ago (2016-03-16 10:47:24 UTC) #2
drott
Moving UnicodeRangeSet to RefPtr for passing it between CSSFontFace and HarfBuzzFace
4 years, 9 months ago (2016-03-16 19:00:50 UTC) #3
drott
Depends on https://codereview.chromium.org/1808853002, but this was green before and is now ready for review.
4 years, 9 months ago (2016-03-16 20:30:06 UTC) #7
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1806653002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1806653002/60001
4 years, 9 months ago (2016-03-16 21:53:49 UTC) #9
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: linux_chromium_compile_dbg_32_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_compile_dbg_32_ng/builds/173568) ios_rel_device_ninja on ...
4 years, 9 months ago (2016-03-16 21:56:27 UTC) #11
eae
LGTM
4 years, 9 months ago (2016-03-17 00:12:37 UTC) #12
behdad
LGTM. Thanks!
4 years, 9 months ago (2016-03-17 00:57:22 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1806653002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1806653002/80001
4 years, 9 months ago (2016-03-17 06:32:07 UTC) #16
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/197828)
4 years, 9 months ago (2016-03-17 07:33:47 UTC) #18
drott
Update UnicodeRangeSetTests to RefPtr, remove copy test, and fix test expectation
4 years, 9 months ago (2016-03-17 08:53:17 UTC) #19
drott
Update UnicodeRangeSetTests to RefPtr, remove copy test, and fix test expectation
4 years, 9 months ago (2016-03-17 08:55:11 UTC) #21
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1806653002/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1806653002/120001
4 years, 9 months ago (2016-03-17 08:55:41 UTC) #24
commit-bot: I haz the power
CLs for remote refs other than refs/pending/heads/master must contain NOTRY=true and NOPRESUBMIT=true in order for ...
4 years, 9 months ago (2016-03-17 08:55:44 UTC) #26
drott
Update UnicodeRangeSetTests to RefPtr, remove copy test, and fix test expectation
4 years, 9 months ago (2016-03-17 08:58:00 UTC) #28
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1806653002/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1806653002/140001
4 years, 9 months ago (2016-03-17 08:58:21 UTC) #31
commit-bot: I haz the power
CLs for remote refs other than refs/pending/heads/master must contain NOTRY=true and NOPRESUBMIT=true in order for ...
4 years, 9 months ago (2016-03-17 08:58:25 UTC) #33
drott
Update UnicodeRangeSetTests to RefPtrtr, rm copy constructor and test
4 years, 9 months ago (2016-03-17 09:07:39 UTC) #35
drott
eae@, I plan to land the latest test fix TBR, perhaps you can take a ...
4 years, 9 months ago (2016-03-17 09:08:13 UTC) #36
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1806653002/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1806653002/160001
4 years, 9 months ago (2016-03-17 09:08:45 UTC) #39
commit-bot: I haz the power
CLs for remote refs other than refs/pending/heads/master must contain NOTRY=true and NOPRESUBMIT=true in order for ...
4 years, 9 months ago (2016-03-17 09:08:49 UTC) #41
drott
Update UnicodeRangeSetTests to RefPtrtr, rm copy constructor and test
4 years, 9 months ago (2016-03-17 09:10:47 UTC) #43
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1806653002/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1806653002/180001
4 years, 9 months ago (2016-03-17 09:11:16 UTC) #46
commit-bot: I haz the power
Committed patchset #7 (id:180001)
4 years, 9 months ago (2016-03-17 10:17:08 UTC) #47
commit-bot: I haz the power
Patchset 7 (id:??) landed as https://crrev.com/9694005f93116f9c9cc73fa99132fa4475a0cdab Cr-Commit-Position: refs/heads/master@{#381683}
4 years, 9 months ago (2016-03-17 10:18:09 UTC) #49
fgorski
4 years, 9 months ago (2016-03-17 17:16:48 UTC) #50
Message was sent while issue was closed.
A revert of this CL (patchset #7 id:180001) has been created in
https://codereview.chromium.org/1806363002/ by fgorski@chromium.org.

The reason for reverting is: Reverting on a suspicion that this is a root cause
to the failures of webkit_unit_tests on Webkit Android (Nexus4) bots, e.g.
https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Android%20%28N....

Powered by Google App Engine
This is Rietveld 408576698