Changeset 195402 in webkit
- Timestamp:
- Jan 20, 2016, 11:57:07 PM (11 years ago)
- Location:
- branches/safari-601-branch
- Files:
-
- 7 edited
- 2 copied
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/fast/text/arabic-glyph-cache-fill-combine-expected.html (copied) (copied from trunk/LayoutTests/fast/text/arabic-glyph-cache-fill-combine-expected.html )
-
LayoutTests/fast/text/arabic-glyph-cache-fill-combine.html (copied) (copied from trunk/LayoutTests/fast/text/arabic-glyph-cache-fill-combine.html )
-
LayoutTests/platform/efl/TestExpectations (modified) (1 diff)
-
LayoutTests/platform/gtk/TestExpectations (modified) (1 diff)
-
LayoutTests/platform/mac/TestExpectations (modified) (1 diff)
-
LayoutTests/platform/win/TestExpectations (modified) (1 diff)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/platform/graphics/mac/GlyphPageMac.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/safari-601-branch/LayoutTests/ChangeLog
r195378 r195402 1 2016-01-20 Babak Shafiei <bshafiei@apple.com> 2 3 Merge r188263. 4 5 2015-08-11 Myles C. Maxfield <mmaxfield@apple.com> 6 7 [iOS] Arabic letter Yeh is drawn in LastResort 8 https://bugs.webkit.org/show_bug.cgi?id=147862 9 <rdar://problem/22202935> 10 11 Reviewed by Darin Adler. 12 13 * fast/text/arabic-glyph-cache-fill-combine-expected.html: Added. 14 * fast/text/arabic-glyph-cache-fill-combine.html: Added. 15 * platform/mac/TestExpectations: Mark test as iOS-specific 16 * platform/gtk/TestExpectations: Mark test as iOS-specific 17 * platform/efl/TestExpectations: Mark test as iOS-specific 18 * platform/efl/TestExpectations: Mark test as iOS-specific 19 1 20 2016-01-20 Matthew Hanson <matthew_hanson@apple.com> 2 21 -
branches/safari-601-branch/LayoutTests/platform/efl/TestExpectations
r195377 r195402 2302 2302 # This test uses an MPEG-4 video 2303 2303 media/video-seek-to-current-time.html [ Skip ] 2304 2305 # This test relies on iOS-specific font fallback. 2306 fast/text/arabic-glyph-cache-fill-combine.html [ ImageOnlyFailure ] -
branches/safari-601-branch/LayoutTests/platform/gtk/TestExpectations
r195377 r195402 2404 2404 # This test uses an MPEG-4 video 2405 2405 media/video-seek-to-current-time.html [ Skip ] 2406 2407 # This test relies on iOS-specific font fallback. 2408 fast/text/arabic-glyph-cache-fill-combine.html [ ImageOnlyFailure ] -
branches/safari-601-branch/LayoutTests/platform/mac/TestExpectations
r195378 r195402 1377 1377 [ Yosemite ElCapitan ] css3/font-variant-small-caps-synthesis-coverage.html [ ImageOnlyFailure ] 1378 1378 [ Yosemite ElCapitan ] css3/font-variant-petite-caps-synthesis-coverage.html [ ImageOnlyFailure ] 1379 1380 # This test relies on iOS-specific font fallback. 1381 [ Mavericks Yosemite ElCapitan ] fast/text/arabic-glyph-cache-fill-combine.html [ ImageOnlyFailure ] -
branches/safari-601-branch/LayoutTests/platform/win/TestExpectations
r195377 r195402 3141 3141 # This test uses an MPEG-4 video 3142 3142 media/video-seek-to-current-time.html [ Skip ] 3143 3144 # This test relies on iOS-specific font fallback. 3145 fast/text/arabic-glyph-cache-fill-combine.html [ ImageOnlyFailure ] -
branches/safari-601-branch/Source/WebCore/ChangeLog
r195384 r195402 1 2016-01-20 Babak Shafiei <bshafiei@apple.com> 2 3 Merge r188263. 4 5 2015-08-11 Myles C. Maxfield <mmaxfield@apple.com> 6 7 [iOS] Arabic letter Yeh is drawn in LastResort 8 https://bugs.webkit.org/show_bug.cgi?id=147862 9 <rdar://problem/22202935> 10 11 Reviewed by Darin Adler. 12 13 In order to perform font fallback, we must know which fonts support which characters. We 14 perform this check by asking each font to map a sequence of codepoints to glyphs, and 15 any glyphs which end up with a 0 value are unsupported by the font. 16 17 One of the mechanisms that we use to do this is to combine the code points into a string, 18 and tell Core Text to lay out the string. However, this is fundamentally a different 19 operation than the one we are trying to perform. Strings combine adjacent codepoints into 20 grapheme clusters, and CoreText operates on these. However, we are trying to gain 21 information regarding codepoints, not grapheme clusters. 22 23 Instead of taking this string-based approach, we should try harder to use Core Text 24 functions which operate on ordered collections of characters, rather than strings. In 25 particular, CTFontGetGlyphsForCharacters() and CTFontGetVerticalGlyphsForCharacters() 26 have the behavior we want where any unmapped characters end up with a 0 value glyph. 27 28 Previously, we were only using the result of those functions if they were successfully 29 able to map their entire input. However, given the fact that we can degrade gracefully 30 in the case of a partial mapping, we shouldn't need to bail completely to the 31 string-based approach should a partial mapping occur. 32 33 At some point we should delete the string-based approach entirely. However, this path 34 is still explicitly used for composite fonts. Fixing that use case is out of scope 35 for this patch. 36 37 Test: fast/text/arabic-glyph-cache-fill-combine.html 38 39 * platform/graphics/mac/GlyphPageMac.cpp: 40 (WebCore::GlyphPage::fill): 41 1 42 2016-01-20 Timothy Hatcher <timothy@apple.com> 2 43 -
branches/safari-601-branch/Source/WebCore/platform/graphics/mac/GlyphPageMac.cpp
r193666 r195402 88 88 } 89 89 } 90 } else if (!fontData->platformData().isCompositeFontReference() && ((fontData->platformData().widthVariant() == RegularWidth) 91 ? CTFontGetVerticalGlyphsForCharacters(fontData->platformData().ctFont(), buffer, glyphs.data(), bufferLength) 92 : CTFontGetGlyphsForCharacters(fontData->platformData().ctFont(), buffer, glyphs.data(), bufferLength))) { 90 } else if (!fontData->platformData().isCompositeFontReference()) { 91 if (fontData->platformData().widthVariant() == RegularWidth) 92 CTFontGetVerticalGlyphsForCharacters(fontData->platformData().ctFont(), buffer, glyphs.data(), bufferLength); 93 else 94 CTFontGetGlyphsForCharacters(fontData->platformData().ctFont(), buffer, glyphs.data(), bufferLength); 93 95 // When buffer consists of surrogate pairs, CTFontGetVerticalGlyphsForCharacters and CTFontGetGlyphsForCharacters 94 96 // place the glyphs at indices corresponding to the first character of each pair. … … 104 106 } 105 107 } else { 108 // FIXME: webkit.org/b/147859 This code is fundamentally broken. A string is not the same as an ordered sequence of codepoints. In particular, strings 109 // combine adjacent codepoints into grapheme clusters. We should delete this entire else {} block. 110 106 111 // We ask CoreText for possible vertical variant glyphs 107 112 RetainPtr<CFStringRef> string = adoptCF(CFStringCreateWithCharactersNoCopy(kCFAllocatorDefault, buffer, bufferLength, kCFAllocatorNull));
Note:
See TracChangeset
for help on using the changeset viewer.