|
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}
|
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:
Total messages: 50 (24 generated)
|