Bug 228180

Summary: [Cocoa] ComplexTextController's notion of glyph run initial advance is wrong
Product: WebKit Reporter: Myles C. Maxfield <mmaxfield>
Component: New BugsAssignee: Myles C. Maxfield <mmaxfield>
Status: RESOLVED WONTFIX    
Severity: Normal CC: benjamin, cdumez, cmarcelo, ews-watchlist, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 228905    
Bug Blocks: 206208    
Attachments:
Description Flags
Needs tests
none
Patch
none
WIP
none
Patch that does everything right with the SPI none

Description Myles C. Maxfield 2021-07-22 02:46:31 PDT
[Cocoa] ComplexTextController's notion of glyph run initial advance is wrong
Comment 1 Myles C. Maxfield 2021-07-22 02:47:19 PDT
Created attachment 434001 [details]
Needs tests
Comment 2 Myles C. Maxfield 2021-07-22 11:51:47 PDT
Failing tests on Monterey:
fast/ruby/ruby-expansion-cjk-4.html
fast/text/combining-enclosing-keycap.html
fast/text/initial-advance-in-intermediate-run-complex.html
imported/w3c/web-platform-tests/css/css-text/word-break/word-break-normal-ar-000.html
imported/w3c/web-platform-tests/css/css-ui/text-overflow-022.html
imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining.html
platform/mac/fast/text/international/Geeza-Pro-vertical-metrics-adjustment.html
svg/W3C-I18N/text-anchor-dirLTR-anchorMiddle.svg
svg/W3C-I18N/text-anchor-dirLTR-anchorStart.svg
svg/W3C-I18N/text-anchor-dirNone-anchorEnd.svg
svg/W3C-I18N/text-anchor-dirNone-anchorMiddle.svg
svg/W3C-I18N/text-anchor-dirNone-anchorStart.svg
svg/W3C-I18N/text-anchor-dirRTL-anchorEnd.svg
svg/W3C-I18N/text-anchor-dirRTL-anchorMiddle.svg
svg/W3C-I18N/text-anchor-dirRTL-anchorStart.svg
svg/W3C-I18N/text-anchor-inherited-dirLTR-anchorEnd.svg
svg/W3C-I18N/text-anchor-inherited-dirLTR-anchorMiddle.svg
svg/W3C-I18N/text-anchor-inherited-dirLTR-anchorStart.svg
svg/W3C-I18N/text-anchor-inherited-dirRTL-anchorEnd.svg
svg/W3C-I18N/text-anchor-inherited-dirRTL-anchorMiddle.svg
svg/W3C-I18N/text-anchor-inherited-dirRTL-anchorStart.svg
svg/W3C-I18N/text-anchor-no-markup.svg
svg/W3C-SVG-1.1/text-fonts-01-t.svg
Comment 3 Myles C. Maxfield 2021-07-22 13:37:47 PDT
Created attachment 434031 [details]
Patch
Comment 4 Myles C. Maxfield 2021-07-22 14:20:08 PDT
New failing tests:

fast/text/combining-enclosing-keycap.html
fast/text/initial-advance-in-intermediate-run-complex.html
fast/text/initial-advance-selected-text.html
imported/blink/fast/gradients/gradient-transparency.html
imported/w3c/web-platform-tests/css/css-text/word-break/word-break-normal-ar-000.html
imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining.html
model-element/model-element-source.html
platform/mac/fast/text/international/Geeza-Pro-vertical-metrics-adjustment.html
svg/W3C-I18N/text-anchor-dirLTR-anchorMiddle.svg
svg/W3C-I18N/text-anchor-dirLTR-anchorStart.svg
svg/W3C-I18N/text-anchor-dirNone-anchorEnd.svg
svg/W3C-I18N/text-anchor-dirNone-anchorMiddle.svg
svg/W3C-I18N/text-anchor-dirNone-anchorStart.svg
svg/W3C-I18N/text-anchor-dirRTL-anchorEnd.svg
svg/W3C-I18N/text-anchor-dirRTL-anchorMiddle.svg
svg/W3C-I18N/text-anchor-dirRTL-anchorStart.svg
svg/W3C-I18N/text-anchor-inherited-dirLTR-anchorEnd.svg
svg/W3C-I18N/text-anchor-inherited-dirLTR-anchorMiddle.svg
svg/W3C-I18N/text-anchor-inherited-dirLTR-anchorStart.svg
svg/W3C-I18N/text-anchor-inherited-dirRTL-anchorEnd.svg
svg/W3C-I18N/text-anchor-inherited-dirRTL-anchorMiddle.svg
svg/W3C-I18N/text-anchor-inherited-dirRTL-anchorStart.svg
svg/W3C-I18N/text-anchor-no-markup.svg
svg/dom/altGlyph-dom.xhtml
Comment 5 Myles C. Maxfield 2021-07-25 16:29:49 PDT
Failing tests:

fast/text/combining-enclosing-keycap.html
imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining.html
fast/text/initial-advance-in-intermediate-run-complex.html
fast/text/initial-advance-selected-text.html
imported/w3c/web-platform-tests/css/css-text/word-break/word-break-normal-ar-000.html
Comment 6 Myles C. Maxfield 2021-07-25 16:31:42 PDT
fast/text/combining-enclosing-keycap.html and imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining.html look like rebaselines.
Comment 7 Myles C. Maxfield 2021-07-25 16:40:13 PDT
fast/text/initial-advance-in-intermediate-run-complex.html needs an update (the test is philosophically passing but being reported as failing)

fast/text/initial-advance-in-intermediate-run-complex.html is rdar://80985709.
Comment 8 Myles C. Maxfield 2021-07-25 16:41:25 PDT
Whoops, this meant to say:

fast/text/initial-advance-in-intermediate-run-complex.html needs an update (the test is philosophically passing but being reported as failing)

fast/text/initial-advance-selected-text.html is rdar://80985709.
Comment 9 Radar WebKit Bug Importer 2021-07-29 02:47:18 PDT
<rdar://problem/81261632>
Comment 10 Myles C. Maxfield 2021-08-02 15:22:32 PDT
See also: rdar://80985709
Comment 11 Myles C. Maxfield 2021-08-04 23:39:59 PDT
Created attachment 434966 [details]
WIP
Comment 12 Myles C. Maxfield 2021-08-08 14:28:54 PDT
I think I should split this up into 2 patches:
1. Add each run’s initial advance to the end of the previous run
2. The initial advance doesn’t point to the first glyph’s pain location. This one will need the new SPI.
Comment 13 Myles C. Maxfield 2021-08-09 16:35:51 PDT
Let's not do this. Let's instead just delete the complex text codepath.
Comment 14 Myles C. Maxfield 2021-08-10 23:46:17 PDT
Reopening to attach new patch.
Comment 15 Myles C. Maxfield 2021-08-10 23:46:19 PDT
Created attachment 435326 [details]
Patch that does everything right with the SPI