Bug 185976

Summary: Improve the performance of determining character boundaries in ComplexTextController
Product: WebKit Reporter: Myles C. Maxfield <mmaxfield>
Component: TextAssignee: Myles C. Maxfield <mmaxfield>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: benjamin, cdumez, cmarcelo, dbates, ews-watchlist, mitz, mmaxfield, rniwa, simon.fraser, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 206208    
Attachments:
Description Flags
Patch
none
Patch
none
Archive of layout-test-results from ews103 for mac-sierra
none
Archive of layout-test-results from ews106 for mac-sierra-wk2
none
Archive of layout-test-results from ews117 for mac-sierra
none
WIP
none
Archive of layout-test-results from ews101 for mac-sierra
none
Archive of layout-test-results from ews125 for ios-simulator-wk2
none
Archive of layout-test-results from ews114 for mac-sierra
none
Archive of layout-test-results from ews104 for mac-sierra-wk2
none
WIP
none
Archive of layout-test-results from ews100 for mac-sierra
none
Archive of layout-test-results from ews121 for ios-simulator-wk2
none
Archive of layout-test-results from ews115 for mac-sierra
none
Archive of layout-test-results from ews106 for mac-sierra-wk2
none
WIP
none
Archive of layout-test-results from ews101 for mac-sierra
none
Archive of layout-test-results from ews104 for mac-sierra-wk2
none
Archive of layout-test-results from ews115 for mac-sierra
none
Patch mitz: review-

Description Myles C. Maxfield 2018-05-25 00:46:18 PDT
Improve the performance of determining character boundaries in ComplexTextController
Comment 1 Myles C. Maxfield 2018-05-25 00:52:09 PDT
Created attachment 341258 [details]
Patch
Comment 2 Myles C. Maxfield 2018-05-25 00:53:30 PDT
Created attachment 341259 [details]
Patch
Comment 3 Myles C. Maxfield 2018-05-25 01:32:32 PDT
16x faster, not 4x faster.
Comment 4 EWS Watchlist 2018-05-25 02:01:00 PDT
Comment on attachment 341259 [details]
Patch

Attachment 341259 [details] did not pass mac-ews (mac):
Output: http://webkit-queues.webkit.org/results/7797104

