Changeset 254428 in webkit


Ignore:
Timestamp:
Jan 13, 2020 4:47:32 AM (4 years ago)
Author:
Antti Koivisto
Message:

[LFC][Integration] Enable LFC integration
https://bugs.webkit.org/show_bug.cgi?id=206128

Reviewed by Zalan Bujtas.

Source/WebCore:

Enable the new line layout path.

  • page/RuntimeEnabledFeatures.h:

Source/WebKit:

  • Shared/WebPreferences.yaml:

LayoutTests:

Rebase for some progressions.

  • fast/dom/Range/getBoundingClientRect-expected.txt:
  • fast/dom/Range/getBoundingClientRect.html:

Update the test for new results. These match the complex line layout results (simple lines produce wrong results).

  • platform/ios/fast/text/whitespace/pre-break-word-expected.txt:
  • platform/ios/fast/text/word-break-expected.txt:
  • platform/mac/fast/text/hyphenate-limit-lines-expected.txt:
  • platform/mac/fast/text/whitespace/pre-break-word-expected.txt:
  • platform/mac/fast/text/word-break-expected.txt:

Line breaking and white-space progressions.

  • platform/ios/TestExpectations:

A subtest of editing/text-iterator/findString.html fails on iOS. This needs futher analysis.

  • platform/win/TestExpectations:

fast/dom/Range/getBoundingClientRect.html now fails on windows because LFC is not enabled there.

