Attachment 349240[details] did not pass style-queue:
ERROR: Source/WebCore/ChangeLog:9: You should remove the 'No new tests' and either add and list tests, or explain why no new tests were possible. [changelog/nonewtests] [5]
ERROR: Source/WebCore/platform/graphics/WidthIterator.cpp:98: Should have a space between // and comment [whitespace/comments] [4]
Total errors found: 2 in 2 files
If any of these errors are false positives, please file a bug against check-webkit-style.
There are two problems with Osaka:
1) Osaka changes the advance of every character significantly during shaping. We will slice and dice the text multiple ways during layout, and if we encounter a chunk of text of length 1, we don't run shaping. This is because Japanese text uses the simple code path, and, because shaping was intended only for kerning/ligatures, which don't need to apply kerning/ligatures when there is only a single character being measured. This is a problem because we often measure text "word" by "word" where "word" means "the text between adjacent line breaking opportunities." For Japanese, this usually happens every character, but sometimes it doesn't because of things like punctuation (U+3010).
The uploaded patch "fixes" this by simply running shaping even on 1-length TextRuns, which surely is a massive performance regression.
2) Synthetic bold affects layout in the complex text path, but not the simple one. In the complex text path, the width of every character gets inflated by the size of the synthetic bold offset. This is a problem because selecting text with the mouse causes us to use the complex text path, but the regular rendering causes us to use the simple text rendering (for Japanese) so they have to agree.
The uploaded patch fixes this by applying the offset even in the simple text codepath. This needs to be applied after shaping but before the charactersTreatedAsSpace stuff happens (since spaces don't get the inflated advance since they don't draw anything).
Created attachment 349246[details]
Archive of layout-test-results from ews103 for mac-sierra
The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews103 Port: mac-sierra Platform: Mac OS X 10.12.6
Created attachment 349248[details]
Archive of layout-test-results from ews106 for mac-sierra-wk2
The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews106 Port: mac-sierra-wk2 Platform: Mac OS X 10.12.6
Created attachment 349249[details]
Archive of layout-test-results from ews112 for mac-sierra
The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews112 Port: mac-sierra Platform: Mac OS X 10.12.6
Created attachment 349251[details]
Archive of layout-test-results from ews126 for ios-simulator-wk2
The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews126 Port: ios-simulator-wk2 Platform: Mac OS X 10.13.4
Oh, I see. I wasn't quite right about Osaka & synthetic bold.
For our simple text codepath, we add the synthetic bold offset to each glyph's advance before shaping. Then, we run shaping on this previously-inflated glyphs and assume that the inflation will survive the transformation. However, Osaka disregards the input advances and just overwrites them totally. (We don't then re-apply the synthetic advance because we assume it survived.)
In the complex path, we create CTRuns from the original font, so we have to apply synthetic bold after shaping. Therefore, the simple & complex path disagree about the advances of Osaka.
The best solution is to apply the synthetic offset after shaping in both paths.
Created attachment 349645[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
Created attachment 349646[details]
Archive of layout-test-results from ews204 for win-future
The attached test failures were seen while running run-webkit-tests on the win-ews.
Bot: ews204 Port: win-future Platform: CYGWIN_NT-6.1-2.10.0-0.325-5-3-x86_64-64bit
Created attachment 349649[details]
Archive of layout-test-results from ews125 for ios-simulator-wk2
The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews125 Port: ios-simulator-wk2 Platform: Mac OS X 10.13.4
Created attachment 349657[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
Created attachment 349665[details]
Archive of layout-test-results from ews103 for mac-sierra
The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews103 Port: mac-sierra Platform: Mac OS X 10.12.6
Created attachment 349692[details]
Archive of layout-test-results from ews126 for ios-simulator-wk2
The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews126 Port: ios-simulator-wk2 Platform: Mac OS X 10.13.4
Created attachment 349694[details]
Archive of layout-test-results from ews200 for win-future
The attached test failures were seen while running run-webkit-tests on the win-ews.
Bot: ews200 Port: win-future Platform: CYGWIN_NT-6.1-2.9.0-0.318-5-3-x86_64-64bit
Created attachment 349703[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
Created attachment 349705[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
Created attachment 349710[details]
Archive of layout-test-results from ews103 for mac-sierra
The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews103 Port: mac-sierra Platform: Mac OS X 10.12.6
(In reply to Build Bot from comment #40)
> Comment on attachment 349681[details]
> Patch
>
> Attachment 349681[details] did not pass mac-ews (mac):
> Output: https://webkit-queues.webkit.org/results/9206904
>
> New failing tests:
> fast/css/font-face-weight-matching.html
> fast/text/fallback-traits-fixup.html
> fonts/monospace.html
> fonts/cursive.html
> fast/css/font-face-synthetic-bold-italic.html
> fast/text/simple-synthetic-bold.html
> fast/text/complex-synthetic-bold-space-width.html
> fonts/fantasy.html
> fast/text/atsui-multiple-renderers.html
> fast/css/font-face-multiple-faces.html
Unfortunately, all those tests pass on my High Sierra machine...
The Osaka test hangs because Osaka is a mobileasset font, and the download prompt blocks for user input.
The prompt is coming from autoActivateFont(). IIRC the way we got around this before was to add kCTFontEnabledAttribute:kCFBooleanTrue to the attribute dictionary.
2018-09-07 21:58 PDT, Myles C. Maxfield
2018-09-07 22:46 PDT, EWS Watchlist
2018-09-07 22:53 PDT, EWS Watchlist
2018-09-07 23:02 PDT, EWS Watchlist
2018-09-07 23:39 PDT, EWS Watchlist
2018-09-12 17:11 PDT, Myles C. Maxfield
2018-09-12 17:12 PDT, Myles C. Maxfield
2018-09-12 22:47 PDT, Myles C. Maxfield
2018-09-12 23:39 PDT, Myles C. Maxfield
2018-09-12 23:57 PDT, Myles C. Maxfield
2018-09-13 01:48 PDT, EWS Watchlist
2018-09-13 01:48 PDT, EWS Watchlist
2018-09-13 03:06 PDT, EWS Watchlist
2018-09-13 05:37 PDT, EWS Watchlist
2018-09-13 07:29 PDT, EWS Watchlist
2018-09-13 10:45 PDT, Myles C. Maxfield
2018-09-13 13:18 PDT, EWS Watchlist
2018-09-13 13:36 PDT, EWS Watchlist
2018-09-13 14:09 PDT, EWS Watchlist
2018-09-13 14:55 PDT, EWS Watchlist
2018-09-13 15:55 PDT, EWS Watchlist
2018-09-13 21:03 PDT, Myles C. Maxfield
2018-09-13 21:42 PDT, Myles C. Maxfield
2018-09-13 22:12 PDT, Myles C. Maxfield
2018-09-13 23:24 PDT, Myles C. Maxfield
2018-09-13 23:32 PDT, Myles C. Maxfield
2021-08-13 16:20 PDT, Myles C. Maxfield
2021-08-13 16:27 PDT, Myles C. Maxfield
2021-08-13 17:06 PDT, Myles C. Maxfield
2021-08-21 22:51 PDT, Myles C. Maxfield
2021-08-22 14:10 PDT, Myles C. Maxfield
2021-08-22 15:25 PDT, Myles C. Maxfield
2021-08-22 15:48 PDT, Myles C. Maxfield
2021-08-22 15:58 PDT, Myles C. Maxfield
2021-08-22 16:53 PDT, Myles C. Maxfield
2021-08-22 22:58 PDT, Myles C. Maxfield
2021-08-22 23:17 PDT, Myles C. Maxfield
2021-08-23 11:53 PDT, Myles C. Maxfield
ews-feeder: commit-queue-
2021-08-26 20:59 PDT, Myles C. Maxfield