New failing tests:
fast/text/arabic-zwj-and-zwnj.html
Comment 5 EWS Watchlist 2018-05-25 02:01:02 PDT
Created attachment 341261 [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
Comment 6 EWS Watchlist 2018-05-25 02:07:52 PDT
Comment on attachment 341259 [details]
Patch

Attachment 341259 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/7797112

New failing tests:
fast/text/arabic-zwj-and-zwnj.html
Comment 7 EWS Watchlist 2018-05-25 02:07:53 PDT
Created attachment 341263 [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
Comment 8 EWS Watchlist 2018-05-25 02:36:44 PDT
Comment on attachment 341259 [details]
Patch

Attachment 341259 [details] did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/7797137

New failing tests:
fast/text/arabic-zwj-and-zwnj.html
Comment 9 EWS Watchlist 2018-05-25 02:36:45 PDT
Created attachment 341265 [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
Comment 10 Myles C. Maxfield 2018-05-25 13:49:51 PDT
The test is failing because createAndFillGlyphPage() maps zeroWidthNonJoiner (which GeezaPro supports) to zeroWidthSpace (which GeezaPro doesn't support)
Comment 11 Myles C. Maxfield 2018-05-25 18:09:00 PDT
Created attachment 341370 [details]
WIP
Comment 12 EWS Watchlist 2018-05-25 18:10:24 PDT
Attachment 341370 [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 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 13 EWS Watchlist 2018-05-25 19:20:13 PDT
Comment on attachment 341370 [details]
WIP

Attachment 341370 [details] did not pass mac-ews (mac):
Output: http://webkit-queues.webkit.org/results/7807537

New failing tests:
fast/text/arabic-zwj-and-zwnj.html
fast/text/format-control.html
Comment 14 EWS Watchlist 2018-05-25 19:20:15 PDT
Created attachment 341375 [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
Comment 15 EWS Watchlist 2018-05-25 19:58:34 PDT
Comment on attachment 341370 [details]
WIP

Attachment 341370 [details] did not pass ios-sim-ews (ios-simulator-wk2):
Output: http://webkit-queues.webkit.org/results/7807676

New failing tests:
imported/blink/fast/text/international/zerowidthjoiner-should-not-render.html
Comment 16 EWS Watchlist 2018-05-25 19:58:36 PDT
Created attachment 341379 [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
Comment 17 EWS Watchlist 2018-05-25 19:58:52 PDT
Comment on attachment 341370 [details]
WIP

Attachment 341370 [details] did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/7807721

New failing tests:
fast/text/arabic-zwj-and-zwnj.html
fast/text/format-control.html
Comment 18 EWS Watchlist 2018-05-25 19:58:53 PDT
Created attachment 341380 [details]
Archive of layout-test-results from ews114 for mac-sierra

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews114  Port: mac-sierra  Platform: Mac OS X 10.12.6
Comment 19 EWS Watchlist 2018-05-25 21:55:34 PDT
Comment on attachment 341370 [details]
WIP

Attachment 341370 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/7809084

New failing tests:
fast/text/arabic-zwj-and-zwnj.html
fast/text/format-control.html
Comment 20 EWS Watchlist 2018-05-25 21:55:36 PDT
Created attachment 341387 [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
Comment 21 Myles C. Maxfield 2018-05-30 16:49:10 PDT
Created attachment 341622 [details]
WIP
Comment 22 EWS Watchlist 2018-05-30 16:51:27 PDT
Attachment 341622 [details] did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/Font.cpp:204:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/WebCore/platform/graphics/Font.cpp:205:  Should have a space between // and comment  [whitespace/comments] [4]
Total errors found: 2 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 23 EWS Watchlist 2018-05-30 18:19:18 PDT
Comment on attachment 341622 [details]
WIP

Attachment 341622 [details] did not pass mac-ews (mac):
Output: http://webkit-queues.webkit.org/results/7881306

New failing tests:
fast/text/arabic-zwj-and-zwnj.html
fast/text/format-control.html
Comment 24 EWS Watchlist 2018-05-30 18:19:20 PDT
Created attachment 341630 [details]
Archive of layout-test-results from ews100 for mac-sierra

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews100  Port: mac-sierra  Platform: Mac OS X 10.12.6
Comment 25 EWS Watchlist 2018-05-30 18:38:56 PDT
Comment on attachment 341622 [details]
WIP

Attachment 341622 [details] did not pass ios-sim-ews (ios-simulator-wk2):
Output: http://webkit-queues.webkit.org/results/7881004

New failing tests:
imported/blink/fast/text/international/zerowidthjoiner-should-not-render.html
Comment 26 EWS Watchlist 2018-05-30 18:38:57 PDT
Created attachment 341632 [details]
Archive of layout-test-results from ews121 for ios-simulator-wk2

The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews121  Port: ios-simulator-wk2  Platform: Mac OS X 10.13.4
Comment 27 EWS Watchlist 2018-05-30 18:47:41 PDT
Comment on attachment 341622 [details]
WIP

Attachment 341622 [details] did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/7881340

New failing tests:
fast/text/arabic-zwj-and-zwnj.html
fast/text/format-control.html
Comment 28 EWS Watchlist 2018-05-30 18:47:42 PDT
Created attachment 341634 [details]
Archive of layout-test-results from ews115 for mac-sierra

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews115  Port: mac-sierra  Platform: Mac OS X 10.12.6
Comment 29 EWS Watchlist 2018-05-30 18:48:57 PDT
Comment on attachment 341622 [details]
WIP

Attachment 341622 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/7881757

New failing tests:
fast/text/arabic-zwj-and-zwnj.html
fast/text/format-control.html
Comment 30 EWS Watchlist 2018-05-30 18:48:59 PDT
Created attachment 341635 [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
Comment 31 Myles C. Maxfield 2018-05-31 09:30:47 PDT
Created attachment 341667 [details]
WIP
Comment 32 EWS Watchlist 2018-05-31 09:32:35 PDT
Attachment 341667 [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 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 33 EWS Watchlist 2018-05-31 10:22:28 PDT
Comment on attachment 341667 [details]
WIP

Attachment 341667 [details] did not pass mac-ews (mac):
Output: http://webkit-queues.webkit.org/results/7901053

New failing tests:
fast/text/soft-hyphen-min-preferred-width.html
Comment 34 EWS Watchlist 2018-05-31 10:22:29 PDT
Created attachment 341670 [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
Comment 35 EWS Watchlist 2018-05-31 10:27:33 PDT
Comment on attachment 341667 [details]
WIP

Attachment 341667 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/7901054

New failing tests:
fast/text/soft-hyphen-min-preferred-width.html
Comment 36 EWS Watchlist 2018-05-31 10:27:34 PDT
Created attachment 341671 [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
Comment 37 EWS Watchlist 2018-05-31 11:10:45 PDT
Comment on attachment 341667 [details]
WIP

Attachment 341667 [details] did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/7901547

New failing tests:
fast/text/soft-hyphen-min-preferred-width.html
Comment 38 EWS Watchlist 2018-05-31 11:10:47 PDT
Created attachment 341675 [details]
Archive of layout-test-results from ews115 for mac-sierra

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews115  Port: mac-sierra  Platform: Mac OS X 10.12.6
Comment 39 Myles C. Maxfield 2018-05-31 17:39:13 PDT
Created attachment 341718 [details]
Patch
Comment 40 Myles C. Maxfield 2018-05-31 17:39:36 PDT
<rdar://problem/37912480>
Comment 41 mitz 2018-05-31 19:54:14 PDT
Comment on attachment 341718 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=341718&action=review

> LayoutTests/ChangeLog:14
> +        * platform/mac/fast/text/format-control-expected.png:
> +        * platform/mac/fast/text/format-control-expected.txt: Rebaseline.

This test is regressing! For example, the presence of a zero-width non-joiner is no longer preventing the fi ligature from forming on the second line.
Comment 42 mitz 2018-05-31 19:55:22 PDT
Comment on attachment 341718 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=341718&action=review

> Source/WebCore/platform/graphics/Font.cpp:-203
> -        overwriteCodePoint(leftToRightMark, zeroWidthSpace);
> -        overwriteCodePoint(rightToLeftMark, zeroWidthSpace);
> -        overwriteCodePoint(leftToRightEmbed, zeroWidthSpace);
> -        overwriteCodePoint(rightToLeftEmbed, zeroWidthSpace);
> -        overwriteCodePoint(leftToRightOverride, zeroWidthSpace);
> -        overwriteCodePoint(rightToLeftOverride, zeroWidthSpace);
> -        overwriteCodePoint(leftToRightIsolate, zeroWidthSpace);
> -        overwriteCodePoint(rightToLeftIsolate, zeroWidthSpace);

I think this may regress behavior with fonts that have glyphs for these control characters (I think Arial Unicode from Microsoft is an example of that).
Comment 43 Myles C. Maxfield 2023-09-14 06:27:04 PDT

*** This bug has been marked as a duplicate of bug 175778 ***