Location:
trunk
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r254426 r254428  
     12020-01-13  Antti Koivisto  <antti@apple.com>
     2
     3        [LFC][Integration] Enable LFC integration
     4        https://bugs.webkit.org/show_bug.cgi?id=206128
     5
     6        Reviewed by Zalan Bujtas.
     7
     8        Rebase for some progressions.
     9
     10        * fast/dom/Range/getBoundingClientRect-expected.txt:
     11        * fast/dom/Range/getBoundingClientRect.html:
     12
     13        Update the test for new results. These match the complex line layout results (simple lines produce wrong results).
     14
     15        * platform/ios/fast/text/whitespace/pre-break-word-expected.txt:
     16        * platform/ios/fast/text/word-break-expected.txt:
     17        * platform/mac/fast/text/hyphenate-limit-lines-expected.txt:
     18        * platform/mac/fast/text/whitespace/pre-break-word-expected.txt:
     19        * platform/mac/fast/text/word-break-expected.txt:
     20
     21        Line breaking and white-space progressions.
     22
     23        * platform/ios/TestExpectations:
     24
     25        A subtest of editing/text-iterator/findString.html fails on iOS. This needs futher analysis.
     26
     27        * platform/win/TestExpectations:
     28
     29        fast/dom/Range/getBoundingClientRect.html now fails on windows because LFC is not enabled there.
     30
    1312020-01-13  Antti Koivisto  <antti@apple.com>
    232
  • trunk/LayoutTests/TestExpectations

    r254408 r254428  
    32233223# Re-enable as each chunk of tests are verified with ANGLE backend.
    32243224webgl/2.0.0 [ Skip ]
     3225
     3226webkit.org/b/206168 [ Debug ] fast/dom/insert-span-into-long-text-bug-28245.html [ Skip ]
  • trunk/LayoutTests/fast/dom/Range/getBoundingClientRect-expected.txt

    r245534 r254428  
    4949Test 7
    5050PASS rect.left.toFixed(3) is "8.000"
    51 PASS rect.top.toFixed(3) is "2180.000"
     51PASS rect.top.toFixed(3) is "2168.000"
    5252PASS rect.width.toFixed(3) is "192.000"
    53 PASS rect.height.toFixed(3) is "96.000"
     53PASS rect.height.toFixed(3) is "108.000"
    5454PASS rect.right is rect.left + rect.width
    5555PASS rect.bottom is rect.top + rect.height
  • trunk/LayoutTests/fast/dom/Range/getBoundingClientRect.html

    r245534 r254428  
    116116        /*5*/  { left: -14.574, top: 1761.947, width: 504.009, height: 535.849 },
    117117        /*6*/  { left: 0, top: 0, width: 0, height: 0 },
    118         /*7*/  { left: 8, top: 2180, width: 192, height: 96 },
     118        /*7*/  { left: 8, top: 2168, width: 192, height: 108 },
    119119    ];
    120120
  • trunk/LayoutTests/platform/ios/TestExpectations

    r254415 r254428  
    34633463
    34643464webkit.org/b/200043 fast/text/international/system-language/navigator-language [ Pass Failure ]
     3465
     3466webkit.org/b/206164 editing/text-iterator/findString.html [ Failure ]
  • trunk/LayoutTests/platform/ios/fast/text/whitespace/pre-break-word-expected.txt

    r179104 r254428  
    1 layer at (0,0) size 800x600
     1layer at (0,0) size 920x600
    22  RenderView at (0,0) size 800x600
    33layer at (0,0) size 800x600
    44  RenderBlock {HTML} at (0,0) size 800x600
    55    RenderBody {BODY} at (8,8) size 784x584
    6       RenderBlock {DIV} at (0,0) size 154x144 [border: (2px solid #FF0000)]
    7         RenderText {#text} at (2,2) size 148x139
    8           text run at (2,2) width 148: "Even though this div is"
    9           text run at (2,22) width 148: " white-space pre, the te"
    10           text run at (2,42) width 145: "xt inside should still w"
    11           text run at (2,62) width 148: "rap to multiple lines be"
    12           text run at (2,82) width 143: "cause of the word-wra"
    13           text run at (2,102) width 144: "p:break-word CSS pro"
    14           text run at (2,122) width 36: "perty."
     6      RenderBlock {DIV} at (0,0) size 154x24 [border: (2px solid #FF0000)]
     7        RenderText {#text} at (2,2) size 911x19
     8          text run at (2,2) width 911: "Even though this div is white-space pre, the text inside should still wrap to multiple lines because of the word-wrap:break-word CSS property."
  • trunk/LayoutTests/platform/ios/fast/text/word-break-expected.txt

    r194965 r254428  
    1 layer at (0,0) size 800x1028
     1layer at (0,0) size 800x972
    22  RenderView at (0,0) size 800x600
    3 layer at (0,0) size 800x1028
    4   RenderBlock {HTML} at (0,0) size 800x1028
    5     RenderBody {BODY} at (8,8) size 784x1012
     3layer at (0,0) size 800x972
     4  RenderBlock {HTML} at (0,0) size 800x972
     5    RenderBody {BODY} at (8,8) size 784x956
    66      RenderBlock (anonymous) at (0,0) size 784x20
    77        RenderText {#text} at (0,0) size 700x19
     
    1818                text run at (6,62) width 8: "o"
    1919                text run at (6,76) width 8: "w"
    20             RenderTableCell {TD} at (20,35) size 762x26 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
     20            RenderTableCell {TD} at (19,35) size 763x26 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
    2121              RenderText {#text} at (6,6) size 164x14
    2222                text run at (6,6) width 164: "This cell should grow"
     
    2828        RenderText {#text} at (5,5) size 437x14
    2929          text run at (5,5) width 437: "Thislongwordshouldnotgetbrokenbutshouldstickoutofthepre."
     30          text run at (441,5) width 1: " "
    3031      RenderBlock (anonymous) at (0,208) size 784x80
    3132        RenderBR {BR} at (0,0) size 0x19
     
    4647                text run at (6,62) width 8: "o"
    4748                text run at (6,76) width 8: "w"
    48             RenderTableCell {TD} at (20,35) size 762x26 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
     49            RenderTableCell {TD} at (19,35) size 763x26 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
    4950              RenderText {#text} at (6,6) size 164x14
    5051                text run at (6,6) width 164: "This cell should grow"
    5152      RenderBlock (anonymous) at (0,386) size 784x20
    5253        RenderBR {BR} at (0,0) size 0x19
    53       RenderBlock {PRE} at (0,419) size 110x80 [border: (5px solid #000000)]
    54         RenderText {#text} at (5,5) size 94x70
    55           text run at (5,5) width 94: "Thislongword"
    56           text run at (5,19) width 94: "shouldnotget"
    57           text run at (5,33) width 94: "brokenbutsho"
    58           text run at (5,47) width 94: "uldstickouto"
    59           text run at (5,61) width 63: "fthepre."
    60       RenderBlock (anonymous) at (0,512) size 784x80
     54      RenderBlock {PRE} at (0,419) size 110x24 [border: (5px solid #000000)]
     55        RenderText {#text} at (5,5) size 437x14
     56          text run at (5,5) width 437: "Thislongwordshouldnotgetbrokenbutshouldstickoutofthepre."
     57          text run at (441,5) width 1: " "
     58      RenderBlock (anonymous) at (0,456) size 784x80
    6159        RenderBR {BR} at (0,0) size 0x19
    6260        RenderText {#text} at (0,20) size 776x59
     
    6664          text run at (304,40) width 472: "The breaking should be \"dumb\" and just occur when the end of the line is"
    6765          text run at (0,60) width 21: "hit."
    68       RenderBlock {DIV} at (0,592) size 304x46 [border: (2px solid #000000)]
     66      RenderBlock {DIV} at (0,536) size 304x46 [border: (2px solid #000000)]
    6967        RenderBlock (floating) {DIV} at (2,2) size 300x42
    7068          RenderText {#text} at (0,0) size 297x42
     
    7371            text run at (0,28) width 24: "ck."
    7472        RenderBR {BR} at (302,2) size 0x14
    75       RenderBlock (anonymous) at (0,638) size 784x20
     73      RenderBlock (anonymous) at (0,582) size 784x20
    7674        RenderBR {BR} at (0,0) size 0x19
    77       RenderBlock (anonymous) at (0,762) size 784x80
     75      RenderBlock (anonymous) at (0,706) size 784x80
    7876        RenderBR {BR} at (0,0) size 0x19
    7977        RenderText {#text} at (0,20) size 783x59
     
    8381          text run at (344,40) width 439: "The breaking should be \"smart\" and be like word-wrap: break-word,"
    8482          text run at (0,60) width 540: "with words preferring to wrap first before allowing break opportunities within them."
    85       RenderBlock {DIV} at (0,842) size 304x46 [border: (2px solid #000000)]
     83      RenderBlock {DIV} at (0,786) size 304x46 [border: (2px solid #000000)]
    8684        RenderBlock (floating) {DIV} at (2,2) size 300x42
    8785          RenderText {#text} at (0,0) size 250x42
     
    9088            text run at (0,28) width 196: "oftheenclosing300pxblock."
    9189        RenderBR {BR} at (302,2) size 0x14
    92       RenderBlock (anonymous) at (0,888) size 784x20
     90      RenderBlock (anonymous) at (0,832) size 784x20
    9391        RenderBR {BR} at (0,0) size 0x19
    94 layer at (8,666) size 304x104
    95   RenderBlock (relative positioned) {DIV} at (0,658) size 304x104 [border: (2px solid #000000)]
    96 layer at (10,668) size 300x42
     92layer at (8,610) size 304x104
     93  RenderBlock (relative positioned) {DIV} at (0,602) size 304x104 [border: (2px solid #000000)]
     94layer at (10,612) size 300x42
    9795  RenderBlock (positioned) {DIV} at (2,2) size 300x42
    9896    RenderText {#text} at (0,0) size 297x42
     
    10098      text run at (0,14) width 297: "uldnotstick out oftheenclosing300pxblo"
    10199      text run at (0,28) width 24: "ck."
    102 layer at (8,916) size 304x104
    103   RenderBlock (relative positioned) {DIV} at (0,908) size 304x104 [border: (2px solid #000000)]
    104 layer at (10,918) size 300x42
     100layer at (8,860) size 304x104
     101  RenderBlock (relative positioned) {DIV} at (0,852) size 304x104 [border: (2px solid #000000)]
     102layer at (10,862) size 300x42
    105103  RenderBlock (positioned) {DIV} at (2,2) size 300x42
    106104    RenderText {#text} at (0,0) size 250x42
  • trunk/LayoutTests/platform/mac-wk1/TestExpectations

    r254385 r254428  
    847847webkit.org/b/206071 editing/spelling/markers.html [ Skip ]
    848848webkit.org/b/206071 editing/spelling/retro-correction-spelling-markers.html [ Failure ]
     849
     850# These simple line layout specific tests disable LFC in test header. This is not supported in DRT.
     851webkit.org/b/206167 fast/text/embed-at-end-of-pre-wrap-line-simple-lines.html [ Failure ]
     852webkit.org/b/206167 fast/text/simple-line-layout-leading-whitespace-with-soft-hard-linebreak.html [ Failure ]
     853webkit.org/b/206167 fast/text/simple-lines-float.html [ Failure ]
     854webkit.org/b/206167 fast/text/whitespace/pre-wrap-long-word-simple-lines.html [ Failure ]
  • trunk/LayoutTests/platform/mac/fast/text/hyphenate-limit-lines-expected.txt

    r214072 r254428  
    5959          text run at (1,187) width 200: "sires into neces" + hyphen string "-"
    6060          text run at (1,218) width 200: "sary and"
    61           text run at (1,249) width 200: "unnecessary\x{2014}"
     61          text run at (1,249) width 154: "unnecessary\x{2014}"
    6262          text run at (1,280) width 200: "these and other"
    6363          text run at (1,311) width 200: "great forms of"
     
    8181          text run at (1,218) width 166: "necessary and "
    8282          text run at (166,218) width 35: "un" + hyphen string "-"
    83           text run at (1,249) width 200: "necessary\x{2014}these"
     83          text run at (1,249) width 181: "necessary\x{2014}these"
    8484          text run at (1,280) width 200: "and other great"
    8585          text run at (1,311) width 200: "forms of thought"
     
    101101          text run at (1,187) width 200: "desires into"
    102102          text run at (1,218) width 200: "necessary and"
    103           text run at (1,249) width 200: "unnecessary\x{2014}"
     103          text run at (1,249) width 154: "unnecessary\x{2014}"
    104104          text run at (1,280) width 200: "these and other"
    105105          text run at (1,311) width 200: "great forms of"
  • trunk/LayoutTests/platform/mac/fast/text/whitespace/pre-break-word-expected.txt

    r177774 r254428  
    1 layer at (0,0) size 800x600
    2   RenderView at (0,0) size 800x600
    3 layer at (0,0) size 800x600
    4   RenderBlock {HTML} at (0,0) size 800x600
    5     RenderBody {BODY} at (8,8) size 784x584
    6       RenderBlock {DIV} at (0,0) size 154x130 [border: (2px solid #FF0000)]
    7         RenderText {#text} at (2,2) size 148x126
    8           text run at (2,2) width 148: "Even though this div is"
    9           text run at (2,20) width 148: " white-space pre, the te"
    10           text run at (2,38) width 145: "xt inside should still w"
    11           text run at (2,56) width 148: "rap to multiple lines be"
    12           text run at (2,74) width 143: "cause of the word-wra"
    13           text run at (2,92) width 144: "p:break-word CSS pro"
    14           text run at (2,110) width 36: "perty."
     1layer at (0,0) size 920x585
     2  RenderView at (0,0) size 800x585
     3layer at (0,0) size 800x585
     4  RenderBlock {HTML} at (0,0) size 800x585
     5    RenderBody {BODY} at (8,8) size 784x569
     6      RenderBlock {DIV} at (0,0) size 154x22 [border: (2px solid #FF0000)]
     7        RenderText {#text} at (2,2) size 911x18
     8          text run at (2,2) width 911: "Even though this div is white-space pre, the text inside should still wrap to multiple lines because of the word-wrap:break-word CSS property."
  • trunk/LayoutTests/platform/mac/fast/text/word-break-expected.txt

    r254044 r254428  
    1 layer at (0,0) size 785x1016
     1layer at (0,0) size 785x956
    22  RenderView at (0,0) size 785x600
    3 layer at (0,0) size 785x1016
    4   RenderBlock {HTML} at (0,0) size 785x1016
    5     RenderBody {BODY} at (8,8) size 769x1000
     3layer at (0,0) size 785x956
     4  RenderBlock {HTML} at (0,0) size 785x956
     5    RenderBody {BODY} at (8,8) size 769x940
    66      RenderBlock (anonymous) at (0,0) size 769x18
    77        RenderText {#text} at (0,0) size 700x18
     
    5252      RenderBlock (anonymous) at (0,385) size 769x18
    5353        RenderBR {BR} at (0,0) size 0x18
    54       RenderBlock {PRE} at (0,416) size 110x85 [border: (5px solid #000000)]
    55         RenderText {#text} at (5,5) size 94x75
    56           text run at (5,5) width 94: "Thislongword"
    57           text run at (5,20) width 94: "shouldnotget"
    58           text run at (5,35) width 94: "brokenbutsho"
    59           text run at (5,50) width 94: "uldstickouto"
    60           text run at (5,65) width 63: "fthepre."
    61           text run at (67,65) width 1: " "
    62       RenderBlock (anonymous) at (0,514) size 769x72
     54      RenderBlock {PRE} at (0,416) size 110x25 [border: (5px solid #000000)]
     55        RenderText {#text} at (5,5) size 437x15
     56          text run at (5,5) width 437: "Thislongwordshouldnotgetbrokenbutshouldstickoutofthepre."
     57          text run at (441,5) width 1: " "
     58      RenderBlock (anonymous) at (0,454) size 769x72
    6359        RenderBR {BR} at (0,0) size 0x18
    6460        RenderText {#text} at (0,18) size 750x54
     
    6864          text run at (344,36) width 406: "The breaking should be \"dumb\" and just occur when the end of"
    6965          text run at (0,54) width 88: "the line is hit."
    70       RenderBlock {DIV} at (0,586) size 304x49 [border: (2px solid #000000)]
     66      RenderBlock {DIV} at (0,526) size 304x49 [border: (2px solid #000000)]
    7167        RenderBlock (floating) {DIV} at (2,2) size 300x45
    7268          RenderText {#text} at (0,0) size 297x45
     
    7571            text run at (0,30) width 24: "ck."
    7672        RenderBR {BR} at (302,2) size 0x15
    77       RenderBlock (anonymous) at (0,635) size 769x18
     73      RenderBlock (anonymous) at (0,575) size 769x18
    7874        RenderBR {BR} at (0,0) size 0x18
    79       RenderBlock (anonymous) at (0,757) size 769x72
     75      RenderBlock (anonymous) at (0,697) size 769x72
    8076        RenderBR {BR} at (0,0) size 0x18
    8177        RenderText {#text} at (0,18) size 748x54
     
    8581          text run at (344,36) width 402: "The breaking should be \"smart\" and be like word-wrap: break-"
    8682          text run at (0,54) width 580: "word, with words preferring to wrap first before allowing break opportunities within them."
    87       RenderBlock {DIV} at (0,829) size 304x49 [border: (2px solid #000000)]
     83      RenderBlock {DIV} at (0,769) size 304x49 [border: (2px solid #000000)]
    8884        RenderBlock (floating) {DIV} at (2,2) size 300x45
    8985          RenderText {#text} at (0,0) size 250x45
     
    9288            text run at (0,30) width 196: "oftheenclosing300pxblock."
    9389        RenderBR {BR} at (302,2) size 0x15
    94       RenderBlock (anonymous) at (0,878) size 769x18
     90      RenderBlock (anonymous) at (0,818) size 769x18
    9591        RenderBR {BR} at (0,0) size 0x18
    96 layer at (8,661) size 304x104
    97   RenderBlock (relative positioned) {DIV} at (0,653) size 304x104 [border: (2px solid #000000)]
    98 layer at (10,663) size 300x45
     92layer at (8,601) size 304x104
     93  RenderBlock (relative positioned) {DIV} at (0,593) size 304x104 [border: (2px solid #000000)]
     94layer at (10,603) size 300x45
    9995  RenderBlock (positioned) {DIV} at (2,2) size 300x45
    10096    RenderText {#text} at (0,0) size 297x45
     
    10298      text run at (0,15) width 297: "uldnotstick out oftheenclosing300pxblo"
    10399      text run at (0,30) width 24: "ck."
    104 layer at (8,904) size 304x104
    105   RenderBlock (relative positioned) {DIV} at (0,896) size 304x104 [border: (2px solid #000000)]
    106 layer at (10,906) size 300x45
     100layer at (8,844) size 304x104
     101  RenderBlock (relative positioned) {DIV} at (0,836) size 304x104 [border: (2px solid #000000)]
     102layer at (10,846) size 300x45
    107103  RenderBlock (positioned) {DIV} at (2,2) size 300x45
    108104    RenderText {#text} at (0,0) size 250x45
  • trunk/LayoutTests/platform/win/TestExpectations

    r254323 r254428  
    45204520
    45214521webkit.org/b/205856 storage/indexeddb/IDBTransaction-page-cache.html [ Pass Timeout ]
     4522
     4523webkit.org/b/206165 fast/dom/Range/getBoundingClientRect.html [ Failure ]
  • trunk/Source/WebCore/ChangeLog

    r254427 r254428  
     12020-01-13  Antti Koivisto  <antti@apple.com>
     2
     3        [LFC][Integration] Enable LFC integration
     4        https://bugs.webkit.org/show_bug.cgi?id=206128
     5
     6        Reviewed by Zalan Bujtas.
     7
     8        Enable the new line layout path.
     9
     10        * page/RuntimeEnabledFeatures.h:
     11
    1122020-01-13  Antti Koivisto  <antti@apple.com>
    213
  • trunk/Source/WebCore/page/RuntimeEnabledFeatures.h

    r254115 r254428  
    455455#if ENABLE(LAYOUT_FORMATTING_CONTEXT)
    456456    bool m_layoutFormattingContextEnabled { false };
    457     bool m_layoutFormattingContextIntegrationEnabled { false };
     457    bool m_layoutFormattingContextIntegrationEnabled { true };
    458458#endif
    459459
  • trunk/Source/WebKit/ChangeLog

    r254424 r254428  
     12020-01-13  Antti Koivisto  <antti@apple.com>
     2
     3        [LFC][Integration] Enable LFC integration
     4        https://bugs.webkit.org/show_bug.cgi?id=206128
     5
     6        Reviewed by Zalan Bujtas.
     7
     8        * Shared/WebPreferences.yaml:
     9
    1102020-01-13  Carlos Garcia Campos  <cgarcia@igalia.com>
    211
  • trunk/Source/WebKit/Shared/WebPreferences.yaml

    r254293 r254428  
    16801680LayoutFormattingContextIntegrationEnabled:
    16811681  type: bool
    1682   defaultValue: false
     1682  defaultValue: true
    16831683  humanReadableName: "Next-generation line layout integration (LFC)"
    16841684  humanReadableDescription: "Enable next-generation line layout integration (LFC)"
Note: See TracChangeset for help on using the changeset viewer.