Changeset 222843 in webkit
- Timestamp:
- Oct 4, 2017 6:51:19 AM (7 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 2 deleted
- 98 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r222841 r222843 1 2017-10-04 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [Harfbuzz] Implement ComplexTextController on top of HarfBuzz 4 https://bugs.webkit.org/show_bug.cgi?id=167956 5 6 Unreviewed GTK+ gardening. Rebaseline tests. 7 8 * platform/gtk/css1/font_properties/font-expected.png: 9 * platform/gtk/css1/font_properties/font-expected.txt: 10 * platform/gtk/css1/pseudo/firstline-expected.png: 11 * platform/gtk/css1/pseudo/firstline-expected.txt: 12 * platform/gtk/css1/pseudo/multiple_pseudo_elements-expected.png: 13 * platform/gtk/css1/pseudo/multiple_pseudo_elements-expected.txt: 14 * platform/gtk/css2.1/t051201-c23-first-line-00-b-expected.png: 15 * platform/gtk/css2.1/t051201-c23-first-line-00-b-expected.txt: 16 * platform/gtk/css2.1/t051202-c26-psudo-nest-00-c-expected.png: 17 * platform/gtk/css2.1/t051202-c26-psudo-nest-00-c-expected.txt: 18 * platform/gtk/css2.1/t0905-c5525-fltwidth-00-c-g-expected.png: 19 * platform/gtk/css2.1/t0905-c5525-fltwidth-00-c-g-expected.txt: 20 * platform/gtk/css2.1/t1508-c527-font-00-b-expected.png: 21 * platform/gtk/css2.1/t1508-c527-font-00-b-expected.txt: 22 * platform/gtk/css2.1/t1508-c527-font-06-b-expected.png: 23 * platform/gtk/css2.1/t1508-c527-font-06-b-expected.txt: 24 * platform/gtk/css2.1/t1508-c527-font-07-b-expected.png: 25 * platform/gtk/css2.1/t1508-c527-font-07-b-expected.txt: 26 * platform/gtk/css2.1/t1508-c527-font-10-c-expected.png: 27 * platform/gtk/css2.1/t1508-c527-font-10-c-expected.txt: 28 * platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-br-expected.png: 29 * platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-br-expected.txt: 30 * platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-p-expected.png: 31 * platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-p-expected.txt: 32 * platform/gtk/editing/selection/vertical-rl-rtl-extend-line-forward-br-expected.png: 33 * platform/gtk/editing/selection/vertical-rl-rtl-extend-line-forward-br-expected.txt: 34 * platform/gtk/editing/selection/vertical-rl-rtl-extend-line-forward-p-expected.png: 35 * platform/gtk/editing/selection/vertical-rl-rtl-extend-line-forward-p-expected.txt: 36 * platform/gtk/fast/css/text-overflow-ellipsis-text-align-center-expected.png: 37 * platform/gtk/fast/css/text-overflow-ellipsis-text-align-center-expected.txt: 38 * platform/gtk/fast/css/text-overflow-ellipsis-text-align-left-expected.png: 39 * platform/gtk/fast/css/text-overflow-ellipsis-text-align-left-expected.txt: 40 * platform/gtk/fast/text/atsui-negative-spacing-features-expected.png: 41 * platform/gtk/fast/text/atsui-negative-spacing-features-expected.txt: 42 * platform/gtk/fast/text/atsui-pointtooffset-calls-cg-expected.png: 43 * platform/gtk/fast/text/atsui-pointtooffset-calls-cg-expected.txt: 44 * platform/gtk/fast/text/atsui-rtl-override-selection-expected.png: 45 * platform/gtk/fast/text/atsui-rtl-override-selection-expected.txt: 46 * platform/gtk/fast/text/atsui-spacing-features-expected.png: 47 * platform/gtk/fast/text/atsui-spacing-features-expected.txt: 48 * platform/gtk/fast/text/emphasis-expected.png: 49 * platform/gtk/fast/text/emphasis-expected.txt: 50 * platform/gtk/fast/text/international/bold-bengali-expected.png: 51 * platform/gtk/fast/text/international/bold-bengali-expected.txt: 52 * platform/gtk/fast/text/international/hebrew-vowels-expected.png: 53 * platform/gtk/fast/text/international/hebrew-vowels-expected.txt: 54 * platform/gtk/fast/text/international/thai-baht-space-expected.png: 55 * platform/gtk/fast/text/international/thai-baht-space-expected.txt: 56 * platform/gtk/fast/text/international/thai-line-breaks-expected.png: 57 * platform/gtk/fast/text/international/thai-line-breaks-expected.txt: 58 * platform/gtk/fast/text/large-text-composed-char-dos-expected.txt: Added. 59 * platform/gtk/svg/W3C-I18N/g-dirLTR-ubNone-expected.png: 60 * platform/gtk/svg/W3C-I18N/g-dirLTR-ubNone-expected.txt: 61 * platform/gtk/svg/W3C-I18N/g-dirLTR-ubOverride-expected.png: 62 * platform/gtk/svg/W3C-I18N/g-dirLTR-ubOverride-expected.txt: 63 * platform/gtk/svg/W3C-I18N/g-dirRTL-ubNone-expected.png: 64 * platform/gtk/svg/W3C-I18N/g-dirRTL-ubNone-expected.txt: 65 * platform/gtk/svg/W3C-I18N/g-dirRTL-ubOverride-expected.png: 66 * platform/gtk/svg/W3C-I18N/g-dirRTL-ubOverride-expected.txt: 67 * platform/gtk/svg/W3C-I18N/text-dirLTR-ubNone-expected.png: 68 * platform/gtk/svg/W3C-I18N/text-dirLTR-ubNone-expected.txt: 69 * platform/gtk/svg/W3C-I18N/text-dirLTR-ubOverride-expected.png: 70 * platform/gtk/svg/W3C-I18N/text-dirLTR-ubOverride-expected.txt: 71 * platform/gtk/svg/W3C-I18N/text-dirRTL-ubNone-expected.png: 72 * platform/gtk/svg/W3C-I18N/text-dirRTL-ubNone-expected.txt: 73 * platform/gtk/svg/W3C-I18N/text-dirRTL-ubOverride-expected.png: 74 * platform/gtk/svg/W3C-I18N/text-dirRTL-ubOverride-expected.txt: 75 * platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubEmbed-in-rtl-context-expected.png: 76 * platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubEmbed-in-rtl-context-expected.txt: 77 * platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubNone-in-rtl-context-expected.png: 78 * platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubNone-in-rtl-context-expected.txt: 79 * platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-rtl-context-expected.png: 80 * platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-rtl-context-expected.txt: 81 * platform/gtk/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-rtl-context-expected.png: 82 * platform/gtk/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-rtl-context-expected.txt: 83 * platform/gtk/svg/W3C-I18N/tspan-direction-rtl-expected.png: 84 * platform/gtk/svg/W3C-I18N/tspan-direction-rtl-expected.txt: 85 * platform/gtk/svg/text/bidi-tspans-expected.png: 86 * platform/gtk/svg/text/bidi-tspans-expected.txt: 87 * platform/gtk/svg/text/select-textLength-spacing-squeeze-1-expected.png: 88 * platform/gtk/svg/text/select-textLength-spacing-squeeze-1-expected.txt: 89 * platform/gtk/svg/text/select-textLength-spacing-squeeze-2-expected.png: 90 * platform/gtk/svg/text/select-textLength-spacing-squeeze-2-expected.txt: 91 * platform/gtk/svg/text/select-textLength-spacing-stretch-2-expected.png: 92 * platform/gtk/svg/text/select-textLength-spacing-stretch-2-expected.txt: 93 * platform/gtk/svg/text/select-textLength-spacing-stretch-3-expected.png: 94 * platform/gtk/svg/text/select-textLength-spacing-stretch-3-expected.txt: 95 1 96 2017-10-04 Miguel Gomez <magomez@igalia.com> 2 97 -
trunk/LayoutTests/platform/gtk/css1/font_properties/font-expected.txt
r222078 r222843 27 27 text run at (423,0) width 283: "This is the \"base font size\" referred to in the following tests." 28 28 RenderBlock {P} at (0,253) size 769x21 29 RenderText {#text} at (0,0) size 49 5x1930 text run at (0,0) width 49 5: "This element should be 13pt. Helvetica which is in small-cap italics."29 RenderText {#text} at (0,0) size 496x19 30 text run at (0,0) width 496: "This element should be 13pt. Helvetica which is in small-cap italics." 31 31 RenderBlock {P} at (0,291) size 769x82 32 32 RenderText {#text} at (0,3) size 762x74 … … 57 57 text run at (0,59) width 308: "included for the purposes of testing this more effectively." 58 58 RenderBlock {P} at (0,587) size 769x109 59 RenderText {#text} at (0,3) size 7 49x10160 text run at (0,3) width 72 7: "This element should be in a sans-serif font, italicized and small caps, with a weight of 900. "61 text run at (727,3) width 2 2: "Its"62 text run at (0,30) width 74 6: "font-size should be 150% the base font size, and its line-height should be 150% of that value"63 text run at (0,57) width 24 5: "(18px and 27px, respectively). "64 text run at (245,57) width 48 0: "Extra text is included for the purposes of testing this more"65 text run at (0,84) width 9 4: "effectively."59 RenderText {#text} at (0,3) size 750x101 60 text run at (0,3) width 728: "This element should be in a sans-serif font, italicized and small caps, with a weight of 900. " 61 text run at (727,3) width 23: "Its" 62 text run at (0,30) width 747: "font-size should be 150% the base font size, and its line-height should be 150% of that value" 63 text run at (0,57) width 246: "(18px and 27px, respectively). " 64 text run at (245,57) width 481: "Extra text is included for the purposes of testing this more" 65 text run at (0,84) width 95: "effectively." 66 66 RenderBlock {P} at (0,713) size 769x217 67 RenderText {#text} at (0,17) size 74 4x18268 text run at (0,17) width 72 2: "This element should be in a sans-serif font, italicized and small caps, with a weight of 100. "69 text run at (722,17) width 2 2: "Its"70 text run at (0,71) width 74 2: "font-size should be 150% the base font size, and its line-height should be 300% of that value"67 RenderText {#text} at (0,17) size 745x182 68 text run at (0,17) width 723: "This element should be in a sans-serif font, italicized and small caps, with a weight of 100. " 69 text run at (722,17) width 23: "Its" 70 text run at (0,71) width 743: "font-size should be 150% the base font size, and its line-height should be 300% of that value" 71 71 text run at (0,125) width 244: "(18px and 54px, respectively). " 72 text run at (24 4,125) width 479: "Extra text is included for the purposes of testing this more"72 text run at (243,125) width 480: "Extra text is included for the purposes of testing this more" 73 73 text run at (0,179) width 93: "effectively." 74 74 RenderBlock {P} at (0,947) size 769x145 … … 76 76 text run at (0,8) width 750: "This element should be in a monospace font, italicized and small caps, with a weight of" 77 77 text run at (0,44) width 55: "900. " 78 text run at (5 5,44) width 687: "Its font-size should be 150% the base font size, and its line-height should be"78 text run at (54,44) width 688: "Its font-size should be 150% the base font size, and its line-height should be" 79 79 text run at (0,80) width 618: "2em, or twice the element's font size (18px and 36px, respectively). " 80 text run at (61 8,80) width 113: "Extra text is"80 text run at (617,80) width 114: "Extra text is" 81 81 text run at (0,116) width 499: "included for the purposes of testing this more effectively." 82 82 RenderBlock {P} at (0,1109) size 769x289 83 RenderText {#text} at (0,38) size 74 4x21284 text run at (0,38) width 72 2: "This element should be in a sans-serif font, italicized and small caps, with a weight of 500. "85 text run at (722,38) width 2 2: "Its"83 RenderText {#text} at (0,38) size 745x212 84 text run at (0,38) width 723: "This element should be in a sans-serif font, italicized and small caps, with a weight of 500. " 85 text run at (722,38) width 23: "Its" 86 86 text run at (0,134) width 693: "font-size should be 150% the base font size, or 18px, and its line-height should be 1in. " 87 87 text run at (693,134) width 47: "Extra" … … 101 101 text run at (0,32) width 318: "Extra text is included for the purposes of testing this more effectively." 102 102 RenderBlock {P} at (0,1645) size 769x271 103 RenderInline {SPAN} at (0,0) size 75 8x236 [bgcolor=#C0C0C0]104 RenderText {#text} at (0,17) size 75 8x236105 text run at (0,17) width 72 2: "This element should be in a sans-serif font, italicized and small caps, with a weight of 100. "106 text run at (722,17) width 2 2: "Its"107 text run at (0,71) width 74 2: "font-size should be 150% the base font size, and its line-height should be 300% of that value"108 text run at (0,125) width 75 8: "(18px and 54px, respectively). The text should have a silver background. The background color"103 RenderInline {SPAN} at (0,0) size 759x236 [bgcolor=#C0C0C0] 104 RenderText {#text} at (0,17) size 759x236 105 text run at (0,17) width 723: "This element should be in a sans-serif font, italicized and small caps, with a weight of 100. " 106 text run at (722,17) width 23: "Its" 107 text run at (0,71) width 743: "font-size should be 150% the base font size, and its line-height should be 300% of that value" 108 text run at (0,125) width 759: "(18px and 54px, respectively). The text should have a silver background. The background color" 109 109 text run at (0,179) width 736: "has been set on an inline element and should therefore only cover the text, not the interline" 110 text run at (0,233) width 6 3: "spacing."110 text run at (0,233) width 64: "spacing." 111 111 RenderText {#text} at (0,0) size 0x0 112 112 RenderTable {TABLE} at (0,1933) size 769x2432 [border: (1px outset #808080)] … … 128 128 text run at (0,18) width 204: "referred to in the following tests." 129 129 RenderBlock {P} at (4,57) size 747x21 130 RenderText {#text} at (0,0) size 49 5x19131 text run at (0,0) width 49 5: "This element should be 13pt. Helvetica which is in small-cap italics."130 RenderText {#text} at (0,0) size 496x19 131 text run at (0,0) width 496: "This element should be 13pt. Helvetica which is in small-cap italics." 132 132 RenderBlock {P} at (4,101) size 747x145 133 133 RenderText {#text} at (0,5) size 735x134 … … 166 166 text run at (0,76) width 669: "and its line-height should be 150% of that value (18px and 27px," 167 167 text run at (0,112) width 147: "respectively). " 168 text run at (14 7,112) width 561: "Extra text is included for the purposes of testing this"168 text run at (146,112) width 562: "Extra text is included for the purposes of testing this" 169 169 text run at (0,148) width 175: "more effectively." 170 170 RenderBlock {P} at (4,745) size 747x361 … … 174 174 text run at (225,94) width 491: "Its font-size should be 150% the base font size," 175 175 text run at (0,166) width 661: "and its line-height should be 300% of that value (18px and 54px," 176 text run at (0,238) width 14 5: "respectively). "177 text run at (145,238) width 5 59: "Extra text is included for the purposes of testing this"178 text run at (0,310) width 17 3: "more effectively."176 text run at (0,238) width 146: "respectively). " 177 text run at (145,238) width 560: "Extra text is included for the purposes of testing this" 178 text run at (0,310) width 174: "more effectively." 179 179 RenderBlock {P} at (4,1129) size 747x157 180 180 RenderText {#text} at (0,8) size 740x140 … … 191 191 text run at (0,226) width 433: "or 18px, and its line-height should be 1in. " 192 192 text run at (433,226) width 306: "Extra text is included for the" 193 text run at (0,322) width 42 6: "purposes of testing this more effectively."193 text run at (0,322) width 427: "purposes of testing this more effectively." 194 194 RenderBlock {P} at (4,1717) size 747x145 195 195 RenderText {#text} at (0,8) size 730x128 … … 207 207 text run at (235,40) width 405: "Extra text is included for the purposes of testing this more effectively." 208 208 RenderBlock {P} at (4,1967) size 747x433 209 RenderInline {SPAN} at (0,0) size 74 6x387 [bgcolor=#C0C0C0]210 RenderText {#text} at (0,22) size 74 6x387209 RenderInline {SPAN} at (0,0) size 747x387 [bgcolor=#C0C0C0] 210 RenderText {#text} at (0,22) size 747x387 211 211 text run at (0,22) width 701: "This element should be in a sans-serif font, italicized and small caps," 212 212 text run at (0,94) width 225: "with a weight of 100. " 213 213 text run at (225,94) width 491: "Its font-size should be 150% the base font size," 214 214 text run at (0,166) width 661: "and its line-height should be 300% of that value (18px and 54px," 215 text run at (0,238) width 74 6: "respectively). The text should have a silver background. The background"216 text run at (0,310) width 74 2: "color has been set on an inline element and should therefore only cover"215 text run at (0,238) width 747: "respectively). The text should have a silver background. The background" 216 text run at (0,310) width 743: "color has been set on an inline element and should therefore only cover" 217 217 text run at (0,382) width 353: "the text, not the interline spacing." 218 218 RenderText {#text} at (0,0) size 0x0 -
trunk/LayoutTests/platform/gtk/css1/pseudo/firstline-expected.txt
r222078 r222843 30 30 RenderText {#text} at (0,0) size 762x53 31 31 text run at (0,0) width 604: "The first line of this paragraph, and only that one, should be displayed in small-caps style. " 32 text run at (60 4,0) width 154: "Thus, if the first line is"32 text run at (603,0) width 155: "Thus, if the first line is" 33 33 text run at (0,18) width 762: "not in small-caps style, OR if the entire paragraph turns out in small-caps, then the user agent has failed this test (although" 34 34 text run at (0,36) width 165: "the problem might be that " … … 68 68 RenderText {#text} at (0,0) size 744x53 69 69 text run at (0,0) width 604: "The first line of this paragraph, and only that one, should be displayed in small-caps style. " 70 text run at (60 4,0) width 140: "Thus, if the first line"70 text run at (603,0) width 141: "Thus, if the first line" 71 71 text run at (0,18) width 712: "is not in small-caps style, OR if the entire paragraph turns out in small-caps, then the user agent has failed this test" 72 72 text run at (0,36) width 229: "(although the problem might be that " -
trunk/LayoutTests/platform/gtk/css1/pseudo/multiple_pseudo_elements-expected.txt
r222078 r222843 46 46 text run at (0,1) width 76: "\"W" 47 47 RenderText {#text} at (76,37) size 765x80 48 text run at (76,37) width 33 2: "e should check for quotation support,\" it was said. "49 text run at (408,37) width 35 4: "The first two characters in this paragraph-- a double-"48 text run at (76,37) width 333: "e should check for quotation support,\" it was said. " 49 text run at (408,37) width 355: "The first two characters in this paragraph-- a double-" 50 50 text run at (0,64) width 683: "quote mark and a capital 'W'-- should be 350% bigger than the rest of the paragraph, and maroon (dark red). " 51 51 text run at (683,64) width 81: "Note that the" … … 91 91 text run at (0,1) width 76: "\"W" 92 92 RenderText {#text} at (76,37) size 739x80 93 text run at (76,37) width 33 2: "e should check for quotation support,\" it was said. "94 text run at (408,37) width 30 0: "The first two characters in this paragraph-- a"93 text run at (76,37) width 333: "e should check for quotation support,\" it was said. " 94 text run at (408,37) width 301: "The first two characters in this paragraph-- a" 95 95 text run at (0,64) width 727: "double-quote mark and a capital 'W'-- should be 350% bigger than the rest of the paragraph, and maroon (dark red)." 96 96 text run at (0,82) width 739: "Note that the inclusion of both the quotation mark and the 'W' in the first-letter style is not required under CSS1, but it" -
trunk/LayoutTests/platform/gtk/css2.1/t051201-c23-first-line-00-b-expected.txt
r221911 r222843 70 70 RenderText {#text} at (91,0) size 398x17 71 71 text run at (91,0) width 219: " of this paragraph, and only that " 72 text run at (3 10,0) width 179: "one, should be displayed in "73 RenderInline {STRONG} at (0,0) size 7 2x1774 RenderText {#text} at (48 9,0) size 72x1775 text run at (48 9,0) width 72: "small-caps"76 RenderText {#text} at (56 1,0) size 114x1777 text run at (56 1,0) width 61: " style as "78 text run at (62 2,0) width 53: "well as "79 RenderInline {STRONG} at (0,0) size 39x1780 RenderText {#text} at (67 5,0) size 39x1781 text run at (67 5,0) width 39: "green"82 RenderText {#text} at (71 4,0) size 784x10783 text run at (71 4,0) width 58: ". Thus, if"72 text run at (309,0) width 180: "one, should be displayed in " 73 RenderInline {STRONG} at (0,0) size 73x17 74 RenderText {#text} at (488,0) size 73x17 75 text run at (488,0) width 73: "small-caps" 76 RenderText {#text} at (560,0) size 115x17 77 text run at (560,0) width 62: " style as " 78 text run at (621,0) width 54: "well as " 79 RenderInline {STRONG} at (0,0) size 40x17 80 RenderText {#text} at (674,0) size 40x17 81 text run at (674,0) width 40: "green" 82 RenderText {#text} at (713,0) size 784x107 83 text run at (713,0) width 59: ". Thus, if" 84 84 text run at (0,18) width 132: "the first line is not in " 85 85 text run at (132,18) width 341: "small-caps style, or if the entire paragraph turns out in " -
trunk/LayoutTests/platform/gtk/css2.1/t051202-c26-psudo-nest-00-c-expected.txt
r222078 r222843 57 57 RenderText {#text} at (131,15) size 108x17 58 58 text run at (131,15) width 108: "two characters" 59 RenderText {#text} at (239,15) size 44 6x1759 RenderText {#text} at (239,15) size 447x17 60 60 text run at (239,15) width 118: " in this paragraph " 61 text run at (35 7,15) width 328: "(a double-quote mark and a capital 'T') should be "62 RenderInline {STRONG} at (0,0) size 8 8x1763 RenderText {#text} at (685,15) size 8 8x1764 text run at (685,15) width 4 4: "200% "65 text run at (729,15) width 4 4: "bigger"61 text run at (356,15) width 330: "(a double-quote mark and a capital 'T') should be " 62 RenderInline {STRONG} at (0,0) size 89x17 63 RenderText {#text} at (685,15) size 89x17 64 text run at (685,15) width 45: "200% " 65 text run at (729,15) width 45: "bigger" 66 66 RenderText {#text} at (0,37) size 218x17 67 67 text run at (0,37) width 218: "than the rest of the paragraph, and " -
trunk/LayoutTests/platform/gtk/css2.1/t0905-c5525-fltwidth-00-c-g-expected.txt
r221911 r222843 23 23 text run at (0,90) width 199: "float text ignore this float " 24 24 text run at (198,90) width 187: "text ignore this float text" 25 text run at (0,108) width 23 5: "ignore this float text ignore this "25 text run at (0,108) width 236: "ignore this float text ignore this " 26 26 text run at (235,108) width 150: "float text ignore this" 27 27 text run at (0,126) width 283: "float text ignore this float text ignore " … … 36 36 text run at (48,216) width 337: "this float text ignore this float text ignore this" 37 37 text run at (0,234) width 77: "float text " 38 text run at (7 7,234) width 308: "ignore this float text ignore this float text"38 text run at (76,234) width 309: "ignore this float text ignore this float text" 39 39 text run at (0,252) width 121: "ignore this float " 40 40 text run at (120,252) width 265: "text ignore this float text ignore this" 41 text run at (0,270) width 15 7: "float text ignore this "41 text run at (0,270) width 158: "float text ignore this " 42 42 text run at (157,270) width 228: "float text ignore this float text" 43 43 text run at (0,288) width 204: "ignore this float text ignore " -
trunk/LayoutTests/platform/gtk/css2.1/t1508-c527-font-00-b-expected.txt
r221911 r222843 8 8 text run at (0,0) width 636: "This text should be 13px Helvetica in small-caps and italicized. There should be a small gap between each line. " 9 9 RenderInline {SPAN} at (0,0) size 784x75 [color=#C0C0C0] 10 RenderText {#text} at (63 6,0) size 784x7511 text run at (63 6,0) width 132: "dummy text dummy text"10 RenderText {#text} at (635,0) size 784x75 11 text run at (635,0) width 133: "dummy text dummy text" 12 12 text run at (0,15) width 244: "dummy text dummy text dummy text dummy " 13 text run at (24 4,15) width 408: "text dummy text dummy text dummy text dummy text dummy text dummy "14 text run at (65 2,15) width 132: "text dummy text dummy"13 text run at (243,15) width 409: "text dummy text dummy text dummy text dummy text dummy text dummy " 14 text run at (651,15) width 133: "text dummy text dummy" 15 15 text run at (0,30) width 272: "text dummy text dummy text dummy text dummy " 16 16 text run at (272,30) width 408: "text dummy text dummy text dummy text dummy text dummy text dummy " 17 17 text run at (680,30) width 92: "text dummy text" 18 text run at (0,45) width 31 2: "dummy text dummy text dummy text dummy text dummy "19 text run at (312,45) width 40 8: "text dummy text dummy text dummy text dummy text dummy text dummy "20 text run at (720,45) width 64: "text dummy"21 text run at (0,60) width 3 40: "text dummy text dummy text dummy text dummy text dummy "22 text run at (3 40,60) width 364: "text dummy text dummy text dummy text dummy text dummy text"18 text run at (0,45) width 313: "dummy text dummy text dummy text dummy text dummy " 19 text run at (312,45) width 409: "text dummy text dummy text dummy text dummy text dummy text dummy " 20 text run at (720,45) width 25: "text" 21 text run at (0,60) width 380: "dummy text dummy text dummy text dummy text dummy text dummy " 22 text run at (380,60) width 364: "text dummy text dummy text dummy text dummy text dummy text" 23 23 RenderText {#text} at (0,0) size 0x0 -
trunk/LayoutTests/platform/gtk/css2.1/t1508-c527-font-06-b-expected.txt
r148798 r222843 9 9 text run at (0,44) width 121: "line spacing. " 10 10 RenderInline {SPAN} at (0,0) size 768x200 [color=#C0C0C0] 11 RenderText {#text} at (12 1,44) size 768x20012 text run at (12 1,44) width 521: "dummy text dummy text dummy text dummy text dummy text dummy "11 RenderText {#text} at (120,44) size 768x200 12 text run at (120,44) width 522: "dummy text dummy text dummy text dummy text dummy text dummy " 13 13 text run at (642,44) width 126: "text dummy text" 14 14 text run at (0,80) width 427: "dummy text dummy text dummy text dummy text dummy " -
trunk/LayoutTests/platform/gtk/css2.1/t1508-c527-font-07-b-expected.txt
r221911 r222843 5 5 RenderBody {BODY} at (8,18) size 769x672 [color=#000080] 6 6 RenderBlock {P} at (0,0) size 769x672 7 RenderText {#text} at (0,38) size 73 4x1168 text run at (0,38) width 73 4: "This text should be 18px sans-serif, in small-caps and italicized. The lines should be one inch"7 RenderText {#text} at (0,38) size 735x116 8 text run at (0,38) width 735: "This text should be 18px sans-serif, in small-caps and italicized. The lines should be one inch" 9 9 text run at (0,134) width 53: "apart. " 10 10 RenderInline {SPAN} at (0,0) size 753x500 [color=#C0C0C0] 11 RenderText {#text} at (5 3,134) size 753x50012 text run at (5 3,134) width 519: "dummy text dummy text dummy text dummy text dummy text dummy "13 text run at (57 2,134) width 181: "text dummy text dummy"11 RenderText {#text} at (52,134) size 753x500 12 text run at (52,134) width 520: "dummy text dummy text dummy text dummy text dummy text dummy " 13 text run at (571,134) width 182: "text dummy text dummy" 14 14 text run at (0,230) width 372: "text dummy text dummy text dummy text dummy " 15 15 text run at (372,230) width 367: "text dummy text dummy text dummy text dummy" -
trunk/LayoutTests/platform/gtk/css2.1/t1508-c527-font-10-c-expected.txt
r221911 r222843 7 7 RenderInline {SPAN} at (0,0) size 778x398 [color=#FFFFFF] [bgcolor=#000080] 8 8 RenderText {#text} at (0,17) size 748x74 9 text run at (0,17) width 48 5: "This text should be 18px sans-serif, in small-caps, italicized, "9 text run at (0,17) width 486: "This text should be 18px sans-serif, in small-caps, italicized, " 10 10 text run at (485,17) width 263: "and very light. There should be a" 11 11 text run at (0,71) width 251: "36px gap betwen each line. The " 12 text run at (251,71) width 45 1: "text should have a blue background, the gap should not. "12 text run at (251,71) width 452: "text should have a blue background, the gap should not. " 13 13 RenderInline {SPAN} at (0,0) size 778x344 [color=#0000FF] 14 14 RenderText {#text} at (702,71) size 778x344 15 text run at (702,71) width 49: "dummy"15 text run at (702,71) width 50: "dummy" 16 16 text run at (0,125) width 465: "text dummy text dummy text dummy text dummy text dummy " 17 17 text run at (465,125) width 313: "text dummy text dummy text dummy text" -
trunk/LayoutTests/platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-br-expected.txt
r222681 r222843 15 15 text run at (23,45) width 120 RTL: "\x{5D0}\x{5D9}\x{5DF} \x{5DC}\x{5D9} \x{5E9}\x{5DD}." 16 16 RenderBlock {PRE} at (0,212) size 784x0 17 selection start: position 6 of child 0 {#text} of child 1 {P} of child 3 {DIV} of body17 selection start: position 0 of child 1 {BR} of child 1 {P} of child 3 {DIV} of body 18 18 selection end: position 5 of child 2 {#text} of child 1 {P} of child 3 {DIV} of body -
trunk/LayoutTests/platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-p-expected.txt
r222681 r222843 15 15 text run at (0,45) width 120 RTL: "\x{5D0}\x{5D9}\x{5DF} \x{5DC}\x{5D9} \x{5E9}\x{5DD}." 16 16 RenderBlock {PRE} at (0,212) size 784x0 17 selection start: position 6of child 0 {#text} of child 1 {P} of child 3 {DIV} of body17 selection start: position 9 of child 0 {#text} of child 1 {P} of child 3 {DIV} of body 18 18 selection end: position 5 of child 0 {#text} of child 2 {P} of child 3 {DIV} of body -
trunk/LayoutTests/platform/gtk/editing/selection/vertical-rl-rtl-extend-line-forward-br-expected.txt
r222681 r222843 16 16 RenderBlock {PRE} at (0,212) size 784x0 17 17 selection start: position 5 of child 0 {#text} of child 1 {P} of child 3 {DIV} of body 18 selection end: position 7of child 2 {#text} of child 1 {P} of child 3 {DIV} of body18 selection end: position 9 of child 2 {#text} of child 1 {P} of child 3 {DIV} of body -
trunk/LayoutTests/platform/gtk/editing/selection/vertical-rl-rtl-extend-line-forward-p-expected.txt
r222681 r222843 16 16 RenderBlock {PRE} at (0,212) size 784x0 17 17 selection start: position 5 of child 0 {#text} of child 1 {P} of child 3 {DIV} of body 18 selection end: position 7of child 0 {#text} of child 2 {P} of child 3 {DIV} of body18 selection end: position 9 of child 0 {#text} of child 2 {P} of child 3 {DIV} of body -
trunk/LayoutTests/platform/gtk/fast/css/text-overflow-ellipsis-text-align-center-expected.txt
r222078 r222843 66 66 RenderText {#text} at (297,12) size 448x17 67 67 text run at (297,12) width 448: "ipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros." 68 layer at (8,518) size 310x20 clip at (9,519) size 308x18 scrollX 41 1 scrollWidth 71968 layer at (8,518) size 310x20 clip at (9,519) size 308x18 scrollX 413 scrollWidth 722 69 69 RenderBlock {DIV} at (0,510) size 310x21 [border: (1px solid #000000)] 70 RenderText {#text} at (-41 0,1) size 719x1771 text run at (-41 0,1) width 719 RTL override: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros."72 layer at (8,599) size 310x74 clip at (9,600) size 308x72 scrollX 41 1 scrollWidth 71970 RenderText {#text} at (-412,1) size 720x17 71 text run at (-412,1) width 719 RTL override: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros." 72 layer at (8,599) size 310x74 clip at (9,600) size 308x72 scrollX 413 scrollWidth 722 73 73 RenderBlock {DIV} at (0,591) size 310x75 [border: (1px solid #000000)] 74 RenderText {#text} at (-41 0,1) size 719x1775 text run at (-41 0,1) width 719 RTL override: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros."74 RenderText {#text} at (-412,1) size 720x17 75 text run at (-412,1) width 719 RTL override: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros." 76 76 RenderBR {BR} at (0,0) size 0x0 77 RenderText {#text} at (-40 0,19) size 709x1778 text run at (-40 0,19) width 709 RTL override: "orem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros."77 RenderText {#text} at (-401,19) size 709x17 78 text run at (-401,19) width 709 RTL override: "orem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros." 79 79 RenderBR {BR} at (0,0) size 0x0 80 RenderText {#text} at (-39 2,37) size 701x1781 text run at (-39 2,37) width 701 RTL override: "rem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros."80 RenderText {#text} at (-395,37) size 701x17 81 text run at (-395,37) width 701 RTL override: "rem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros." 82 82 RenderBR {BR} at (0,0) size 0x0 83 RenderText {#text} at (-38 7,55) size 696x1784 text run at (-38 7,55) width 696 RTL override: "em ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros."83 RenderText {#text} at (-388,55) size 697x17 84 text run at (-388,55) width 696 RTL override: "em ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros." 85 85 RenderBR {BR} at (0,0) size 0x0 86 layer at (8,734) size 310x31 clip at (9,735) size 308x29 scrollX 44 0 scrollWidth 74886 layer at (8,734) size 310x31 clip at (9,735) size 308x29 scrollX 443 scrollWidth 752 87 87 RenderBlock {DIV} at (0,725) size 310x32 [border: (1px solid #000000)] 88 RenderText {#text} at (12 8,12) size 181x1789 text run at (12 8,12) width 181RTL override: "Lorem ipsum dolor sit amet, "90 RenderImage {IMG} at ( 103,1) size 25x2591 RenderText {#text} at (-4 39,12) size 542x1792 text run at (-4 39,12) width 542 RTL override: " consectetur adipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros."88 RenderText {#text} at (124,12) size 182x17 89 text run at (124,12) width 182 RTL override: "Lorem ipsum dolor sit amet, " 90 RenderImage {IMG} at (99,1) size 26x25 91 RenderText {#text} at (-442,12) size 543x17 92 text run at (-442,12) width 542 RTL override: " consectetur adipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros." 93 93 layer at (8,825) size 310x31 clip at (9,826) size 308x29 scrollX 436 scrollWidth 744 94 94 RenderBlock {DIV} at (0,817) size 310x32 [border: (1px solid #000000)] -
trunk/LayoutTests/platform/gtk/fast/css/text-overflow-ellipsis-text-align-left-expected.txt
r222078 r222843 66 66 RenderText {#text} at (297,12) size 448x17 67 67 text run at (297,12) width 448: "ipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros." 68 layer at (8,518) size 310x20 clip at (9,519) size 308x18 scrollX 41 1 scrollWidth 71968 layer at (8,518) size 310x20 clip at (9,519) size 308x18 scrollX 416 scrollWidth 724 69 69 RenderBlock {DIV} at (0,510) size 310x21 [border: (1px solid #000000)] 70 RenderText {#text} at (-41 0,1) size 719x1771 text run at (-41 0,1) width 719 RTL override: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros."72 layer at (8,599) size 310x74 clip at (9,600) size 308x72 scrollX 41 1 scrollWidth 71970 RenderText {#text} at (-415,1) size 719x17 71 text run at (-415,1) width 719 RTL override: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros." 72 layer at (8,599) size 310x74 clip at (9,600) size 308x72 scrollX 416 scrollWidth 724 73 73 RenderBlock {DIV} at (0,591) size 310x75 [border: (1px solid #000000)] 74 RenderText {#text} at (-41 0,1) size 719x1775 text run at (-41 0,1) width 719 RTL override: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros."74 RenderText {#text} at (-415,1) size 719x17 75 text run at (-415,1) width 719 RTL override: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros." 76 76 RenderBR {BR} at (0,0) size 0x0 77 RenderText {#text} at (-40 0,19) size 709x1778 text run at (-40 0,19) width 709 RTL override: "orem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros."77 RenderText {#text} at (-402,19) size 709x17 78 text run at (-402,19) width 709 RTL override: "orem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros." 79 79 RenderBR {BR} at (0,0) size 0x0 80 RenderText {#text} at (-39 2,37) size 701x1781 text run at (-39 2,37) width 701 RTL override: "rem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros."80 RenderText {#text} at (-398,37) size 701x17 81 text run at (-398,37) width 701 RTL override: "rem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros." 82 82 RenderBR {BR} at (0,0) size 0x0 83 RenderText {#text} at (-3 87,55) size 696x1784 text run at (-3 87,55) width 696 RTL override: "em ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros."83 RenderText {#text} at (-390,55) size 696x17 84 text run at (-390,55) width 696 RTL override: "em ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros." 85 85 RenderBR {BR} at (0,0) size 0x0 86 layer at (8,734) size 310x31 clip at (9,735) size 308x29 scrollX 44 0 scrollWidth 74886 layer at (8,734) size 310x31 clip at (9,735) size 308x29 scrollX 447 scrollWidth 755 87 87 RenderBlock {DIV} at (0,725) size 310x32 [border: (1px solid #000000)] 88 RenderText {#text} at (12 8,12) size 181x1789 text run at (12 8,12) width 181 RTL override: "Lorem ipsum dolor sit amet, "90 RenderImage {IMG} at ( 103,1) size 25x2591 RenderText {#text} at (-4 39,12) size 542x1792 text run at (-4 39,12) width 542 RTL override: " consectetur adipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros."88 RenderText {#text} at (121,12) size 181x17 89 text run at (121,12) width 181 RTL override: "Lorem ipsum dolor sit amet, " 90 RenderImage {IMG} at (96,1) size 25x25 91 RenderText {#text} at (-446,12) size 542x17 92 text run at (-446,12) width 542 RTL override: " consectetur adipiscing elit. Vivamus vitae eros non libero faucibus sagittis sed ut eros." 93 93 layer at (8,825) size 310x31 clip at (9,826) size 308x29 scrollX 436 scrollWidth 744 94 94 RenderBlock {DIV} at (0,817) size 310x32 [border: (1px solid #000000)] -
trunk/LayoutTests/platform/gtk/fast/text/atsui-negative-spacing-features-expected.txt
r222681 r222843 24 24 RenderBlock {DIV} at (1,1) size 202x124 25 25 RenderBlock {DIV} at (0,0) size 202x38 [border: (1px solid #0000FF)] 26 RenderText {#text} at (45,1) size 17 8x3526 RenderText {#text} at (45,1) size 177x35 27 27 text run at (45,1) width 156 RTL: "\x{5D9}\x{5B0}\x{5D4}\x{5B4}\x{5D9}, \x{5D0}\x{5B8}\x{5D7}\x{5B4}\x{5D9}, \x{5DC}\x{5B0}\x{5DA}\x{5B8} \x{5E1}\x{5B5}\x{5E4}\x{5B6}\x{5E8} \x{5E9}\x{5C1}\x{5B0}\x{5DC}\x{5B7}\x{5D7}\x{5B0}\x{5EA}\x{5BC}\x{5B4}\x{5D9}\x{5D5}" 28 text run at (2 3,19) width 122 RTL: "\x{5E6}\x{5B0}\x{5DE}\x{5B4}\x{5D9}\x{5EA}\x{5D5}\x{5BC}\x{5EA} \x{5DC}\x{5B8}\x{5DA}\x{5B0} \x{5DE}\x{5B0}\x{5DB}\x{5B7}\x{5E8}\x{5B0}\x{5EA}\x{5BC}\x{5B4}\x{5D9}\x{5D5}."28 text run at (24,19) width 122 RTL: "\x{5E6}\x{5B0}\x{5DE}\x{5B4}\x{5D9}\x{5EA}\x{5D5}\x{5BC}\x{5EA} \x{5DC}\x{5B8}\x{5DA}\x{5B0} \x{5DE}\x{5B0}\x{5DB}\x{5B7}\x{5E8}\x{5B0}\x{5EA}\x{5BC}\x{5B4}\x{5D9}\x{5D5}." 29 29 text run at (145,19) width 56 RTL: "\x{5D5}\x{5BC}\x{5DE}\x{5B4}\x{5DE}\x{5B0}\x{5DB}\x{5BC}\x{5B6}\x{5E8}\x{5B6}\x{5EA} " 30 30 RenderBlock {DIV} at (0,43) size 202x38 [border: (1px solid #0000FF)] … … 41 41 RenderText {#text} at (9,1) size 192x35 42 42 text run at (9,1) width 192 RTL: "\x{5D9}\x{5B0}\x{5D4}\x{5B4}\x{5D9}, \x{5D0}\x{5B8}\x{5D7}\x{5B4}\x{5D9}, \x{5DC}\x{5B0}\x{5DA}\x{5B8} \x{5E1}\x{5B5}\x{5E4}\x{5B6}\x{5E8} \x{5E9}\x{5C1}\x{5B0}\x{5DC}\x{5B7}\x{5D7}\x{5B0}\x{5EA}\x{5BC}\x{5B4}\x{5D9}\x{5D5} \x{5D5}\x{5BC}\x{5DE}\x{5B4}\x{5DE}\x{5B0}\x{5DB}\x{5BC}\x{5B6}\x{5E8}\x{5B6}\x{5EA}" 43 text run at (9 2,19) width 109RTL: "\x{5E6}\x{5B0}\x{5DE}\x{5B4}\x{5D9}\x{5EA}\x{5D5}\x{5BC}\x{5EA} \x{5DC}\x{5B8}\x{5DA}\x{5B0} \x{5DE}\x{5B0}\x{5DB}\x{5B7}\x{5E8}\x{5B0}\x{5EA}\x{5BC}\x{5B4}\x{5D9}\x{5D5}."43 text run at (93,19) width 108 RTL: "\x{5E6}\x{5B0}\x{5DE}\x{5B4}\x{5D9}\x{5EA}\x{5D5}\x{5BC}\x{5EA} \x{5DC}\x{5B8}\x{5DA}\x{5B0} \x{5DE}\x{5B0}\x{5DB}\x{5B7}\x{5E8}\x{5B0}\x{5EA}\x{5BC}\x{5B4}\x{5D9}\x{5D5}." 44 44 RenderBlock {DIV} at (0,43) size 202x38 [border: (1px solid #0000FF)] 45 45 RenderText {#text} at (1,1) size 150x35 -
trunk/LayoutTests/platform/gtk/fast/text/atsui-pointtooffset-calls-cg-expected.txt
r222079 r222843 17 17 RenderText {#text} at (62,18) size 632x17 18 18 text run at (62,18) width 632: " by clicking the X and verifying that the correct caret position (13) is reported to the editing delegate." 19 caret: position 7of child 2 {#text} of body19 caret: position 13 of child 2 {#text} of body -
trunk/LayoutTests/platform/gtk/fast/text/atsui-rtl-override-selection-expected.txt
r222315 r222843 13 13 RenderText {#text} at (0,0) size 281x17 14 14 text run at (0,0) width 281: "\x{201C}remips\x{201D} should be highlighted in the above." 15 selection start: position 3of child 0 {#text} of child 3 {BDO} of body15 selection start: position 4 of child 0 {#text} of child 3 {BDO} of body 16 16 selection end: position 10 of child 0 {#text} of child 3 {BDO} of body -
trunk/LayoutTests/platform/gtk/fast/text/atsui-spacing-features-expected.txt
r222681 r222843 36 36 RenderBlock {DIV} at (1,1) size 202x178 37 37 RenderBlock {DIV} at (0,0) size 202x56 [border: (1px solid #0000FF)] 38 RenderText {#text} at (61,1) size 18 2x5338 RenderText {#text} at (61,1) size 181x53 39 39 text run at (61,1) width 140 RTL: "\x{5D9}\x{5B0}\x{5D4}\x{5B4}\x{5D9}, \x{5D0}\x{5B8}\x{5D7}\x{5B4}\x{5D9}, \x{5DC}\x{5B0}\x{5DA}\x{5B8} \x{5E1}\x{5B5}\x{5E4}\x{5B6}\x{5E8}" 40 text run at ( 19,19) width 50 RTL: "\x{5E6}\x{5B0}\x{5DE}\x{5B4}\x{5D9}\x{5EA}\x{5D5}\x{5BC}\x{5EA}"40 text run at (20,19) width 50 RTL: "\x{5E6}\x{5B0}\x{5DE}\x{5B4}\x{5D9}\x{5EA}\x{5D5}\x{5BC}\x{5EA}" 41 41 text run at (69,19) width 132 RTL: "\x{5E9}\x{5C1}\x{5B0}\x{5DC}\x{5B7}\x{5D7}\x{5B0}\x{5EA}\x{5BC}\x{5B4}\x{5D9}\x{5D5} \x{5D5}\x{5BC}\x{5DE}\x{5B4}\x{5DE}\x{5B0}\x{5DB}\x{5BC}\x{5B6}\x{5E8}\x{5B6}\x{5EA} " 42 42 text run at (119,37) width 82 RTL: "\x{5DC}\x{5B8}\x{5DA}\x{5B0} \x{5DE}\x{5B0}\x{5DB}\x{5B7}\x{5E8}\x{5B0}\x{5EA}\x{5BC}\x{5B4}\x{5D9}\x{5D5}." … … 76 76 RenderText {#text} at (1,1) size 200x35 77 77 text run at (1,1) width 200 RTL: "\x{5D9}\x{5B0}\x{5D4}\x{5B4}\x{5D9}, \x{5D0}\x{5B8}\x{5D7}\x{5B4}\x{5D9}, \x{5DC}\x{5B0}\x{5DA}\x{5B8} \x{5E1}\x{5B5}\x{5E4}\x{5B6}\x{5E8} \x{5E9}\x{5C1}\x{5B0}\x{5DC}\x{5B7}\x{5D7}\x{5B0}\x{5EA}\x{5BC}\x{5B4}\x{5D9}\x{5D5}" 78 text run at (1 7,19) width 126 RTL: "\x{5E6}\x{5B0}\x{5DE}\x{5B4}\x{5D9}\x{5EA}\x{5D5}\x{5BC}\x{5EA} \x{5DC}\x{5B8}\x{5DA}\x{5B0} \x{5DE}\x{5B0}\x{5DB}\x{5B7}\x{5E8}\x{5B0}\x{5EA}\x{5BC}\x{5B4}\x{5D9}\x{5D5}."78 text run at (18,19) width 126 RTL: "\x{5E6}\x{5B0}\x{5DE}\x{5B4}\x{5D9}\x{5EA}\x{5D5}\x{5BC}\x{5EA} \x{5DC}\x{5B8}\x{5DA}\x{5B0} \x{5DE}\x{5B0}\x{5DB}\x{5B7}\x{5E8}\x{5B0}\x{5EA}\x{5BC}\x{5B4}\x{5D9}\x{5D5}." 79 79 text run at (143,19) width 58 RTL: "\x{5D5}\x{5BC}\x{5DE}\x{5B4}\x{5DE}\x{5B0}\x{5DB}\x{5BC}\x{5B6}\x{5E8}\x{5B6}\x{5EA} " 80 80 RenderBlock {DIV} at (0,43) size 202x38 [border: (1px solid #0000FF)] -
trunk/LayoutTests/platform/gtk/fast/text/emphasis-expected.txt
r221725 r222843 32 32 RenderText {#text} at (3,70) size 111x26 33 33 text run at (3,70) width 111: "odio sa\x{300}pien" 34 RenderText {#text} at (11 4,70) size 338x6635 text run at (11 4,70) width 12: ", "36 text run at (12 6,70) width 215: "lobortis eu iaculis vel,"34 RenderText {#text} at (113,70) size 338x66 35 text run at (113,70) width 13: ", " 36 text run at (125,70) width 216: "lobortis eu iaculis vel," 37 37 text run at (3,110) width 211: "scelerisque nec dolor." 38 38 RenderBlock (floating) {DIV} at (8,164) size 366x154 [border: (3px solid #000000)] -
trunk/LayoutTests/platform/gtk/fast/text/international/bold-bengali-expected.txt
r221675 r222843 14 14 text run at (478,0) width 260: "There should be no missing-glyph boxes." 15 15 RenderBlock {P} at (0,86) size 784x18 16 RenderInline {B} at (0,0) size 25x1717 RenderText {#text} at (0,0) size 25x1718 text run at (0,0) width 25: "\x{9AC}\x{9BE}\x{982}\x{9B2}\x{9BE}"16 RenderInline {B} at (0,0) size 30x17 17 RenderText {#text} at (0,0) size 30x17 18 text run at (0,0) width 30: "\x{9AC}\x{9BE}\x{982}\x{9B2}\x{9BE}" 19 19 RenderBlock {P} at (0,120) size 784x0 20 20 RenderBlock {P} at (0,120) size 784x18 -
trunk/LayoutTests/platform/gtk/fast/text/international/hebrew-vowels-expected.txt
r222681 r222843 12 12 text run at (0,0) width 458: "The vowel (two vertical dots) should be centered beneath the main letter." 13 13 RenderBlock {DIV} at (0,86) size 784x91 14 RenderText {#text} at ( 57,1) size 66x8815 text run at ( 57,1) width 66RTL: "\x{5E1}\x{5B0} "16 RenderText {#text} at (0,1) size 57x8817 text run at (0,1) width 57RTL: "\x{5E9}\x{5B0}"14 RenderText {#text} at (33,1) size 44x88 15 text run at (33,1) width 44 RTL: "\x{5E1}\x{5B0} " 16 RenderText {#text} at (0,1) size 34x88 17 text run at (0,1) width 34 RTL: "\x{5E9}\x{5B0}" 18 18 RenderText {#text} at (0,0) size 0x0 19 19 RenderBlock {HR} at (0,185) size 784x2 [border: (1px inset #000000)] -
trunk/LayoutTests/platform/gtk/fast/text/international/thai-baht-space-expected.txt
r222079 r222843 14 14 text run at (0,18) width 576: "Two lines below have 4 Thai currency signs (U+0E3F) and all of them should be rendered." 15 15 RenderBlock {P} at (0,52) size 784x36 16 RenderText {#text} at (0,0) size 27 1x1717 text run at (0,0) width 27 1: "abc \x{E25}\x{E07}\x{E17}\x{E38}\x{E19}4000\x{E3F} \x{E23}\x{E31}\x{E1A}\x{E1B}\x{E23}\x{E30}\x{E01}\x{E31}\x{E19}\x{E23}\x{E32}\x{E22}\x{E44}\x{E14}\x{E49} 50000\x{E3F}/M"18 RenderBR {BR} at (271,14) size 0x019 RenderText {#text} at (0,18) size 27 1x1720 text run at (0,18) width 27 1: "abc \x{E25}\x{E07}\x{E17}\x{E38}\x{E19}4000 \x{E3F}\x{E23}\x{E31}\x{E1A}\x{E1B}\x{E23}\x{E30}\x{E01}\x{E31}\x{E19}\x{E23}\x{E32}\x{E22}\x{E44}\x{E14}\x{E49} 50000\x{E3F}/M"16 RenderText {#text} at (0,0) size 272x17 17 text run at (0,0) width 272: "abc \x{E25}\x{E07}\x{E17}\x{E38}\x{E19}4000\x{E3F} \x{E23}\x{E31}\x{E1A}\x{E1B}\x{E23}\x{E30}\x{E01}\x{E31}\x{E19}\x{E23}\x{E32}\x{E22}\x{E44}\x{E14}\x{E49} 50000\x{E3F}/M" 18 RenderBR {BR} at (271,14) size 1x0 19 RenderText {#text} at (0,18) size 272x17 20 text run at (0,18) width 272: "abc \x{E25}\x{E07}\x{E17}\x{E38}\x{E19}4000 \x{E3F}\x{E23}\x{E31}\x{E1A}\x{E1B}\x{E23}\x{E30}\x{E01}\x{E31}\x{E19}\x{E23}\x{E32}\x{E22}\x{E44}\x{E14}\x{E49} 50000\x{E3F}/M" -
trunk/LayoutTests/platform/gtk/fast/text/international/thai-line-breaks-expected.txt
r221675 r222843 15 15 text run at (0,0) width 18: "\x{E1A}\x{E17}" 16 16 text run at (0,18) width 41: "\x{E17}\x{E35}\x{E48}\x{E51}\x{E1E}\x{E32}\x{E22}\x{E38}" 17 text run at (0,36) width 49: "\x{E44}\x{E0B}\x{E42}\x{E04}\x{E25}\x{E19}"17 text run at (0,36) width 50: "\x{E44}\x{E0B}\x{E42}\x{E04}\x{E25}\x{E19}" 18 18 text run at (0,54) width 16: "\x{E42}\x{E14}" 19 19 text run at (0,72) width 21: "\x{E42}\x{E23}\x{E18}\x{E35}" … … 21 21 text run at (0,108) width 16: "\x{E2D}\x{E22}\x{E39}\x{E48}" 22 22 text run at (0,126) width 54: "\x{E17}\x{E48}\x{E32}\x{E21}\x{E01}\x{E25}\x{E32}\x{E07}" 23 text run at (0,144) width 4 2: "\x{E17}\x{E38}\x{E48}\x{E07}\x{E43}\x{E2B}\x{E0D}\x{E48}"23 text run at (0,144) width 43: "\x{E17}\x{E38}\x{E48}\x{E07}\x{E43}\x{E2B}\x{E0D}\x{E48}" 24 24 text run at (0,162) width 17: "\x{E43}\x{E19}" 25 25 text run at (0,180) width 44: "\x{E41}\x{E04}\x{E19}\x{E0B}\x{E31}\x{E2A}" … … 28 28 text run at (0,234) width 13: "\x{E40}\x{E2E}" 29 29 text run at (0,252) width 17: "\x{E19}\x{E23}\x{E35}" 30 text run at (0,270) width 3 5: "\x{E0A}\x{E32}\x{E27}\x{E44}\x{E23}\x{E48}"30 text run at (0,270) width 36: "\x{E0A}\x{E32}\x{E27}\x{E44}\x{E23}\x{E48}" 31 31 text run at (0,288) width 22: "\x{E41}\x{E25}\x{E30}" 32 32 text run at (0,306) width 15: "\x{E1B}\x{E49}\x{E32}" 33 33 text run at (0,324) width 22: "\x{E40}\x{E2D}\x{E47}\x{E21}" 34 34 text run at (0,342) width 37: "\x{E20}\x{E23}\x{E23}\x{E22}\x{E32}" 35 text run at (0,360) width 3 5: "\x{E0A}\x{E32}\x{E27}\x{E44}\x{E23}\x{E48}"35 text run at (0,360) width 36: "\x{E0A}\x{E32}\x{E27}\x{E44}\x{E23}\x{E48}" 36 36 text run at (0,378) width 25: "\x{E1A}\x{E49}\x{E32}\x{E19}" 37 37 text run at (0,396) width 23: "\x{E02}\x{E2D}\x{E07}" … … 142 142 text run at (0,2286) width 14: "\x{E27}\x{E48}\x{E32}" 143 143 text run at (0,2304) width 38: "\"\x{E42}\x{E1E}\x{E23}\x{E07}" 144 text run at (0,2322) width 5 6: "\x{E44}\x{E0B}\x{E42}\x{E04}\x{E25}\x{E19}\""144 text run at (0,2322) width 57: "\x{E44}\x{E0B}\x{E42}\x{E04}\x{E25}\x{E19}\"" 145 145 text run at (0,2340) width 24: "\x{E40}\x{E1B}\x{E47}\x{E19}" 146 146 text run at (0,2358) width 9: "\x{E17}\x{E35}\x{E48}" … … 179 179 text run at (0,2952) width 20: "\x{E19}\x{E31}\x{E49}\x{E19}" 180 180 text run at (0,2970) width 9: "\x{E21}\x{E35}" 181 text run at (0,2988) width 3 4: "\x{E1A}\x{E31}\x{E19}\x{E44}\x{E14}"181 text run at (0,2988) width 35: "\x{E1A}\x{E31}\x{E19}\x{E44}\x{E14}" 182 182 text run at (0,3006) width 15: "\x{E25}\x{E07}" 183 183 text run at (0,3024) width 16: "\x{E44}\x{E1B}" … … 213 213 text run at (0,3564) width 25: "\x{E44}\x{E21}\x{E48}\x{E21}\x{E35}" 214 214 text run at (0,3582) width 17: "\x{E41}\x{E21}\x{E49}" 215 text run at (0,3600) width 3 4: "\x{E15}\x{E49}\x{E19}\x{E44}\x{E21}\x{E49}"215 text run at (0,3600) width 35: "\x{E15}\x{E49}\x{E19}\x{E44}\x{E21}\x{E49}" 216 216 text run at (0,3618) width 17: "\x{E2A}\x{E31}\x{E01}" 217 217 text run at (0,3636) width 19: "\x{E15}\x{E49}\x{E19}" … … 277 277 text run at (0,4716) width 24: "\x{E40}\x{E2B}\x{E47}\x{E19}" 278 278 text run at (0,4734) width 16: "\x{E2D}\x{E22}\x{E39}\x{E48}" 279 text run at (0,4752) width 3 2: "\x{E17}\x{E31}\x{E48}\x{E27}\x{E44}\x{E1B}"279 text run at (0,4752) width 33: "\x{E17}\x{E31}\x{E48}\x{E27}\x{E44}\x{E1B}" 280 280 text run at (0,4770) width 23: "\x{E04}\x{E23}\x{E31}\x{E49}\x{E07}" 281 281 text run at (0,4788) width 26: "\x{E2B}\x{E19}\x{E36}\x{E48}\x{E07}" … … 575 575 text run at (0,10080) width 30: "\x{E40}\x{E2B}\x{E25}\x{E37}\x{E2D}" 576 576 text run at (0,10098) width 24: "\x{E40}\x{E01}\x{E34}\x{E19}" 577 text run at (0,10116) width 4 2: "\x{E2D}\x{E22}\x{E48}\x{E32}\x{E07}\x{E44}\x{E23}"577 text run at (0,10116) width 43: "\x{E2D}\x{E22}\x{E48}\x{E32}\x{E07}\x{E44}\x{E23}" 578 578 text run at (0,10134) width 33: "\x{E01}\x{E47}\x{E15}\x{E32}\x{E21}" 579 579 text run at (0,10152) width 18: "\x{E27}\x{E31}\x{E19}" … … 590 590 text run at (0,10350) width 16: "\x{E2D}\x{E22}\x{E39}\x{E48}" 591 591 text run at (0,10368) width 9: "\x{E17}\x{E35}\x{E48}" 592 text run at (0,10386) width 3 4: "\x{E1A}\x{E31}\x{E19}\x{E44}\x{E14}"592 text run at (0,10386) width 35: "\x{E1A}\x{E31}\x{E19}\x{E44}\x{E14}" 593 593 text run at (0,10404) width 31: "\x{E1B}\x{E23}\x{E30}\x{E15}\x{E39}" 594 594 text run at (0,10422) width 22: "\x{E41}\x{E25}\x{E30}" … … 698 698 text run at (0,12294) width 17: "\x{E25}\x{E38}\x{E01}" 699 699 text run at (0,12312) width 18: "\x{E02}\x{E36}\x{E49}\x{E19}" 700 text run at (0,12330) width 3 4: "\x{E17}\x{E31}\x{E19}\x{E43}\x{E14}"700 text run at (0,12330) width 35: "\x{E17}\x{E31}\x{E19}\x{E43}\x{E14}" 701 701 text run at (0,12348) width 24: "\"\x{E25}\x{E21}" 702 text run at (0,12366) width 49: "\x{E44}\x{E0B}\x{E42}\x{E04}\x{E25}\x{E19}"702 text run at (0,12366) width 50: "\x{E44}\x{E0B}\x{E42}\x{E04}\x{E25}\x{E19}" 703 703 text run at (0,12384) width 15: "\x{E21}\x{E32}" 704 704 text run at (0,12402) width 29: "\x{E40}\x{E2D}\x{E47}\x{E21}\"" … … 795 795 text run at (0,14040) width 23: "\x{E2B}\x{E32}\x{E22}" 796 796 text run at (0,14058) width 19: "\x{E1B}\x{E35}\x{E19}" 797 text run at (0,14076) width 3 4: "\x{E1A}\x{E31}\x{E19}\x{E44}\x{E14}"797 text run at (0,14076) width 35: "\x{E1A}\x{E31}\x{E19}\x{E44}\x{E14}" 798 798 text run at (0,14094) width 16: "\x{E44}\x{E21}\x{E49}" 799 799 text run at (0,14112) width 15: "\x{E25}\x{E07}" … … 900 900 text run at (0,15930) width 23: "\x{E02}\x{E2D}\x{E07}" 901 901 text run at (0,15948) width 24: "\x{E1E}\x{E32}\x{E22}\x{E38}" 902 text run at (0,15966) width 49: "\x{E44}\x{E0B}\x{E42}\x{E04}\x{E25}\x{E19}"902 text run at (0,15966) width 50: "\x{E44}\x{E0B}\x{E42}\x{E04}\x{E25}\x{E19}" 903 903 text run at (0,15984) width 24: "\x{E15}\x{E32}\x{E21}" 904 904 text run at (0,16002) width 27: "\x{E1B}\x{E01}\x{E15}\x{E34}" … … 906 906 text run at (0,16038) width 30: "\x{E01}\x{E25}\x{E32}\x{E07}" 907 907 text run at (0,16056) width 24: "\x{E1E}\x{E32}\x{E22}\x{E38}" 908 text run at (0,16074) width 49: "\x{E44}\x{E0B}\x{E42}\x{E04}\x{E25}\x{E19}"908 text run at (0,16074) width 50: "\x{E44}\x{E0B}\x{E42}\x{E04}\x{E25}\x{E19}" 909 909 text run at (0,16092) width 38: "\x{E2D}\x{E32}\x{E01}\x{E32}\x{E28}" 910 910 text run at (0,16110) width 14: "\x{E08}\x{E30}" … … 935 935 text run at (0,16560) width 23: "\x{E02}\x{E2D}\x{E07}" 936 936 text run at (0,16578) width 24: "\x{E1E}\x{E32}\x{E22}\x{E38}" 937 text run at (0,16596) width 49: "\x{E44}\x{E0B}\x{E42}\x{E04}\x{E25}\x{E19}"937 text run at (0,16596) width 50: "\x{E44}\x{E0B}\x{E42}\x{E04}\x{E25}\x{E19}" 938 938 text run at (0,16614) width 22: "\x{E41}\x{E25}\x{E30}" 939 939 text run at (0,16632) width 23: "\x{E08}\x{E32}\x{E01}" … … 1016 1016 text run at (0,18018) width 16: "\x{E42}\x{E15}\x{E49}" 1017 1017 text run at (0,18036) width 16: "\x{E44}\x{E21}\x{E48}" 1018 text run at (0,18054) width 39: "\x{E0A}\x{E2D}\x{E1A}\x{E43}\x{E08}"1018 text run at (0,18054) width 40: "\x{E0A}\x{E2D}\x{E1A}\x{E43}\x{E08}" 1019 1019 text run at (0,18072) width 21: "\x{E40}\x{E25}\x{E22}" 1020 1020 text run at (0,18090) width 19: "\x{E21}\x{E31}\x{E19}" … … 1146 1146 text run at (0,20358) width 49: "\x{E2D}\x{E38}\x{E1A}\x{E31}\x{E15}\x{E34}\x{E40}\x{E2B}\x{E15}\x{E38}" 1147 1147 text run at (0,20376) width 17: "\x{E2D}\x{E35}\x{E01}" 1148 text run at (0,20394) width 3 8: "\x{E0A}\x{E31}\x{E48}\x{E27}\x{E42}\x{E21}\x{E07}"1148 text run at (0,20394) width 39: "\x{E0A}\x{E31}\x{E48}\x{E27}\x{E42}\x{E21}\x{E07}" 1149 1149 text run at (0,20412) width 24: "\x{E41}\x{E25}\x{E49}\x{E27}" 1150 text run at (0,20430) width 3 8: "\x{E0A}\x{E31}\x{E48}\x{E27}\x{E42}\x{E21}\x{E07}"1150 text run at (0,20430) width 39: "\x{E0A}\x{E31}\x{E48}\x{E27}\x{E42}\x{E21}\x{E07}" 1151 1151 text run at (0,20448) width 19: "\x{E40}\x{E25}\x{E48}\x{E32}" 1152 1152 text run at (0,20466) width 25: "\x{E1C}\x{E48}\x{E32}\x{E19}" … … 1202 1202 text run at (0,21366) width 17: "\x{E41}\x{E15}\x{E48}" 1203 1203 text run at (0,21384) width 31: "\x{E2B}\x{E25}\x{E32}\x{E22}" 1204 text run at (0,21402) width 3 8: "\x{E0A}\x{E31}\x{E48}\x{E27}\x{E42}\x{E21}\x{E07}"1204 text run at (0,21402) width 39: "\x{E0A}\x{E31}\x{E48}\x{E27}\x{E42}\x{E21}\x{E07}" 1205 1205 text run at (0,21420) width 25: "\x{E1C}\x{E48}\x{E32}\x{E19}" 1206 1206 text run at (0,21438) width 16: "\x{E44}\x{E1B}" … … 1227 1227 text run at (0,21816) width 14: "\x{E08}\x{E30}" 1228 1228 text run at (0,21834) width 24: "\x{E40}\x{E1B}\x{E47}\x{E19}" 1229 text run at (0,21852) width 4 2: "\x{E2D}\x{E22}\x{E48}\x{E32}\x{E07}\x{E44}\x{E23}"1229 text run at (0,21852) width 43: "\x{E2D}\x{E22}\x{E48}\x{E32}\x{E07}\x{E44}\x{E23}" 1230 1230 text run at (0,21870) width 17: "\x{E43}\x{E19}" 1231 1231 text run at (0,21888) width 26: "\x{E17}\x{E35}\x{E48}\x{E2A}\x{E38}\x{E14}" … … 1288 1288 text run at (0,36) width 8: "\x{E51}" 1289 1289 text run at (0,54) width 24: "\x{E1E}\x{E32}\x{E22}\x{E38}" 1290 text run at (0,72) width 49: "\x{E44}\x{E0B}\x{E42}\x{E04}\x{E25}\x{E19}"1290 text run at (0,72) width 50: "\x{E44}\x{E0B}\x{E42}\x{E04}\x{E25}\x{E19}" 1291 1291 text run at (0,90) width 16: "\x{E42}\x{E14}" 1292 1292 text run at (0,108) width 21: "\x{E42}\x{E23}\x{E18}\x{E35}" … … 1309 1309 text run at (0,414) width 22: "\x{E40}\x{E2D}\x{E47}\x{E21}" 1310 1310 text run at (0,432) width 37: "\x{E20}\x{E23}\x{E23}\x{E22}\x{E32}" 1311 text run at (0,450) width 3 5: "\x{E0A}\x{E32}\x{E27}\x{E44}\x{E23}\x{E48}"1311 text run at (0,450) width 36: "\x{E0A}\x{E32}\x{E27}\x{E44}\x{E23}\x{E48}" 1312 1312 text run at (0,468) width 25: "\x{E1A}\x{E49}\x{E32}\x{E19}" 1313 1313 text run at (0,486) width 23: "\x{E02}\x{E2D}\x{E07}" … … 1420 1420 text run at (0,2412) width 7: "\"" 1421 1421 text run at (0,2430) width 31: "\x{E42}\x{E1E}\x{E23}\x{E07}" 1422 text run at (0,2448) width 49: "\x{E44}\x{E0B}\x{E42}\x{E04}\x{E25}\x{E19}"1422 text run at (0,2448) width 50: "\x{E44}\x{E0B}\x{E42}\x{E04}\x{E25}\x{E19}" 1423 1423 text run at (0,2466) width 7: "\"" 1424 1424 text run at (0,2484) width 24: "\x{E40}\x{E1B}\x{E47}\x{E19}" … … 1462 1462 text run at (0,3168) width 20: "\x{E19}\x{E31}\x{E49}\x{E19}" 1463 1463 text run at (0,3186) width 9: "\x{E21}\x{E35}" 1464 text run at (0,3204) width 3 4: "\x{E1A}\x{E31}\x{E19}\x{E44}\x{E14}"1464 text run at (0,3204) width 35: "\x{E1A}\x{E31}\x{E19}\x{E44}\x{E14}" 1465 1465 text run at (0,3222) width 15: "\x{E25}\x{E07}" 1466 1466 text run at (0,3240) width 16: "\x{E44}\x{E1B}" … … 1500 1500 text run at (0,3852) width 9: "\x{E21}\x{E35}" 1501 1501 text run at (0,3870) width 17: "\x{E41}\x{E21}\x{E49}" 1502 text run at (0,3888) width 3 4: "\x{E15}\x{E49}\x{E19}\x{E44}\x{E21}\x{E49}"1502 text run at (0,3888) width 35: "\x{E15}\x{E49}\x{E19}\x{E44}\x{E21}\x{E49}" 1503 1503 text run at (0,3906) width 17: "\x{E2A}\x{E31}\x{E01}" 1504 1504 text run at (0,3924) width 19: "\x{E15}\x{E49}\x{E19}" … … 1878 1878 text run at (0,10656) width 30: "\x{E40}\x{E2B}\x{E25}\x{E37}\x{E2D}" 1879 1879 text run at (0,10674) width 24: "\x{E40}\x{E01}\x{E34}\x{E19}" 1880 text run at (0,10692) width 4 2: "\x{E2D}\x{E22}\x{E48}\x{E32}\x{E07}\x{E44}\x{E23}"1880 text run at (0,10692) width 43: "\x{E2D}\x{E22}\x{E48}\x{E32}\x{E07}\x{E44}\x{E23}" 1881 1881 text run at (0,10710) width 9: "\x{E01}\x{E47}" 1882 1882 text run at (0,10728) width 24: "\x{E15}\x{E32}\x{E21}" … … 1894 1894 text run at (0,10944) width 16: "\x{E2D}\x{E22}\x{E39}\x{E48}" 1895 1895 text run at (0,10962) width 9: "\x{E17}\x{E35}\x{E48}" 1896 text run at (0,10980) width 3 4: "\x{E1A}\x{E31}\x{E19}\x{E44}\x{E14}"1896 text run at (0,10980) width 35: "\x{E1A}\x{E31}\x{E19}\x{E44}\x{E14}" 1897 1897 text run at (0,10998) width 31: "\x{E1B}\x{E23}\x{E30}\x{E15}\x{E39}" 1898 1898 text run at (0,11016) width 22: "\x{E41}\x{E25}\x{E30}" … … 2007 2007 text run at (0,12978) width 7: "\"" 2008 2008 text run at (0,12996) width 17: "\x{E25}\x{E21}" 2009 text run at (0,13014) width 49: "\x{E44}\x{E0B}\x{E42}\x{E04}\x{E25}\x{E19}"2009 text run at (0,13014) width 50: "\x{E44}\x{E0B}\x{E42}\x{E04}\x{E25}\x{E19}" 2010 2010 text run at (0,13032) width 15: "\x{E21}\x{E32}" 2011 2011 text run at (0,13050) width 22: "\x{E40}\x{E2D}\x{E47}\x{E21}" … … 2110 2110 text run at (0,14832) width 23: "\x{E2B}\x{E32}\x{E22}" 2111 2111 text run at (0,14850) width 19: "\x{E1B}\x{E35}\x{E19}" 2112 text run at (0,14868) width 3 4: "\x{E1A}\x{E31}\x{E19}\x{E44}\x{E14}"2112 text run at (0,14868) width 35: "\x{E1A}\x{E31}\x{E19}\x{E44}\x{E14}" 2113 2113 text run at (0,14886) width 16: "\x{E44}\x{E21}\x{E49}" 2114 2114 text run at (0,14904) width 15: "\x{E25}\x{E07}" … … 2221 2221 text run at (0,16830) width 23: "\x{E02}\x{E2D}\x{E07}" 2222 2222 text run at (0,16848) width 24: "\x{E1E}\x{E32}\x{E22}\x{E38}" 2223 text run at (0,16866) width 49: "\x{E44}\x{E0B}\x{E42}\x{E04}\x{E25}\x{E19}"2223 text run at (0,16866) width 50: "\x{E44}\x{E0B}\x{E42}\x{E04}\x{E25}\x{E19}" 2224 2224 text run at (0,16884) width 24: "\x{E15}\x{E32}\x{E21}" 2225 2225 text run at (0,16902) width 27: "\x{E1B}\x{E01}\x{E15}\x{E34}" … … 2227 2227 text run at (0,16938) width 30: "\x{E01}\x{E25}\x{E32}\x{E07}" 2228 2228 text run at (0,16956) width 24: "\x{E1E}\x{E32}\x{E22}\x{E38}" 2229 text run at (0,16974) width 49: "\x{E44}\x{E0B}\x{E42}\x{E04}\x{E25}\x{E19}"2229 text run at (0,16974) width 50: "\x{E44}\x{E0B}\x{E42}\x{E04}\x{E25}\x{E19}" 2230 2230 text run at (0,16992) width 38: "\x{E2D}\x{E32}\x{E01}\x{E32}\x{E28}" 2231 2231 text run at (0,17010) width 14: "\x{E08}\x{E30}" … … 2258 2258 text run at (0,17496) width 23: "\x{E02}\x{E2D}\x{E07}" 2259 2259 text run at (0,17514) width 24: "\x{E1E}\x{E32}\x{E22}\x{E38}" 2260 text run at (0,17532) width 49: "\x{E44}\x{E0B}\x{E42}\x{E04}\x{E25}\x{E19}"2260 text run at (0,17532) width 50: "\x{E44}\x{E0B}\x{E42}\x{E04}\x{E25}\x{E19}" 2261 2261 text run at (0,17550) width 22: "\x{E41}\x{E25}\x{E30}" 2262 2262 text run at (0,17568) width 23: "\x{E08}\x{E32}\x{E01}" … … 2477 2477 text run at (0,21438) width 49: "\x{E2D}\x{E38}\x{E1A}\x{E31}\x{E15}\x{E34}\x{E40}\x{E2B}\x{E15}\x{E38}" 2478 2478 text run at (0,21456) width 17: "\x{E2D}\x{E35}\x{E01}" 2479 text run at (0,21474) width 3 8: "\x{E0A}\x{E31}\x{E48}\x{E27}\x{E42}\x{E21}\x{E07}"2479 text run at (0,21474) width 39: "\x{E0A}\x{E31}\x{E48}\x{E27}\x{E42}\x{E21}\x{E07}" 2480 2480 text run at (0,21492) width 24: "\x{E41}\x{E25}\x{E49}\x{E27}" 2481 text run at (0,21510) width 3 8: "\x{E0A}\x{E31}\x{E48}\x{E27}\x{E42}\x{E21}\x{E07}"2481 text run at (0,21510) width 39: "\x{E0A}\x{E31}\x{E48}\x{E27}\x{E42}\x{E21}\x{E07}" 2482 2482 text run at (0,21528) width 19: "\x{E40}\x{E25}\x{E48}\x{E32}" 2483 2483 text run at (0,21546) width 25: "\x{E1C}\x{E48}\x{E32}\x{E19}" … … 2535 2535 text run at (0,22482) width 17: "\x{E41}\x{E15}\x{E48}" 2536 2536 text run at (0,22500) width 31: "\x{E2B}\x{E25}\x{E32}\x{E22}" 2537 text run at (0,22518) width 3 8: "\x{E0A}\x{E31}\x{E48}\x{E27}\x{E42}\x{E21}\x{E07}"2537 text run at (0,22518) width 39: "\x{E0A}\x{E31}\x{E48}\x{E27}\x{E42}\x{E21}\x{E07}" 2538 2538 text run at (0,22536) width 25: "\x{E1C}\x{E48}\x{E32}\x{E19}" 2539 2539 text run at (0,22554) width 16: "\x{E44}\x{E1B}" … … 2561 2561 text run at (0,22950) width 14: "\x{E08}\x{E30}" 2562 2562 text run at (0,22968) width 24: "\x{E40}\x{E1B}\x{E47}\x{E19}" 2563 text run at (0,22986) width 4 2: "\x{E2D}\x{E22}\x{E48}\x{E32}\x{E07}\x{E44}\x{E23}"2563 text run at (0,22986) width 43: "\x{E2D}\x{E22}\x{E48}\x{E32}\x{E07}\x{E44}\x{E23}" 2564 2564 text run at (0,23004) width 17: "\x{E43}\x{E19}" 2565 2565 text run at (0,23022) width 9: "\x{E17}\x{E35}\x{E48}" -
trunk/LayoutTests/platform/gtk/svg/W3C-I18N/g-dirLTR-ubNone-expected.txt
r221676 r222843 7 7 RenderSVGText {text} at (91,133) size 278x21 contains 1 chunk(s) 8 8 RenderSVGInlineText {#text} at (0,0) size 278x21 9 chunk 1 (middle anchor) text run 1 at (91.4 0,150.00) startOffset 0 endOffset 4 width 45.00: "W3C "10 chunk 1 (middle anchor) text run 1 at (136.4 0,150.00) startOffset 0 endOffset 12 width 100.20 RTL: "\x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644}"11 chunk 1 (middle anchor) text run 1 at (236.6 0,150.00) startOffset 0 endOffset 15 width 132.00: " dirLTR ubNone!"9 chunk 1 (middle anchor) text run 1 at (91.47,150.00) startOffset 0 endOffset 4 width 45.00: "W3C " 10 chunk 1 (middle anchor) text run 1 at (136.47,150.00) startOffset 0 endOffset 12 width 100.20 RTL: "\x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644}" 11 chunk 1 (middle anchor) text run 1 at (236.67,150.00) startOffset 0 endOffset 15 width 131.86: " dirLTR ubNone!" 12 12 RenderSVGText {text} at (20,170) size 86x13 contains 1 chunk(s) 13 13 RenderSVGInlineText {#text} at (0,0) size 86x12 -
trunk/LayoutTests/platform/gtk/svg/W3C-I18N/g-dirLTR-ubOverride-expected.txt
r221676 r222843 7 7 RenderSVGText {text} at (78,133) size 304x21 contains 1 chunk(s) 8 8 RenderSVGInlineText {#text} at (0,0) size 303x21 9 chunk 1 (middle anchor) text run 1 at (78.5 0,150.00) startOffset 0 endOffset 4 width 45.00: "W3C "10 chunk 1 (middle anchor) text run 1 at (123.5 0,150.00) startOffset 0 endOffset 12 width 100.20 RTL: "\x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644}"11 chunk 1 (middle anchor) text run 1 at (223.7 0,150.00) startOffset 0 endOffset 19 width 157.80: " dirLTR ubOverride!"9 chunk 1 (middle anchor) text run 1 at (78.57,150.00) startOffset 0 endOffset 4 width 45.00: "W3C " 10 chunk 1 (middle anchor) text run 1 at (123.57,150.00) startOffset 0 endOffset 12 width 100.20 RTL: "\x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644}" 11 chunk 1 (middle anchor) text run 1 at (223.77,150.00) startOffset 0 endOffset 19 width 157.66: " dirLTR ubOverride!" 12 12 RenderSVGText {text} at (20,170) size 86x13 contains 1 chunk(s) 13 13 RenderSVGInlineText {#text} at (0,0) size 86x12 -
trunk/LayoutTests/platform/gtk/svg/W3C-I18N/g-dirRTL-ubNone-expected.txt
r222127 r222843 7 7 RenderSVGText {text} at (91,133) size 278x21 contains 1 chunk(s) 8 8 RenderSVGInlineText {#text} at (0,0) size 278x21 9 chunk 1 (middle anchor) text run 1 at (91. 40,150.00) startOffset 0 endOffset 1 width 4.80 RTL: "!"10 chunk 1 (middle anchor) text run 1 at (96. 20,150.00) startOffset 0 endOffset 13 width 122.40: "dirRTL ubNone"11 chunk 1 (middle anchor) text run 1 at (218. 60,150.00) startOffset 0 endOffset 14 width 109.80 RTL: " \x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644} "12 chunk 1 (middle anchor) text run 1 at (328. 40,150.00) startOffset 0 endOffset 3 width 40.20: "W3C"9 chunk 1 (middle anchor) text run 1 at (91.30,150.00) startOffset 0 endOffset 1 width 4.80 RTL: "!" 10 chunk 1 (middle anchor) text run 1 at (96.10,150.00) startOffset 0 endOffset 13 width 122.61: "dirRTL ubNone" 11 chunk 1 (middle anchor) text run 1 at (218.70,150.00) startOffset 0 endOffset 14 width 109.80 RTL: " \x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644} " 12 chunk 1 (middle anchor) text run 1 at (328.50,150.00) startOffset 0 endOffset 3 width 40.20: "W3C" 13 13 RenderSVGText {text} at (20,170) size 86x13 contains 1 chunk(s) 14 14 RenderSVGInlineText {#text} at (0,0) size 86x12 -
trunk/LayoutTests/platform/gtk/svg/W3C-I18N/g-dirRTL-ubOverride-expected.txt
r222127 r222843 4 4 RenderSVGRoot {svg} at (0,0) size 800x600 5 5 RenderSVGContainer {g} at (33,222) size 651x143 6 RenderSVGContainer {g} at (130,222) size 50 6x356 RenderSVGContainer {g} at (130,222) size 507x35 7 7 RenderSVGText {text} at (78,133) size 304x21 contains 1 chunk(s) 8 RenderSVGInlineText {#text} at (0,0) size 30 3x219 chunk 1 (middle anchor) text run 1 at (78. 50,150.00) startOffset 0 endOffset 1 width 4.80 RTL: "!"10 chunk 1 (middle anchor) text run 1 at (83. 30,150.00) startOffset 0 endOffset 17 width 148.20: "dirRTL ubOverride"11 chunk 1 (middle anchor) text run 1 at (231. 50,150.00) startOffset 0 endOffset 14 width 109.80 RTL: " \x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644} "12 chunk 1 (middle anchor) text run 1 at (341. 30,150.00) startOffset 0 endOffset 3 width 40.20: "W3C"8 RenderSVGInlineText {#text} at (0,0) size 304x21 9 chunk 1 (middle anchor) text run 1 at (78.40,150.00) startOffset 0 endOffset 1 width 4.80 RTL: "!" 10 chunk 1 (middle anchor) text run 1 at (83.20,150.00) startOffset 0 endOffset 17 width 148.41: "dirRTL ubOverride" 11 chunk 1 (middle anchor) text run 1 at (231.60,150.00) startOffset 0 endOffset 14 width 109.80 RTL: " \x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644} " 12 chunk 1 (middle anchor) text run 1 at (341.40,150.00) startOffset 0 endOffset 3 width 40.20: "W3C" 13 13 RenderSVGText {text} at (20,170) size 86x13 contains 1 chunk(s) 14 14 RenderSVGInlineText {#text} at (0,0) size 86x12 -
trunk/LayoutTests/platform/gtk/svg/W3C-I18N/text-dirLTR-ubNone-expected.txt
r221676 r222843 6 6 RenderSVGText {text} at (91,133) size 278x21 contains 1 chunk(s) 7 7 RenderSVGInlineText {#text} at (0,0) size 278x21 8 chunk 1 (middle anchor) text run 1 at (91.4 0,150.00) startOffset 0 endOffset 4 width 45.00: "W3C "9 chunk 1 (middle anchor) text run 1 at (136.4 0,150.00) startOffset 0 endOffset 12 width 100.20 RTL: "\x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644}"10 chunk 1 (middle anchor) text run 1 at (236.6 0,150.00) startOffset 0 endOffset 15 width 132.00: " dirLTR ubNone!"8 chunk 1 (middle anchor) text run 1 at (91.47,150.00) startOffset 0 endOffset 4 width 45.00: "W3C " 9 chunk 1 (middle anchor) text run 1 at (136.47,150.00) startOffset 0 endOffset 12 width 100.20 RTL: "\x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644}" 10 chunk 1 (middle anchor) text run 1 at (236.67,150.00) startOffset 0 endOffset 15 width 131.86: " dirLTR ubNone!" 11 11 RenderSVGText {text} at (20,170) size 86x13 contains 1 chunk(s) 12 12 RenderSVGInlineText {#text} at (0,0) size 86x12 -
trunk/LayoutTests/platform/gtk/svg/W3C-I18N/text-dirLTR-ubOverride-expected.txt
r221676 r222843 6 6 RenderSVGText {text} at (80,133) size 300x21 contains 1 chunk(s) 7 7 RenderSVGInlineText {#text} at (0,0) size 300x21 8 chunk 1 (middle anchor) text run 1 at (80.0 0,150.00) startOffset 0 endOffset 35 width 300.00LTR override: "W3C \x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644} dirLTR ubOverride!"8 chunk 1 (middle anchor) text run 1 at (80.07,150.00) startOffset 0 endOffset 35 width 299.86 LTR override: "W3C \x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644} dirLTR ubOverride!" 9 9 RenderSVGText {text} at (20,170) size 86x13 contains 1 chunk(s) 10 10 RenderSVGInlineText {#text} at (0,0) size 86x12 -
trunk/LayoutTests/platform/gtk/svg/W3C-I18N/text-dirRTL-ubNone-expected.txt
r222127 r222843 6 6 RenderSVGText {text} at (91,133) size 278x21 contains 1 chunk(s) 7 7 RenderSVGInlineText {#text} at (0,0) size 278x21 8 chunk 1 (middle anchor) text run 1 at (91. 40,150.00) startOffset 0 endOffset 1 width 4.80 RTL: "!"9 chunk 1 (middle anchor) text run 1 at (96. 20,150.00) startOffset 0 endOffset 13 width 122.40: "dirRTL ubNone"10 chunk 1 (middle anchor) text run 1 at (218. 60,150.00) startOffset 0 endOffset 14 width 109.80 RTL: " \x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644} "11 chunk 1 (middle anchor) text run 1 at (328. 40,150.00) startOffset 0 endOffset 3 width 40.20: "W3C"8 chunk 1 (middle anchor) text run 1 at (91.30,150.00) startOffset 0 endOffset 1 width 4.80 RTL: "!" 9 chunk 1 (middle anchor) text run 1 at (96.10,150.00) startOffset 0 endOffset 13 width 122.61: "dirRTL ubNone" 10 chunk 1 (middle anchor) text run 1 at (218.70,150.00) startOffset 0 endOffset 14 width 109.80 RTL: " \x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644} " 11 chunk 1 (middle anchor) text run 1 at (328.50,150.00) startOffset 0 endOffset 3 width 40.20: "W3C" 12 12 RenderSVGText {text} at (20,170) size 86x13 contains 1 chunk(s) 13 13 RenderSVGInlineText {#text} at (0,0) size 86x12 -
trunk/LayoutTests/platform/gtk/svg/W3C-I18N/text-dirRTL-ubOverride-expected.txt
r221676 r222843 6 6 RenderSVGText {text} at (78,133) size 304x21 contains 1 chunk(s) 7 7 RenderSVGInlineText {#text} at (0,0) size 303x21 8 chunk 1 (middle anchor) text run 1 at (78.5 0,150.00) startOffset 0 endOffset 35 width 303.00RTL override: "W3C \x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644} dirRTL ubOverride!"8 chunk 1 (middle anchor) text run 1 at (78.57,150.00) startOffset 0 endOffset 35 width 302.86 RTL override: "W3C \x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644} dirRTL ubOverride!" 9 9 RenderSVGText {text} at (20,170) size 86x13 contains 1 chunk(s) 10 10 RenderSVGInlineText {#text} at (0,0) size 86x12 -
trunk/LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubEmbed-in-rtl-context-expected.txt
r222079 r222843 5 5 RenderSVGContainer {g} at (33,222) size 651x143 6 6 RenderSVGText {text} at (75,133) size 310x21 contains 1 chunk(s) 7 RenderSVGInlineText {#text} at (19 8,0) size 112x218 chunk 1 (middle anchor) text run 1 at (273. 20,150.00) startOffset 0 endOffset 14 width 111.60 RTL: "\x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644} \""9 RenderSVGTSpan {tspan} at (0,0) size 18 8x217 RenderSVGInlineText {#text} at (197,0) size 112x21 8 chunk 1 (middle anchor) text run 1 at (273.13,150.00) startOffset 0 endOffset 14 width 111.60 RTL: "\x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644} \"" 9 RenderSVGTSpan {tspan} at (0,0) size 187x21 10 10 RenderSVGInlineText {#text} at (11,0) size 187x21 11 chunk 1 (middle anchor) text run 1 at (86.6 0,150.00) startOffset 0 endOffset 16 width 147.00: "dirLTR ubEmbed, "12 chunk 1 (middle anchor) text run 1 at (233.6 0,150.00) startOffset 0 endOffset 6 width 39.60RTL: "\x{627}\x{62E}\x{62A}\x{628}\x{627}\x{631}"11 chunk 1 (middle anchor) text run 1 at (86.67,150.00) startOffset 0 endOffset 16 width 147.00: "dirLTR ubEmbed, " 12 chunk 1 (middle anchor) text run 1 at (233.67,150.00) startOffset 0 endOffset 6 width 39.46 RTL: "\x{627}\x{62E}\x{62A}\x{628}\x{627}\x{631}" 13 13 RenderSVGInlineText {#text} at (0,0) size 12x21 14 chunk 1 (middle anchor) text run 1 at (75.2 0,150.00) startOffset 0 endOffset 2 width 11.40 RTL: "\"!"14 chunk 1 (middle anchor) text run 1 at (75.27,150.00) startOffset 0 endOffset 2 width 11.40 RTL: "\"!" 15 15 RenderSVGText {text} at (20,170) size 86x13 contains 1 chunk(s) 16 16 RenderSVGInlineText {#text} at (0,0) size 86x12 -
trunk/LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubNone-in-rtl-context-expected.txt
r222079 r222843 6 6 RenderSVGText {text} at (82,133) size 296x21 contains 1 chunk(s) 7 7 RenderSVGInlineText {#text} at (184,0) size 112x21 8 chunk 1 (middle anchor) text run 1 at (266. 30,150.00) startOffset 0 endOffset 14 width 111.60 RTL: "\x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644} \""8 chunk 1 (middle anchor) text run 1 at (266.23,150.00) startOffset 0 endOffset 14 width 111.60 RTL: "\x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644} \"" 9 9 RenderSVGTSpan {tspan} at (0,0) size 174x21 10 10 RenderSVGInlineText {#text} at (11,0) size 173x21 11 chunk 1 (middle anchor) text run 1 at (93.5 0,150.00) startOffset 0 endOffset 8 width 49.20RTL: ", \x{627}\x{62E}\x{62A}\x{628}\x{627}\x{631}"12 chunk 1 (middle anchor) text run 1 at (142. 70,150.00) startOffset 0 endOffset 13 width 123.60: "dirLTR ubNone"11 chunk 1 (middle anchor) text run 1 at (93.57,150.00) startOffset 0 endOffset 8 width 49.06 RTL: ", \x{627}\x{62E}\x{62A}\x{628}\x{627}\x{631}" 12 chunk 1 (middle anchor) text run 1 at (142.63,150.00) startOffset 0 endOffset 13 width 123.60: "dirLTR ubNone" 13 13 RenderSVGInlineText {#text} at (0,0) size 12x21 14 chunk 1 (middle anchor) text run 1 at (82.1 0,150.00) startOffset 0 endOffset 2 width 11.40 RTL: "\"!"14 chunk 1 (middle anchor) text run 1 at (82.17,150.00) startOffset 0 endOffset 2 width 11.40 RTL: "\"!" 15 15 RenderSVGText {text} at (20,170) size 86x13 contains 1 chunk(s) 16 16 RenderSVGInlineText {#text} at (0,0) size 86x12 -
trunk/LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-rtl-context-expected.txt
r221676 r222843 6 6 RenderSVGText {text} at (69,133) size 322x21 contains 1 chunk(s) 7 7 RenderSVGInlineText {#text} at (209,0) size 112x21 8 chunk 1 (middle anchor) text run 1 at (278. 90,150.00) startOffset 0 endOffset 14 width 111.60 RTL: "\x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644} \""8 chunk 1 (middle anchor) text run 1 at (278.83,150.00) startOffset 0 endOffset 14 width 111.60 RTL: "\x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644} \"" 9 9 RenderSVGTSpan {tspan} at (0,0) size 199x21 10 10 RenderSVGInlineText {#text} at (11,0) size 198x21 11 chunk 1 (middle anchor) text run 1 at (80.9 0,150.00) startOffset 0 endOffset 25 width 198.00LTR override: "dirLTR ubOverride, \x{627}\x{62E}\x{62A}\x{628}\x{627}\x{631}"11 chunk 1 (middle anchor) text run 1 at (80.97,150.00) startOffset 0 endOffset 25 width 197.86 LTR override: "dirLTR ubOverride, \x{627}\x{62E}\x{62A}\x{628}\x{627}\x{631}" 12 12 RenderSVGInlineText {#text} at (0,0) size 12x21 13 chunk 1 (middle anchor) text run 1 at (69.5 0,150.00) startOffset 0 endOffset 2 width 11.40 RTL: "\"!"13 chunk 1 (middle anchor) text run 1 at (69.57,150.00) startOffset 0 endOffset 2 width 11.40 RTL: "\"!" 14 14 RenderSVGText {text} at (20,170) size 86x13 contains 1 chunk(s) 15 15 RenderSVGInlineText {#text} at (0,0) size 86x12 -
trunk/LayoutTests/platform/gtk/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-rtl-context-expected.txt
r221676 r222843 5 5 RenderSVGContainer {g} at (33,222) size 651x143 6 6 RenderSVGText {text} at (69,133) size 322x21 contains 1 chunk(s) 7 RenderSVGInlineText {#text} at (2 10,0) size 112x218 chunk 1 (middle anchor) text run 1 at (279. 20,150.00) startOffset 0 endOffset 14 width 111.60 RTL: "\x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644} \""9 RenderSVGTSpan {tspan} at (0,0) size 200x217 RenderSVGInlineText {#text} at (209,0) size 112x21 8 chunk 1 (middle anchor) text run 1 at (279.13,150.00) startOffset 0 endOffset 14 width 111.60 RTL: "\x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644} \"" 9 RenderSVGTSpan {tspan} at (0,0) size 199x21 10 10 RenderSVGInlineText {#text} at (11,0) size 199x21 11 chunk 1 (middle anchor) text run 1 at (80.6 0,150.00) startOffset 0 endOffset 25 width 198.60RTL override: "dirRTL ubOverride, \x{627}\x{62E}\x{62A}\x{628}\x{627}\x{631}"11 chunk 1 (middle anchor) text run 1 at (80.67,150.00) startOffset 0 endOffset 25 width 198.46 RTL override: "dirRTL ubOverride, \x{627}\x{62E}\x{62A}\x{628}\x{627}\x{631}" 12 12 RenderSVGInlineText {#text} at (0,0) size 12x21 13 chunk 1 (middle anchor) text run 1 at (69.2 0,150.00) startOffset 0 endOffset 2 width 11.40 RTL: "\"!"13 chunk 1 (middle anchor) text run 1 at (69.27,150.00) startOffset 0 endOffset 2 width 11.40 RTL: "\"!" 14 14 RenderSVGText {text} at (20,170) size 86x13 contains 1 chunk(s) 15 15 RenderSVGInlineText {#text} at (0,0) size 86x12 -
trunk/LayoutTests/platform/gtk/svg/W3C-I18N/tspan-direction-rtl-expected.txt
r222127 r222843 6 6 RenderSVGText {text} at (75,133) size 310x21 contains 1 chunk(s) 7 7 RenderSVGInlineText {#text} at (198,0) size 112x21 8 chunk 1 (middle anchor) text run 1 at (273. 20,150.00) startOffset 0 endOffset 14 width 111.60 RTL: "\x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644} \""8 chunk 1 (middle anchor) text run 1 at (273.30,150.00) startOffset 0 endOffset 14 width 111.60 RTL: "\x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644} \"" 9 9 RenderSVGTSpan {tspan} at (0,0) size 188x21 10 10 RenderSVGInlineText {#text} at (11,0) size 187x21 11 chunk 1 (middle anchor) text run 1 at (86. 60,150.00) startOffset 0 endOffset 8 width 49.20RTL: ", \x{627}\x{62E}\x{62A}\x{628}\x{627}\x{631}"12 chunk 1 (middle anchor) text run 1 at (135. 80,150.00) startOffset 0 endOffset 14 width 137.40: "dirRTL ubEmbed"11 chunk 1 (middle anchor) text run 1 at (86.50,150.00) startOffset 0 endOffset 8 width 49.41 RTL: ", \x{627}\x{62E}\x{62A}\x{628}\x{627}\x{631}" 12 chunk 1 (middle anchor) text run 1 at (135.90,150.00) startOffset 0 endOffset 14 width 137.40: "dirRTL ubEmbed" 13 13 RenderSVGInlineText {#text} at (0,0) size 12x21 14 chunk 1 (middle anchor) text run 1 at (75. 20,150.00) startOffset 0 endOffset 2 width 11.40 RTL: "\"!"14 chunk 1 (middle anchor) text run 1 at (75.10,150.00) startOffset 0 endOffset 2 width 11.40 RTL: "\"!" 15 15 RenderSVGText {text} at (20,170) size 86x13 contains 1 chunk(s) 16 16 RenderSVGInlineText {#text} at (0,0) size 86x12 -
trunk/LayoutTests/platform/gtk/svg/text/bidi-tspans-expected.txt
r222127 r222843 6 6 RenderSVGText {text} at (75,133) size 310x21 contains 1 chunk(s) 7 7 RenderSVGInlineText {#text} at (0,0) size 310x21 8 chunk 1 (middle anchor) text run 1 at (75. 20,150.00) startOffset 0 endOffset 10 width 61.80 RTL: ", \x{627}\x{62E}\x{62A}\x{628}\x{627}\x{631}\"!"9 chunk 1 (middle anchor) text run 1 at (13 7.00,150.00) startOffset 0 endOffset 14 width 136.20: "dirRTL ubEmbed"10 chunk 1 (middle anchor) text run 1 at (273. 20,150.00) startOffset 0 endOffset 14 width 111.60 RTL: "\x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644} \""8 chunk 1 (middle anchor) text run 1 at (75.10,150.00) startOffset 0 endOffset 10 width 61.80 RTL: ", \x{627}\x{62E}\x{62A}\x{628}\x{627}\x{631}\"!" 9 chunk 1 (middle anchor) text run 1 at (136.90,150.00) startOffset 0 endOffset 14 width 136.41: "dirRTL ubEmbed" 10 chunk 1 (middle anchor) text run 1 at (273.30,150.00) startOffset 0 endOffset 14 width 111.60 RTL: "\x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644} \"" 11 11 RenderSVGText {text} at (75,163) size 310x21 contains 1 chunk(s) 12 12 RenderSVGInlineText {#text} at (198,0) size 112x21 13 chunk 1 (middle anchor) text run 1 at (273. 20,180.00) startOffset 0 endOffset 14 width 111.60 RTL: "\x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644} \""13 chunk 1 (middle anchor) text run 1 at (273.30,180.00) startOffset 0 endOffset 14 width 111.60 RTL: "\x{646}\x{634}\x{627}\x{637} \x{627}\x{644}\x{62A}\x{62F}\x{648}\x{64A}\x{644} \"" 14 14 RenderSVGTSpan {tspan} at (0,0) size 188x21 15 15 RenderSVGInlineText {#text} at (11,0) size 187x21 16 chunk 1 (middle anchor) text run 1 at (86. 60,180.00) startOffset 0 endOffset 8 width 49.20RTL: ", \x{627}\x{62E}\x{62A}\x{628}\x{627}\x{631}"17 chunk 1 (middle anchor) text run 1 at (135. 80,180.00) startOffset 0 endOffset 14 width 137.40: "dirRTL ubEmbed"16 chunk 1 (middle anchor) text run 1 at (86.50,180.00) startOffset 0 endOffset 8 width 49.41 RTL: ", \x{627}\x{62E}\x{62A}\x{628}\x{627}\x{631}" 17 chunk 1 (middle anchor) text run 1 at (135.90,180.00) startOffset 0 endOffset 14 width 137.40: "dirRTL ubEmbed" 18 18 RenderSVGInlineText {#text} at (0,0) size 12x21 19 chunk 1 (middle anchor) text run 1 at (75. 20,180.00) startOffset 0 endOffset 2 width 11.40 RTL: "\"!"19 chunk 1 (middle anchor) text run 1 at (75.10,180.00) startOffset 0 endOffset 2 width 11.40 RTL: "\"!" -
trunk/LayoutTests/platform/gtk/svg/text/select-textLength-spacing-squeeze-1-expected.txt
r222079 r222843 2 2 RenderView at (0,0) size 800x600 3 3 layer at (0,0) size 800x600 4 RenderSVGRoot {svg} at ( 0,4) size 328x885 RenderSVGContainer {g} at ( 0,4) size 328x884 RenderSVGRoot {svg} at (47,4) size 261x57 5 RenderSVGContainer {g} at (47,4) size 75x57 6 6 RenderSVGPath {svg:line} at (47,4) size 6x57 [stroke={[type=SOLID] [color=#008000]}] [fill={[type=SOLID] [color=#000000]}] [x1=10.00] [y1=0.95] [x2=10.00] [y2=12.17] 7 7 RenderSVGPath {svg:line} at (116,4) size 6x57 [stroke={[type=SOLID] [color=#008000]}] [fill={[type=SOLID] [color=#000000]}] [x1=23.71] [y1=0.95] [x2=23.71] [y2=12.17] 8 8 RenderSVGRect {svg:rect} at (50,4) size 69x57 [fill={[type=SOLID] [color=#FF0000] [opacity=0.40]}] [x=10.00] [y=0.95] [width=13.71] [height=11.17] 9 RenderSVGText {svg:text} at (0,27) size 131x10 contains 1 chunk(s)10 RenderSVGInlineText {#text} at (0,0) size 131x911 chunk 1 text run 1 at (0.00,35.00) startOffset 0 endOffset 42 width 130.80: "Expected 'Tex' to be selected, got: 'Text'"12 9 RenderSVGText {text} at (10,0) size 52x13 contains 1 chunk(s) 13 10 RenderSVGInlineText {#text} at (0,0) size 52x12 … … 28 25 chunk 1 text run 15 at (55.95,10.00) startOffset 14 endOffset 15 width 5.60: "e" 29 26 selection start: position 0 of child 0 {#text} of child 5 {text} of child 0 {svg} of document 30 selection end: position 4of child 0 {#text} of child 5 {text} of child 0 {svg} of document27 selection end: position 3 of child 0 {#text} of child 5 {text} of child 0 {svg} of document -
trunk/LayoutTests/platform/gtk/svg/text/select-textLength-spacing-squeeze-2-expected.txt
r222079 r222843 2 2 RenderView at (0,0) size 800x600 3 3 layer at (0,0) size 800x600 4 RenderSVGRoot {svg} at ( 0,4) size 308x885 RenderSVGContainer {g} at ( 0,4) size 300x884 RenderSVGRoot {svg} at (50,4) size 258x57 5 RenderSVGContainer {g} at (153,4) size 59x57 6 6 RenderSVGPath {svg:line} at (153,4) size 6x57 [stroke={[type=SOLID] [color=#008000]}] [fill={[type=SOLID] [color=#000000]}] [x1=31.23] [y1=0.95] [x2=31.23] [y2=12.17] 7 7 RenderSVGPath {svg:line} at (206,4) size 6x57 [stroke={[type=SOLID] [color=#008000]}] [fill={[type=SOLID] [color=#000000]}] [x1=41.88] [y1=0.95] [x2=41.88] [y2=12.17] 8 8 RenderSVGRect {svg:rect} at (156,4) size 54x57 [fill={[type=SOLID] [color=#FF0000] [opacity=0.40]}] [x=31.23] [y=0.95] [width=10.65] [height=11.17] 9 RenderSVGText {svg:text} at (0,27) size 120x10 contains 1 chunk(s)10 RenderSVGInlineText {#text} at (0,0) size 120x911 chunk 1 text run 1 at (0.00,35.00) startOffset 0 endOffset 39 width 120.00: "Expected 'Sq' to be selected, got: 'qu'"12 9 RenderSVGText {text} at (10,0) size 52x13 contains 1 chunk(s) 13 10 RenderSVGInlineText {#text} at (0,0) size 52x12 … … 27 24 chunk 1 text run 14 at (52.49,10.00) startOffset 13 endOffset 14 width 5.00: "z" 28 25 chunk 1 text run 15 at (55.95,10.00) startOffset 14 endOffset 15 width 5.60: "e" 29 selection start: position 9of child 0 {#text} of child 5 {text} of child 0 {svg} of document30 selection end: position 1 1of child 0 {#text} of child 5 {text} of child 0 {svg} of document26 selection start: position 8 of child 0 {#text} of child 5 {text} of child 0 {svg} of document 27 selection end: position 10 of child 0 {#text} of child 5 {text} of child 0 {svg} of document -
trunk/LayoutTests/platform/gtk/svg/text/select-textLength-spacing-stretch-2-expected.txt
r222079 r222843 2 2 RenderView at (0,0) size 800x600 3 3 layer at (0,0) size 800x600 4 RenderSVGRoot {svg} at ( 0,4) size 772x885 RenderSVGContainer {g} at ( 0,4) size 376x884 RenderSVGRoot {svg} at (50,4) size 722x57 5 RenderSVGContainer {g} at (300,4) size 76x57 6 6 RenderSVGPath {svg:line} at (300,4) size 6x57 [stroke={[type=SOLID] [color=#008000]}] [fill={[type=SOLID] [color=#000000]}] [x1=60.60] [y1=0.95] [x2=60.60] [y2=12.17] 7 7 RenderSVGPath {svg:line} at (370,4) size 6x57 [stroke={[type=SOLID] [color=#008000]}] [fill={[type=SOLID] [color=#000000]}] [x1=74.64] [y1=0.95] [x2=74.64] [y2=12.17] 8 8 RenderSVGRect {svg:rect} at (303,4) size 71x57 [fill={[type=SOLID] [color=#FF0000] [opacity=0.40]}] [x=60.60] [y=0.95] [width=14.04] [height=11.17] 9 RenderSVGText {svg:text} at (0,27) size 114x10 contains 1 chunk(s)10 RenderSVGInlineText {#text} at (0,0) size 114x911 chunk 1 text run 1 at (0.00,35.00) startOffset 0 endOffset 38 width 114.00: "Expected 'to' to be selected, got: 'o'"12 9 RenderSVGText {text} at (10,0) size 145x13 contains 1 chunk(s) 13 10 RenderSVGInlineText {#text} at (0,0) size 145x12 … … 27 24 chunk 1 text run 14 at (138.12,10.00) startOffset 13 endOffset 14 width 5.00: "c" 28 25 chunk 1 text run 15 at (148.76,10.00) startOffset 14 endOffset 15 width 5.60: "h" 29 selection start: position 6of child 0 {#text} of child 5 {text} of child 0 {svg} of document26 selection start: position 5 of child 0 {#text} of child 5 {text} of child 0 {svg} of document 30 27 selection end: position 7 of child 0 {#text} of child 5 {text} of child 0 {svg} of document -
trunk/LayoutTests/platform/gtk/svg/text/select-textLength-spacing-stretch-3-expected.txt
r222079 r222843 2 2 RenderView at (0,0) size 800x600 3 3 layer at (0,0) size 800x600 4 RenderSVGRoot {svg} at ( 0,4) size 772x885 RenderSVGContainer {g} at ( 0,4) size 567x884 RenderSVGRoot {svg} at (50,4) size 722x57 5 RenderSVGContainer {g} at (441,4) size 126x57 6 6 RenderSVGPath {svg:line} at (441,4) size 6x57 [stroke={[type=SOLID] [color=#008000]}] [fill={[type=SOLID] [color=#000000]}] [x1=88.72] [y1=0.95] [x2=88.72] [y2=12.17] 7 7 RenderSVGPath {svg:line} at (561,4) size 6x57 [stroke={[type=SOLID] [color=#008000]}] [fill={[type=SOLID] [color=#000000]}] [x1=112.80] [y1=0.95] [x2=112.80] [y2=12.17] 8 8 RenderSVGRect {svg:rect} at (443,4) size 121x57 [fill={[type=SOLID] [color=#FF0000] [opacity=0.40]}] [x=88.72] [y=0.95] [width=24.08] [height=11.17] 9 RenderSVGText {svg:text} at (0,27) size 119x10 contains 1 chunk(s)10 RenderSVGInlineText {#text} at (0,0) size 119x911 chunk 1 text run 1 at (0.00,35.00) startOffset 0 endOffset 40 width 118.40: "Expected 'Str' to be selected, got: 'tr'"12 9 RenderSVGText {text} at (10,0) size 145x13 contains 1 chunk(s) 13 10 RenderSVGInlineText {#text} at (0,0) size 145x12 … … 27 24 chunk 1 text run 14 at (138.12,10.00) startOffset 13 endOffset 14 width 5.00: "c" 28 25 chunk 1 text run 15 at (148.76,10.00) startOffset 14 endOffset 15 width 5.60: "h" 29 selection start: position 9of child 0 {#text} of child 5 {text} of child 0 {svg} of document26 selection start: position 8 of child 0 {#text} of child 5 {text} of child 0 {svg} of document 30 27 selection end: position 11 of child 0 {#text} of child 5 {text} of child 0 {svg} of document -
trunk/Source/WebCore/ChangeLog
r222842 r222843 1 2017-10-04 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [Harfbuzz] Implement ComplexTextController on top of HarfBuzz 4 https://bugs.webkit.org/show_bug.cgi?id=167956 5 6 Reviewed by Myles C. Maxfield. 7 8 Implement ComplexTextController using HarfBuzz and remove HarfBuzzShaper. 9 10 Covered by existing tests, a rebaseline will be neeed. 11 12 * platform/FreeType.cmake: 13 * platform/graphics/ComplexTextController.cpp: 14 (WebCore::TextLayoutDeleter::operator() const): Enable TextLayout when using HarfBuzz. 15 (WebCore::FontCascade::createLayout const): Ditto. 16 (WebCore::FontCascade::width): Ditto. 17 * platform/graphics/ComplexTextController.h: 18 (WebCore::ComplexTextController::ComplexTextRun::create): Add constructor that receives an hb_buffer_t. 19 * platform/graphics/Font.cpp: 20 (WebCore::Font::variantCapsSupportsCharacterForSynthesis const): Simple implementation for non-cocoa ports. 21 * platform/graphics/FontCascade.cpp: 22 (WebCore::FontCascade::getGlyphsAndAdvancesForComplexText const): Moved from FontCascadeCocoa.mm. 23 (WebCore::FontCascade::floatWidthForComplexText const): Ditto. 24 (WebCore::FontCascade::adjustSelectionRectForComplexText const): Ditto. 25 (WebCore::FontCascade::offsetForPositionForComplexText const): Ditto. 26 * platform/graphics/cairo/FontCairoHarfbuzzNG.cpp: 27 (WebCore::FontCascade::fontForCombiningCharacterSequence const): Normalize the sequence and get the font of the 28 base character. 29 * platform/graphics/cocoa/FontCascadeCocoa.mm: 30 * platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp: 31 (WebCore::harfBuzzPositionToFloat): 32 (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): 33 (WebCore::fontFeatures): 34 (WebCore::characterScript): 35 (WebCore::scriptsAreCompatibleForCharacters): 36 (WebCore::findNextRun): 37 (WebCore::ComplexTextController::collectComplexTextRunsForCharacters): 38 * platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp: 39 (WebCore::harfBuzzGetGlyph): Check here if the character is a white space and use the space or zeroWidthSpace 40 to ensure we get a glyph. 41 * platform/graphics/harfbuzz/HarfBuzzShaper.cpp: Removed. 42 * platform/graphics/harfbuzz/HarfBuzzShaper.h: Removed. 43 * platform/graphics/harfbuzz/HbUniquePtr.h: Added. 44 (WebCore::HbPtrDeleter::operator() const): 45 (WebCore::HbPtrDeleter<hb_font_t>::operator() const): 46 (WebCore::HbPtrDeleter<hb_buffer_t>::operator() const): 47 * platform/graphics/opentype/OpenTypeMathData.h: Use HbUniquePtr. 48 1 49 2017-10-04 Michael Catanzaro <mcatanzaro@igalia.com> 2 50 -
trunk/Source/WebCore/platform/FreeType.cmake
r217508 r222843 16 16 platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp 17 17 platform/graphics/harfbuzz/HarfBuzzFace.cpp 18 platform/graphics/harfbuzz/HarfBuzzShaper.cpp19 18 ) 20 19 -
trunk/Source/WebCore/platform/graphics/ComplexTextController.cpp
r222637 r222843 91 91 void TextLayoutDeleter::operator()(TextLayout* layout) const 92 92 { 93 #if PLATFORM(COCOA)93 #if !PLATFORM(WIN) 94 94 delete layout; 95 95 #else … … 100 100 std::unique_ptr<TextLayout, TextLayoutDeleter> FontCascade::createLayout(RenderText& text, float xPos, bool collapseWhiteSpace) const 101 101 { 102 #if PLATFORM(COCOA)102 #if !PLATFORM(WIN) 103 103 if (!collapseWhiteSpace || !TextLayout::isNeeded(text, *this)) 104 104 return nullptr; … … 114 114 float FontCascade::width(TextLayout& layout, unsigned from, unsigned len, HashSet<const Font*>* fallbackFonts) 115 115 { 116 #if PLATFORM(COCOA)116 #if !PLATFORM(WIN) 117 117 return layout.width(from, len, fallbackFonts); 118 118 #else -
trunk/Source/WebCore/platform/graphics/ComplexTextController.h
r219050 r222843 38 38 typedef const struct __CTLine * CTLineRef; 39 39 40 typedef struct hb_buffer_t hb_buffer_t; 41 40 42 namespace WebCore { 41 43 … … 76 78 { 77 79 return adoptRef(*new ComplexTextRun(ctRun, font, characters, stringLocation, stringLength, indexBegin, indexEnd)); 80 } 81 82 static Ref<ComplexTextRun> create(hb_buffer_t* buffer, const Font& font, const UChar* characters, unsigned stringLocation, unsigned stringLength, unsigned indexBegin, unsigned indexEnd, bool ltr) 83 { 84 return adoptRef(*new ComplexTextRun(buffer, font, characters, stringLocation, stringLength, indexBegin, indexEnd, ltr)); 78 85 } 79 86 … … 136 143 private: 137 144 ComplexTextRun(CTRunRef, const Font&, const UChar* characters, unsigned stringLocation, unsigned stringLength, unsigned indexBegin, unsigned indexEnd); 145 ComplexTextRun(hb_buffer_t*, const Font&, const UChar* characters, unsigned stringLocation, unsigned stringLength, unsigned indexBegin, unsigned indexEnd, bool ltr); 138 146 ComplexTextRun(const Font&, const UChar* characters, unsigned stringLocation, unsigned stringLength, unsigned indexBegin, unsigned indexEnd, bool ltr); 139 147 WEBCORE_EXPORT ComplexTextRun(const Vector<FloatSize>& advances, const Vector<FloatPoint>& origins, const Vector<Glyph>& glyphs, const Vector<unsigned>& stringIndices, FloatSize initialAdvance, const Font&, const UChar* characters, unsigned stringLocation, unsigned stringLength, unsigned indexBegin, unsigned indexEnd, bool ltr); -
trunk/Source/WebCore/platform/graphics/Font.cpp
r220506 r222843 500 500 501 501 #if !PLATFORM(COCOA) 502 bool Font::variantCapsSupportsCharacterForSynthesis(FontVariantCaps, UChar32) const 503 { 504 return false; 502 bool Font::variantCapsSupportsCharacterForSynthesis(FontVariantCaps fontVariantCaps, UChar32) const 503 { 504 switch (fontVariantCaps) { 505 case FontVariantCaps::Small: 506 case FontVariantCaps::Petite: 507 case FontVariantCaps::AllSmall: 508 case FontVariantCaps::AllPetite: 509 return false; 510 default: 511 // Synthesis only supports the variant-caps values listed above. 512 return true; 513 } 505 514 } 506 515 #endif -
trunk/Source/WebCore/platform/graphics/FontCascade.cpp
r222610 r222843 1348 1348 } 1349 1349 1350 #if !PLATFORM(WIN) 1351 float FontCascade::getGlyphsAndAdvancesForComplexText(const TextRun& run, unsigned from, unsigned to, GlyphBuffer& glyphBuffer, ForTextEmphasisOrNot forTextEmphasis) const 1352 { 1353 float initialAdvance; 1354 1355 ComplexTextController controller(*this, run, false, 0, forTextEmphasis); 1356 GlyphBuffer dummyGlyphBuffer; 1357 controller.advance(from, &dummyGlyphBuffer); 1358 controller.advance(to, &glyphBuffer); 1359 1360 if (glyphBuffer.isEmpty()) 1361 return 0; 1362 1363 if (run.rtl()) { 1364 // Exploit the fact that the sum of the paint advances is equal to 1365 // the sum of the layout advances. 1366 initialAdvance = controller.totalWidth(); 1367 for (unsigned i = 0; i < dummyGlyphBuffer.size(); ++i) 1368 initialAdvance -= dummyGlyphBuffer.advanceAt(i).width(); 1369 for (unsigned i = 0; i < glyphBuffer.size(); ++i) 1370 initialAdvance -= glyphBuffer.advanceAt(i).width(); 1371 glyphBuffer.reverse(0, glyphBuffer.size()); 1372 } else { 1373 initialAdvance = dummyGlyphBuffer.initialAdvance().width(); 1374 for (unsigned i = 0; i < dummyGlyphBuffer.size(); ++i) 1375 initialAdvance += dummyGlyphBuffer.advanceAt(i).width(); 1376 } 1377 1378 return initialAdvance; 1379 } 1380 #endif 1381 1350 1382 void FontCascade::drawEmphasisMarksForSimpleText(GraphicsContext& context, const TextRun& run, const AtomicString& mark, const FloatPoint& point, unsigned from, unsigned to) const 1351 1383 { … … 1461 1493 } 1462 1494 1495 #if !PLATFORM(WIN) 1496 float FontCascade::floatWidthForComplexText(const TextRun& run, HashSet<const Font*>* fallbackFonts, GlyphOverflow* glyphOverflow) const 1497 { 1498 ComplexTextController controller(*this, run, true, fallbackFonts); 1499 if (glyphOverflow) { 1500 glyphOverflow->top = std::max<int>(glyphOverflow->top, ceilf(-controller.minGlyphBoundingBoxY()) - (glyphOverflow->computeBounds ? 0 : fontMetrics().ascent())); 1501 glyphOverflow->bottom = std::max<int>(glyphOverflow->bottom, ceilf(controller.maxGlyphBoundingBoxY()) - (glyphOverflow->computeBounds ? 0 : fontMetrics().descent())); 1502 glyphOverflow->left = std::max<int>(0, ceilf(-controller.minGlyphBoundingBoxX())); 1503 glyphOverflow->right = std::max<int>(0, ceilf(controller.maxGlyphBoundingBoxX() - controller.totalWidth())); 1504 } 1505 return controller.totalWidth(); 1506 } 1507 #endif 1508 1463 1509 void FontCascade::adjustSelectionRectForSimpleText(const TextRun& run, LayoutRect& selectionRect, unsigned from, unsigned to) const 1464 1510 { … … 1479 1525 selectionRect.setWidth(LayoutUnit::fromFloatCeil(afterWidth - beforeWidth)); 1480 1526 } 1527 1528 #if !PLATFORM(WIN) 1529 void FontCascade::adjustSelectionRectForComplexText(const TextRun& run, LayoutRect& selectionRect, unsigned from, unsigned to) const 1530 { 1531 ComplexTextController controller(*this, run); 1532 controller.advance(from); 1533 float beforeWidth = controller.runWidthSoFar(); 1534 controller.advance(to); 1535 float afterWidth = controller.runWidthSoFar(); 1536 1537 if (run.rtl()) 1538 selectionRect.move(controller.totalWidth() - afterWidth, 0); 1539 else 1540 selectionRect.move(beforeWidth, 0); 1541 selectionRect.setWidth(LayoutUnit::fromFloatCeil(afterWidth - beforeWidth)); 1542 } 1543 #endif 1481 1544 1482 1545 int FontCascade::offsetForPositionForSimpleText(const TextRun& run, float x, bool includePartialGlyphs) const … … 1523 1586 } 1524 1587 1525 #if !PLATFORM(COCOA) 1588 #if !PLATFORM(WIN) 1589 int FontCascade::offsetForPositionForComplexText(const TextRun& run, float x, bool includePartialGlyphs) const 1590 { 1591 ComplexTextController controller(*this, run); 1592 return controller.offsetForPosition(x, includePartialGlyphs); 1593 } 1594 #endif 1595 1596 #if !PLATFORM(COCOA) && !USE(CAIRO) 1526 1597 // FIXME: Unify this with the macOS and iOS implementation. 1527 1598 const Font* FontCascade::fontForCombiningCharacterSequence(const UChar* characters, size_t length) const -
trunk/Source/WebCore/platform/graphics/cairo/FontCairoHarfbuzzNG.cpp
r222202 r222843 30 30 #if USE(CAIRO) 31 31 32 #include "Font.h" 33 #include "GraphicsContext.h" 34 #include "HarfBuzzShaper.h" 35 #include "LayoutRect.h" 36 #include "Logging.h" 37 #include "NotImplemented.h" 38 #include "PlatformContextCairo.h" 39 #include <cairo.h> 32 #include "SurrogatePairAwareTextIterator.h" 33 #include <unicode/normlzr.h> 40 34 41 35 namespace WebCore { 42 43 float FontCascade::getGlyphsAndAdvancesForComplexText(const TextRun& run, unsigned from, unsigned to, GlyphBuffer& glyphBuffer, ForTextEmphasisOrNot /* forTextEmphasis */) const44 {45 HarfBuzzShaper shaper(this, run);46 if (!shaper.shape(&glyphBuffer, from, to)) {47 LOG_ERROR("Shaper couldn't shape glyphBuffer.");48 return 0;49 }50 51 if (glyphBuffer.isEmpty())52 return 0;53 54 return shaper.selectionRect({ }, 0, from, to).x();55 }56 36 57 37 bool FontCascade::canReturnFallbackFontsForComplexText() … … 65 45 } 66 46 67 float FontCascade::floatWidthForComplexText(const TextRun& run, HashSet<const Font*>*, GlyphOverflow* glyphOverflow) const47 const Font* FontCascade::fontForCombiningCharacterSequence(const UChar* characters, size_t length) const 68 48 { 69 if (glyphOverflow) { 70 // FIXME: Calculate the actual values rather than just the font's ascent and descent 71 glyphOverflow->top = glyphOverflow->computeBounds ? fontMetrics().ascent() : 0; 72 glyphOverflow->bottom = glyphOverflow->computeBounds ? fontMetrics().descent() : 0; 73 glyphOverflow->left = 0; 74 glyphOverflow->right = 0; 75 } 76 HarfBuzzShaper shaper(this, run); 77 if (shaper.shape()) 78 return shaper.totalWidth(); 79 LOG_ERROR("Shaper couldn't shape text run."); 80 return 0; 81 } 49 UErrorCode error = U_ZERO_ERROR; 50 Vector<UChar, 4> normalizedCharacters(length); 51 int32_t normalizedLength = unorm_normalize(characters, length, UNORM_NFC, UNORM_UNICODE_3_2, normalizedCharacters.data(), length, &error); 52 if (U_FAILURE(error)) 53 return nullptr; 82 54 83 int FontCascade::offsetForPositionForComplexText(const TextRun& run, float x, bool includePartialGlyphs) const 84 { 85 HarfBuzzShaper shaper(this, run); 86 if (shaper.shape()) 87 return shaper.offsetForPosition(x, includePartialGlyphs); 88 LOG_ERROR("Shaper couldn't shape text run."); 89 return 0; 90 } 55 UChar32 character; 56 unsigned clusterLength = 0; 57 SurrogatePairAwareTextIterator iterator(normalizedCharacters.data(), 0, normalizedLength, normalizedLength); 58 if (!iterator.consume(character, clusterLength)) 59 return nullptr; 91 60 92 void FontCascade::adjustSelectionRectForComplexText(const TextRun& run, LayoutRect& selectionRect, unsigned from, unsigned to) const 93 { 94 HarfBuzzShaper shaper(this, run); 95 GlyphBuffer glyphBuffer; 96 if (!shaper.shape(&glyphBuffer, from, to)) { 97 LOG_ERROR("Shaper couldn't shape text run."); 98 return; 99 } 100 101 // FIXME: This should mimic Mac port. 102 selectionRect = LayoutRect(shaper.selectionRect(selectionRect.location(), selectionRect.height().toInt(), from, to)); 61 return glyphDataForCharacter(character, false, NormalVariant).font; 103 62 } 104 63 -
trunk/Source/WebCore/platform/graphics/cocoa/FontCascadeCocoa.mm
r220809 r222843 492 492 } 493 493 494 void FontCascade::adjustSelectionRectForComplexText(const TextRun& run, LayoutRect& selectionRect, unsigned from, unsigned to) const495 {496 ComplexTextController controller(*this, run);497 controller.advance(from);498 float beforeWidth = controller.runWidthSoFar();499 controller.advance(to);500 float afterWidth = controller.runWidthSoFar();501 502 if (run.rtl())503 selectionRect.move(controller.totalWidth() - afterWidth, 0);504 else505 selectionRect.move(beforeWidth, 0);506 selectionRect.setWidth(LayoutUnit::fromFloatCeil(afterWidth - beforeWidth));507 }508 509 float FontCascade::getGlyphsAndAdvancesForComplexText(const TextRun& run, unsigned from, unsigned to, GlyphBuffer& glyphBuffer, ForTextEmphasisOrNot forTextEmphasis) const510 {511 float initialAdvance;512 513 ComplexTextController controller(*this, run, false, 0, forTextEmphasis);514 GlyphBuffer dummyGlyphBuffer;515 controller.advance(from, &dummyGlyphBuffer);516 controller.advance(to, &glyphBuffer);517 518 if (glyphBuffer.isEmpty())519 return 0;520 521 if (run.rtl()) {522 // Exploit the fact that the sum of the paint advances is equal to523 // the sum of the layout advances.524 initialAdvance = controller.totalWidth();525 for (unsigned i = 0; i < dummyGlyphBuffer.size(); ++i)526 initialAdvance -= dummyGlyphBuffer.advanceAt(i).width();527 for (unsigned i = 0; i < glyphBuffer.size(); ++i)528 initialAdvance -= glyphBuffer.advanceAt(i).width();529 glyphBuffer.reverse(0, glyphBuffer.size());530 } else {531 initialAdvance = dummyGlyphBuffer.initialAdvance().width();532 for (unsigned i = 0; i < dummyGlyphBuffer.size(); ++i)533 initialAdvance += dummyGlyphBuffer.advanceAt(i).width();534 }535 536 return initialAdvance;537 }538 539 float FontCascade::floatWidthForComplexText(const TextRun& run, HashSet<const Font*>* fallbackFonts, GlyphOverflow* glyphOverflow) const540 {541 ComplexTextController controller(*this, run, true, fallbackFonts);542 if (glyphOverflow) {543 glyphOverflow->top = std::max<int>(glyphOverflow->top, ceilf(-controller.minGlyphBoundingBoxY()) - (glyphOverflow->computeBounds ? 0 : fontMetrics().ascent()));544 glyphOverflow->bottom = std::max<int>(glyphOverflow->bottom, ceilf(controller.maxGlyphBoundingBoxY()) - (glyphOverflow->computeBounds ? 0 : fontMetrics().descent()));545 glyphOverflow->left = std::max<int>(0, ceilf(-controller.minGlyphBoundingBoxX()));546 glyphOverflow->right = std::max<int>(0, ceilf(controller.maxGlyphBoundingBoxX() - controller.totalWidth()));547 }548 return controller.totalWidth();549 }550 551 int FontCascade::offsetForPositionForComplexText(const TextRun& run, float x, bool includePartialGlyphs) const552 {553 ComplexTextController controller(*this, run);554 return controller.offsetForPosition(x, includePartialGlyphs);555 }556 557 494 // FIXME: Use this on all ports. 558 495 const Font* FontCascade::fontForCombiningCharacterSequence(const UChar* characters, size_t length) const -
trunk/Source/WebCore/platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp
r211836 r222843 1 1 /* 2 * Copyright (C) 2017 Apple Inc. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * 2. Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 15 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 16 * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY 17 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 18 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 19 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 22 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 */ 2 * Copyright (C) 2017 Apple Inc. All rights reserved. 3 * Copyright (C) 2017 Igalia S.L. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 14 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY 15 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY 18 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 21 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 23 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 */ 24 25 25 26 #include "config.h" 26 27 #include "ComplexTextController.h" 27 28 29 #include "FontCascade.h" 30 #include "HbUniquePtr.h" 31 #include "SurrogatePairAwareTextIterator.h" 32 #include <hb-icu.h> 33 28 34 namespace WebCore { 29 35 30 void ComplexTextController::collectComplexTextRunsForCharacters(const UChar*, unsigned, unsigned, const Font*) 31 { 32 // FIXME: Implement this. 33 ASSERT_NOT_REACHED(); 34 } 35 36 } 36 static inline float harfBuzzPositionToFloat(hb_position_t value) 37 { 38 return static_cast<float>(value) / (1 << 16); 39 } 40 41 ComplexTextController::ComplexTextRun::ComplexTextRun(hb_buffer_t* buffer, const Font& font, const UChar* characters, unsigned stringLocation, unsigned stringLength, unsigned indexBegin, unsigned indexEnd, bool ltr) 42 : m_initialAdvance(0, 0) 43 , m_font(font) 44 , m_characters(characters) 45 , m_stringLength(stringLength) 46 , m_indexBegin(indexBegin) 47 , m_indexEnd(indexEnd) 48 , m_glyphCount(hb_buffer_get_length(buffer)) 49 , m_stringLocation(stringLocation) 50 , m_isLTR(ltr) 51 { 52 if (!m_glyphCount) 53 return; 54 55 m_glyphs.grow(m_glyphCount); 56 m_baseAdvances.grow(m_glyphCount); 57 m_glyphOrigins.grow(m_glyphCount); 58 m_coreTextIndices.grow(m_glyphCount); 59 60 hb_glyph_info_t* glyphInfos = hb_buffer_get_glyph_infos(buffer, nullptr); 61 hb_glyph_position_t* glyphPositions = hb_buffer_get_glyph_positions(buffer, nullptr); 62 63 // HarfBuzz returns the shaping result in visual order. We don't need to flip for RTL. 64 for (unsigned i = 0; i < m_glyphCount; ++i) { 65 m_coreTextIndices[i] = glyphInfos[i].cluster; 66 67 uint16_t glyph = glyphInfos[i].codepoint; 68 if (m_font.isZeroWidthSpaceGlyph(glyph)) { 69 m_glyphs[i] = glyph; 70 m_baseAdvances[i] = { }; 71 m_glyphOrigins[i] = { }; 72 continue; 73 } 74 75 float offsetX = harfBuzzPositionToFloat(glyphPositions[i].x_offset); 76 float offsetY = -harfBuzzPositionToFloat(glyphPositions[i].y_offset); 77 float advanceX = harfBuzzPositionToFloat(glyphPositions[i].x_advance); 78 float advanceY = harfBuzzPositionToFloat(glyphPositions[i].y_advance); 79 80 m_glyphs[i] = glyph; 81 m_baseAdvances[i] = { advanceX, advanceY }; 82 m_glyphOrigins[i] = { offsetX, offsetY }; 83 } 84 } 85 86 static const unsigned hbEnd = static_cast<unsigned>(-1); 87 88 static Vector<hb_feature_t, 4> fontFeatures(const FontCascade& font, FontOrientation orientation) 89 { 90 Vector<hb_feature_t, 4> features; 91 92 if (orientation == Vertical) { 93 features.append({ HarfBuzzFace::vertTag, 1, 0, hbEnd }); 94 features.append({ HarfBuzzFace::vrt2Tag, 1, 0, hbEnd }); 95 } 96 97 hb_feature_t kerning = { HarfBuzzFace::kernTag, 0, 0, hbEnd }; 98 if (font.enableKerning()) 99 kerning.value = 1; 100 features.append(WTFMove(kerning)); 101 102 for (auto& feature : font.fontDescription().featureSettings()) { 103 auto& tag = feature.tag(); 104 features.append({ HB_TAG(tag[0], tag[1], tag[2], tag[3]), static_cast<uint32_t>(feature.value()), 0, hbEnd }); 105 } 106 107 return features; 108 } 109 110 static std::optional<UScriptCode> characterScript(UChar32 character) 111 { 112 UErrorCode errorCode = U_ZERO_ERROR; 113 UScriptCode script = uscript_getScript(character, &errorCode); 114 if (U_FAILURE(errorCode)) 115 return std::nullopt; 116 return script; 117 } 118 119 static bool scriptsAreCompatibleForCharacters(UScriptCode script, UScriptCode previousScript, UChar32 character, UChar32 previousCharacter) 120 { 121 if (script == previousScript) 122 return true; 123 124 if (script == USCRIPT_INHERITED || previousScript == USCRIPT_COMMON) 125 return true; 126 127 if (script == USCRIPT_COMMON) { 128 // §5.1 Handling Characters with the Common Script Property. 129 // Programs must resolve any of the special Script property values, such as Common, 130 // based on the context of the surrounding characters. A simple heuristic uses the 131 // script of the preceding character, which works well in many cases. 132 // http://www.unicode.org/reports/tr24/#Common. 133 // 134 // FIXME: cover all other cases mentioned in the spec (ie. brackets or quotation marks). 135 // https://bugs.webkit.org/show_bug.cgi?id=177003. 136 // 137 // We use a slightly more conservative heuristic than the one proposed in the spec, 138 // using the script of the previous character only if both are ASCII. 139 if (isASCII(character) && isASCII(previousCharacter)) 140 return true; 141 } 142 143 return uscript_hasScript(character, previousScript); 144 } 145 146 struct HBRun { 147 unsigned startIndex; 148 unsigned endIndex; 149 UScriptCode script; 150 }; 151 152 static std::optional<HBRun> findNextRun(const UChar* characters, unsigned length, unsigned offset) 153 { 154 SurrogatePairAwareTextIterator textIterator(characters + offset, offset, length, length); 155 UChar32 character; 156 unsigned clusterLength = 0; 157 if (!textIterator.consume(character, clusterLength)) 158 return std::nullopt; 159 160 auto currentScript = characterScript(character); 161 if (!currentScript) 162 return std::nullopt; 163 164 unsigned startIndex = offset; 165 UChar32 previousCharacter = character; 166 for (textIterator.advance(clusterLength); textIterator.consume(character, clusterLength); previousCharacter = character, textIterator.advance(clusterLength)) { 167 if (FontCascade::treatAsZeroWidthSpace(character)) 168 continue; 169 170 auto nextScript = characterScript(character); 171 if (!nextScript) 172 return std::nullopt; 173 174 if (!scriptsAreCompatibleForCharacters(nextScript.value(), currentScript.value(), character, previousCharacter)) 175 return std::optional<HBRun>({ startIndex, textIterator.currentIndex(), currentScript.value() }); 176 } 177 178 return std::optional<HBRun>({ startIndex, textIterator.currentIndex(), currentScript.value() }); 179 } 180 181 void ComplexTextController::collectComplexTextRunsForCharacters(const UChar* characters, unsigned length, unsigned stringLocation, const Font* font) 182 { 183 if (!font) { 184 // Create a run of missing glyphs from the primary font. 185 m_complexTextRuns.append(ComplexTextRun::create(m_font.primaryFont(), characters, stringLocation, length, 0, length, m_run.ltr())); 186 return; 187 } 188 189 Vector<HBRun> runList; 190 unsigned offset = 0; 191 while (offset < length) { 192 auto run = findNextRun(characters, length, offset); 193 if (!run) 194 break; 195 runList.append(run.value()); 196 offset = run->endIndex; 197 } 198 199 size_t runCount = runList.size(); 200 if (!runCount) 201 return; 202 203 const auto& fontPlatformData = font->platformData(); 204 auto features = fontFeatures(m_font, fontPlatformData.orientation()); 205 HbUniquePtr<hb_buffer_t> buffer(hb_buffer_create()); 206 hb_buffer_set_unicode_funcs(buffer.get(), hb_icu_get_unicode_funcs()); 207 208 for (unsigned i = 0; i < runCount; ++i) { 209 auto& run = runList[m_run.rtl() ? runCount - i - 1 : i]; 210 211 hb_buffer_set_script(buffer.get(), hb_icu_script_to_script(run.script)); 212 if (!m_mayUseNaturalWritingDirection || m_run.directionalOverride()) 213 hb_buffer_set_direction(buffer.get(), m_run.rtl() ? HB_DIRECTION_RTL : HB_DIRECTION_LTR); 214 else { 215 // Leaving direction to HarfBuzz to guess is *really* bad, but will do for now. 216 hb_buffer_guess_segment_properties(buffer.get()); 217 } 218 hb_buffer_add_utf16(buffer.get(), reinterpret_cast<const uint16_t*>(characters), length, run.startIndex, run.endIndex - run.startIndex); 219 220 HarfBuzzFace* face = fontPlatformData.harfBuzzFace(); 221 ASSERT(face); 222 if (fontPlatformData.orientation() == Vertical) 223 face->setScriptForVerticalGlyphSubstitution(buffer.get()); 224 225 HbUniquePtr<hb_font_t> harfBuzzFont(face->createFont()); 226 hb_shape(harfBuzzFont.get(), buffer.get(), features.isEmpty() ? nullptr : features.data(), features.size()); 227 m_complexTextRuns.append(ComplexTextRun::create(buffer.get(), *font, characters, stringLocation, length, run.startIndex, run.endIndex, m_run.ltr())); 228 hb_buffer_reset(buffer.get()); 229 } 230 } 231 232 } // namespace WebCore -
trunk/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp
r221909 r222843 35 35 #include "CairoUtilities.h" 36 36 #include "Font.h" 37 #include "FontCascade.h" 37 38 #include "FontPlatformData.h" 38 39 #include "GlyphBuffer.h" 39 #include "HarfBuzzShaper.h"40 40 #include "TextEncoding.h" 41 41 #include <cairo-ft.h> … … 102 102 char buffer[U8_MAX_LENGTH]; 103 103 size_t bufferLength = 0; 104 if (FontCascade::treatAsSpace(unicode) && unicode != '\t') 105 unicode = ' '; 106 else if (FontCascade::treatAsZeroWidthSpaceInComplexScript(unicode)) 107 unicode = zeroWidthSpace; 104 108 U8_APPEND_UNSAFE(buffer, bufferLength, unicode); 105 if (cairo_scaled_font_text_to_glyphs(scaledFont, 0, 0, buffer, bufferLength, &glyphs, &numGlyphs, nullptr, nullptr, nullptr) != CAIRO_STATUS_SUCCESS) 106 return false; 107 if (!numGlyphs) 109 if (cairo_scaled_font_text_to_glyphs(scaledFont, 0, 0, buffer, bufferLength, &glyphs, &numGlyphs, nullptr, nullptr, nullptr) != CAIRO_STATUS_SUCCESS || !numGlyphs) 108 110 return false; 109 111 result.iterator->value = glyphs[0].index; … … 215 217 } 216 218 217 GlyphBufferAdvance HarfBuzzShaper::createGlyphBufferAdvance(float width, float height)218 {219 return GlyphBufferAdvance(width, height);220 }221 222 219 } // namespace WebCore -
trunk/Source/WebCore/platform/graphics/opentype/OpenTypeMathData.h
r222113 r222843 34 34 35 35 #if !ENABLE(OPENTYPE_MATH) && USE(HARFBUZZ) 36 #include "HbUniquePtr.h" 36 37 #include <hb-ot.h> 37 38 #endif … … 135 136 RefPtr<SharedBuffer> m_mathBuffer; 136 137 #elif USE(HARFBUZZ) 137 struct HbFontDeleter { 138 void operator()(hb_font_t* font) 139 { 140 hb_font_destroy(font); 141 } 142 }; 143 std::unique_ptr<hb_font_t, HbFontDeleter> m_mathFont; 138 HbUniquePtr<hb_font_t> m_mathFont; 144 139 #endif 145 140 };
Note: See TracChangeset
for help on using the changeset viewer.