WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
Bug 186010
REGRESSION (Mountain Lion-Mavericks): Incorrect font used to render decomposed grapheme cluster in some cases
https://bugs.webkit.org/show_bug.cgi?id=186010
Summary
REGRESSION (Mountain Lion-Mavericks): Incorrect font used to render decompose...
mitz
Reported
2018-05-25 22:52:38 PDT
In the following test case: <div style="font-family: verdana, times;"> î and i̿ </div> the first grapheme cluster (lowercase I with combining circumflex) is rendered in Times, but it should be rendered in Verdana. This works correctly in OS X Mountain Lion 10.8.5, after <
https://trac.webkit.org/r95391
>, the fix for
bug 68287
, but got broken some time between then and
r232220
. The problem is that Font::canRenderCombiningCharacterSequence() started returning false for Verdana and the i+circumflex sequence.
Attachments
Mountain Lion
(52.11 KB, image/png)
2018-05-26 13:44 PDT
,
mitz
no flags
Details
Mavericks
(51.85 KB, image/png)
2018-05-26 13:45 PDT
,
mitz
no flags
Details
macOS Browsers
(177.71 KB, image/png)
2018-05-26 21:53 PDT
,
Myles C. Maxfield
no flags
Details
Edge
(47.07 KB, image/png)
2018-05-26 22:03 PDT
,
Myles C. Maxfield
no flags
Details
Edge
(51.39 KB, image/png)
2018-05-27 22:51 PDT
,
Myles C. Maxfield
no flags
Details
WIP
(23.32 KB, patch)
2018-05-28 21:19 PDT
,
Myles C. Maxfield
ews-watchlist
: commit-queue-
Details
Formatted Diff
Diff
Archive of layout-test-results from ews101 for mac-sierra
(3.25 MB, application/zip)
2018-05-28 22:16 PDT
,
EWS Watchlist
no flags
Details
Archive of layout-test-results from ews104 for mac-sierra-wk2
(3.53 MB, application/zip)
2018-05-28 22:42 PDT
,
EWS Watchlist
no flags
Details
Archive of layout-test-results from ews123 for ios-simulator-wk2
(3.16 MB, application/zip)
2018-05-28 23:16 PDT
,
EWS Watchlist
no flags
Details
Archive of layout-test-results from ews117 for mac-sierra
(3.84 MB, application/zip)
2018-05-28 23:22 PDT
,
EWS Watchlist
no flags
Details
Archive of layout-test-results from ews116 for mac-sierra
(3.83 MB, application/zip)
2018-05-29 01:12 PDT
,
EWS Watchlist
no flags
Details
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
mitz
Comment 1
2018-05-25 23:17:21 PDT
This got broken as soon as OS X 10.9 Mavericks.
mitz
Comment 2
2018-05-25 23:21:57 PDT
If this is a WebCore regression, this puts it between the tags Safari-536.30.2 and Safari-537.70.
mitz
Comment 3
2018-05-25 23:35:19 PDT
This doesn’t seem to be a WebKit regression: the bug happens in Safari 7.0 on Mavericks (537.71) but doesn’t happen in Safari 6.1.1 on Mountain Lion (537.73.11). Unless there’s some platform-specific #ifs in the code (which there don’t seem to be), the regression is probably due to a change in Core Text’s behavior between Mountain Lion and Mavericks.
mitz
Comment 4
2018-05-25 23:50:14 PDT
Results of CTLineCreateWithUniCharProvider: Mountain Lion: CTLine: run count = 1, string range = (0, 2), width = 12.8975, A/D/L = 47.2524/9.86816/0, glyph count = 1 { CTRun: string range = (0, 2), string = "i\u0302", attributes = <CFBasicHash 0x7fcdca035400 [0x7fff77f34110]>{type = mutable dict, count = 3, entries => 0 : <CFString 0x7fff76938810 [0x7fff77f34110]>{contents = "NSKern"} = <CFNumber 0x7fcdca0531b0 [0x7fff77f34110]>{value = +0.0, type = kCFNumberFloat32Type} 1 : <CFString 0x7fff76938830 [0x7fff77f34110]>{contents = "NSLigature"} = <CFNumber 0x87 [0x7fff77f34110]>{value = +0, type = kCFNumberSInt32Type} 2 : <CFString 0x7fff769387f0 [0x7fff77f34110]>{contents = "NSFont"} = CTFont <name: Verdana, size: 47.000000, matrix: 0x0> CTFontDescriptor <attributes: <CFBasicHash 0x7fcdca0257a0 [0x7fff77f34110]>{type = mutable dict, count = 1, entries => 2 : <CFString 0x7fff76939ef0 [0x7fff77f34110]>{contents = "NSFontNameAttribute"} = <CFString 0x7fff77f182a0 [0x7fff77f34110]>{contents = "Verdana"} } > } } Mavericks: <CTLine: 0x7fd1b3c6f0d0>{run count = 1, string range = (0, 2), width = 56.2256, A/D/L = 40.8413/12.25/0.430664, glyph count = 1, runs = ( <CTRun: 0x7fd1b3c5bfd0>{string range = (0, 2), string = "i\u0302", attributes = <CFBasicHash 0x7fd1b3d54830 [0x7fff7c97aeb0]>{type = mutable dict, count = 3, entries => 0 : <CFString 0x7fff7b915b30 [0x7fff7c97aeb0]>{contents = "NSKern"} = <CFNumber 0x7fd1b3c46160 [0x7fff7c97aeb0]>{value = +0.0, type = kCFNumberFloat32Type} 1 : <CFString 0x7fff7b915b50 [0x7fff7c97aeb0]>{contents = "NSLigature"} = <CFNumber 0x27 [0x7fff7c97aeb0]>{value = +0, type = kCFNumberSInt32Type} 2 : <CFString 0x7fff7b915b10 [0x7fff7c97aeb0]>{contents = "NSFont"} = <CTFont: 0x7fd1b3c61a20>{name = LastResort, size = 49.000000, matrix = 0x0, descriptor = <CTFontDescriptor: 0x7fd1b3d36330>{attributes = <CFBasicHash 0x7fd1b3d37520 [0x7fff7c97aeb0]>{type = mutable dict, count = 1, entries => 2 : <CFString 0x7fff7b917390 [0x7fff7c97aeb0]>{contents = "NSFontNameAttribute"} = <CFString 0x7fff7bd5c150 [0x7fff7c97aeb0]>{contents = "LastResort"} }
>}}
} } ) }
mitz
Comment 5
2018-05-25 23:51:10 PDT
(Ignore the sizes being 47 and 49 above, I used versions of the test case that had those sizes instead of the default).
Myles C. Maxfield
Comment 6
2018-05-26 11:27:28 PDT
I believe the right way to solve this is to normalize the string.
Myles C. Maxfield
Comment 7
2018-05-26 11:54:20 PDT
(In reply to Myles C. Maxfield from
comment #6
)
> I believe the right way to solve this is to normalize the string.
In the example in
https://bugs.webkit.org/show_bug.cgi?id=186010#c0
Verdana doesn't support U+0302, but it does support U+00EE
mitz
Comment 8
2018-05-26 12:09:25 PDT
(In reply to Myles C. Maxfield from
comment #6
)
> I believe the right way to solve this is to normalize the string.
Is that how Core Text arrives at the right result?
mitz
Comment 9
2018-05-26 13:44:51 PDT
Created
attachment 341407
[details]
Mountain Lion
mitz
Comment 10
2018-05-26 13:45:10 PDT
Created
attachment 341408
[details]
Mavericks
mitz
Comment 11
2018-05-26 13:49:24 PDT
Attached screenshots showing how even the test case from
bug 68287
regressed between Mountain Lion and Mavericks. In Mountain Lion, Core Text had the ability to tell us that we could use Verdana for the combining character sequence i+circumflex, even though Verdana didn’t have a glyph for the combining circumflex alone. The fix for
bug 68287
was to take advantage of this ability, which was already benefiting the Cocoa text system. In Mavericks, that Core Text ability was gone. It regressed WebKit, but also the Cocoa text system, as can be seen with TextEdit.
mitz
Comment 12
2018-05-26 13:49:56 PDT
(In reply to mitz from
comment #8
)
> Is that how Core Text arrives at the right result?
Used to arrive :(
Myles C. Maxfield
Comment 13
2018-05-26 21:50:00 PDT
See also: <
rdar://problem/40583639
>
Myles C. Maxfield
Comment 14
2018-05-26 21:53:51 PDT
Created
attachment 341418
[details]
macOS Browsers
Myles C. Maxfield
Comment 15
2018-05-26 22:03:26 PDT
Created
attachment 341419
[details]
Edge
mitz
Comment 16
2018-05-26 22:04:50 PDT
(In reply to Myles C. Maxfield from
comment #15
)
> Created
attachment 341419
[details]
> Edge
😑 Is it the same Verdana though? It’s possible that the version that ships with Windows these days does have a standalone glyph for combining circumflex.
Myles C. Maxfield
Comment 17
2018-05-27 22:47:05 PDT
(In reply to mitz from
comment #16
)
> (In reply to Myles C. Maxfield from
comment #15
) > > Created
attachment 341419
[details]
> > Edge > > 😑 > > Is it the same Verdana though?
Nope!
> It’s possible that the version that ships > with Windows these days does have a standalone glyph for combining > circumflex.
You are correct - Windows's Verdana has a glyph for U+0302. I'll upload a new screenshot.
Myles C. Maxfield
Comment 18
2018-05-27 22:51:07 PDT
Created
attachment 341447
[details]
Edge
Myles C. Maxfield
Comment 19
2018-05-28 21:19:11 PDT
Created
attachment 341469
[details]
WIP
EWS Watchlist
Comment 20
2018-05-28 21:20:13 PDT
Attachment 341469
[details]
did not pass style-queue: ERROR: Source/WebCore/ChangeLog:8: You should remove the 'No new tests' and either add and list tests, or explain why no new tests were possible. [changelog/nonewtests] [5] Total errors found: 1 in 10 files If any of these errors are false positives, please file a bug against check-webkit-style.
EWS Watchlist
Comment 21
2018-05-28 22:16:18 PDT
Comment on
attachment 341469
[details]
WIP
Attachment 341469
[details]
did not pass mac-ews (mac): Output:
http://webkit-queues.webkit.org/results/7841629
New failing tests: imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html imported/w3c/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html imported/w3c/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html fast/text/midword-break-before-surrogate-pair-2.html imported/w3c/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html fast/regex/dom/unicodeCaseInsensitive.html fast/url/idna2008.html imported/w3c/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-007.html imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html imported/blink/fast/text/international/complex-text-leading-space-wrapping.html
EWS Watchlist
Comment 22
2018-05-28 22:16:20 PDT
Created
attachment 341470
[details]
Archive of layout-test-results from ews101 for mac-sierra The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: ews101 Port: mac-sierra Platform: Mac OS X 10.12.6
EWS Watchlist
Comment 23
2018-05-28 22:42:13 PDT
Comment on
attachment 341469
[details]
WIP
Attachment 341469
[details]
did not pass mac-wk2-ews (mac-wk2): Output:
http://webkit-queues.webkit.org/results/7841733
New failing tests: imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html imported/w3c/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html imported/w3c/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html fast/text/midword-break-before-surrogate-pair-2.html imported/w3c/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html fast/regex/dom/unicodeCaseInsensitive.html fast/url/idna2008.html imported/w3c/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-007.html imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html imported/blink/fast/text/international/complex-text-leading-space-wrapping.html
EWS Watchlist
Comment 24
2018-05-28 22:42:15 PDT
Created
attachment 341472
[details]
Archive of layout-test-results from ews104 for mac-sierra-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: ews104 Port: mac-sierra-wk2 Platform: Mac OS X 10.12.6
EWS Watchlist
Comment 25
2018-05-28 23:16:43 PDT
Comment on
attachment 341469
[details]
WIP
Attachment 341469
[details]
did not pass ios-sim-ews (ios-simulator-wk2): Output:
http://webkit-queues.webkit.org/results/7841777
New failing tests: imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html imported/w3c/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html imported/w3c/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html imported/w3c/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html imported/w3c/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html fast/regex/dom/unicodeCaseInsensitive.html fast/url/idna2008.html imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-007.html imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html imported/blink/fast/text/international/complex-text-leading-space-wrapping.html
EWS Watchlist
Comment 26
2018-05-28 23:16:45 PDT
Created
attachment 341476
[details]
Archive of layout-test-results from ews123 for ios-simulator-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews123 Port: ios-simulator-wk2 Platform: Mac OS X 10.13.4
EWS Watchlist
Comment 27
2018-05-28 23:22:25 PDT
Comment on
attachment 341469
[details]
WIP
Attachment 341469
[details]
did not pass mac-debug-ews (mac): Output:
http://webkit-queues.webkit.org/results/7841795
New failing tests: imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html imported/w3c/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html imported/w3c/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html fast/text/midword-break-before-surrogate-pair-2.html imported/w3c/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html fast/regex/dom/unicodeCaseInsensitive.html fast/url/idna2008.html imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html imported/blink/fast/text/international/complex-text-leading-space-wrapping.html imported/w3c/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-007.html
EWS Watchlist
Comment 28
2018-05-28 23:22:27 PDT
Created
attachment 341477
[details]
Archive of layout-test-results from ews117 for mac-sierra The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews117 Port: mac-sierra Platform: Mac OS X 10.12.6
EWS Watchlist
Comment 29
2018-05-29 01:12:10 PDT
Comment on
attachment 341469
[details]
WIP
Attachment 341469
[details]
did not pass mac-debug-ews (mac): Output:
http://webkit-queues.webkit.org/results/7842513
New failing tests: imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html imported/w3c/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html imported/w3c/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html fast/text/midword-break-before-surrogate-pair-2.html imported/w3c/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html fast/regex/dom/unicodeCaseInsensitive.html fast/url/idna2008.html imported/w3c/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-007.html imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html imported/blink/fast/text/international/complex-text-leading-space-wrapping.html
EWS Watchlist
Comment 30
2018-05-29 01:12:11 PDT
Created
attachment 341481
[details]
Archive of layout-test-results from ews116 for mac-sierra The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews116 Port: mac-sierra Platform: Mac OS X 10.12.6
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug