Fix text-overflow:ellipsis.

This regressed in 3db9471ae80bd492f2a346113d2323ba8eee0c09.

Accidentally sent some code down the override by sending the
top LayoutUnit instead of the left/right LayoutUnit. The
root problem was bad overloading, which is also fixed in
this patch. Inlined the overloaded method since one of
the calls was only called from one place.

The new test demonstrates the ellipsizing, but that doesn't
show through in the render tree dump. We don't get real
test coverage here until we either start doing pixel tests
or start exposing ellipsis in the render tree dumps.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/751483002
This commit is contained in:
Ojan Vafai
2014-11-21 11:26:05 -08:00
parent 8009a70eea
commit eda246d9f3
2 changed files with 47 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
layer at (0,0) size 800x600
RenderView {#document} at (0,0) size 800x600
layer at (0,0) size 800x94
RenderBlock {sky} at (0,0) size 800x94
layer at (372,0) size 56x69 clip at (375,3) size 50x63 scrollWidth 93
RenderBlock {div} at (372,0) size 56x69 [border: (3px solid #0000FF)]
RenderBlock (anonymous) at (3,3) size 50x19
RenderText {#text} at (0,0) size 91x19
text run at (0,0) width 91: "These lines"
RenderBlock (anonymous) at (3,47) size 50x19
RenderText {#text} at (0,0) size 94x19
text run at (0,0) width 94: "all ellipsize."
layer at (375,22) size 56x25 backgroundClip at (375,22) size 50x25 clip at (378,25) size 47x19 outlineClip at (375,3) size 50x63 scrollWidth 53
RenderBlock {p} at (3,22) size 56x25 [border: (3px solid #FF0000)]
RenderText {#text} at (3,3) size 54x19
text run at (3,3) width 54: "should"
layer at (372,69) size 56x25 clip at (375,72) size 50x19 scrollWidth 117
RenderBlock {p} at (372,69) size 56x25 [border: (3px solid #FF0000)]
RenderInline {span} at (0,0) size 117x19
RenderText {#text} at (3,3) size 117x19
text run at (3,3) width 117: "As should this."

View File

@@ -0,0 +1,25 @@
<sky>
<import src="../resources/dump-as-render-tree.sky" />
<style>
div {
width: 50px;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
border: 3px solid blue;
}
p {
width: 50px;
display: paragraph;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
border: 3px solid red;
}
span {
display: inline;
}
</style>
<div>These lines <p>should</p> all ellipsize. </div>
<p><span>As should this.</span></p>
</sky>