From 42897806629b8a22ec00c62db8d14d856a544d83 Mon Sep 17 00:00:00 2001 From: Ojan Vafai Date: Thu, 9 Apr 2015 11:40:03 -0700 Subject: [PATCH] Stop rendering text inside flex boxes. Text can only only inside paragraphs and inlines. This patch makes it so we stop putting such text nodes in the render tree at all if their parent is not a paragraph or an inline. This is the final step in making it so that we don't create anonymous renderers, which fixes a crash in the new custom layout code. R=eseidel@chromium.org Review URL: https://codereview.chromium.org/1077473002 --- engine/src/flutter/examples/home.sky | 1 + ...ound-opaque-clipped-gradients-expected.txt | 2 +- .../background-opaque-clipped-gradients.sky | 2 +- .../src/flutter/tests/editing/backspace.sky | 3 +- engine/src/flutter/tests/editing/replace.sky | 3 +- .../src/flutter/tests/editing/selection.sky | 3 +- engine/src/flutter/tests/editing/typing.sky | 3 +- .../tests/harness/reftest-mismatch.sky | 2 +- .../layout/borderbox-percent-padding.sky | 9 ++-- .../tests/layout/continuations-expected.txt | 12 ------ .../flutter/tests/layout/continuations.sky | 4 -- .../layout/custom-dirty-bits-expected.txt | 4 ++ .../tests/layout/custom-dirty-bits.sky | 16 ++++++++ .../layout/document-elementFromPoint.sky | 2 +- .../tests/layout/ellipsis-expected.txt | 27 ++++++------ engine/src/flutter/tests/layout/ellipsis.sky | 10 +---- .../layout/position-absolute-expected.txt | 2 +- .../tests/layout/position-absolute-pixels.sky | 9 ++-- .../tests/layout/position-absolute.sky | 9 ++-- engine/src/flutter/tests/lowlevel/filters.sky | 2 +- .../tests/lowlevel/hello-world-expected.txt | 2 +- .../flutter/tests/lowlevel/hello-world.sky | 2 +- .../flutter/tests/lowlevel/home-expected.txt | 14 +++---- engine/src/flutter/tests/lowlevel/home.sky | 10 ++--- .../tests/lowlevel/iframe-expected.txt | 41 ++++++++----------- engine/src/flutter/tests/lowlevel/iframe.sky | 6 +-- .../flutter/tests/lowlevel/style-basic.sky | 6 +-- engine/src/flutter/tests/lowlevel/text.sky | 4 +- engine/src/flutter/tests/modules/basic.sky | 2 +- .../tests/modules/import-syntax-error.sky | 2 +- .../tests/modules/import-without-export.sky | 2 +- .../tests/modules/imports-can-import.sky | 2 +- .../tests/modules/imports-can-load-404s.sky | 2 +- engine/src/flutter/tests/parser/comments.sky | 4 +- 34 files changed, 101 insertions(+), 123 deletions(-) delete mode 100644 engine/src/flutter/tests/layout/continuations-expected.txt delete mode 100644 engine/src/flutter/tests/layout/continuations.sky create mode 100644 engine/src/flutter/tests/layout/custom-dirty-bits-expected.txt create mode 100644 engine/src/flutter/tests/layout/custom-dirty-bits.sky diff --git a/engine/src/flutter/examples/home.sky b/engine/src/flutter/examples/home.sky index df8866ada6..95c4b55355 100644 --- a/engine/src/flutter/examples/home.sky +++ b/engine/src/flutter/examples/home.sky @@ -1,5 +1,6 @@ #!mojo mojo:sky_viewer diff --git a/engine/src/flutter/tests/clipping/background-opaque-clipped-gradients-expected.txt b/engine/src/flutter/tests/clipping/background-opaque-clipped-gradients-expected.txt index d9a7f68bc2..354bedfcd8 100644 --- a/engine/src/flutter/tests/clipping/background-opaque-clipped-gradients-expected.txt +++ b/engine/src/flutter/tests/clipping/background-opaque-clipped-gradients-expected.txt @@ -1,7 +1,7 @@ layer at (0,0) size 800x600 RenderView {#document} at (0,0) size 800x600 RenderFlexibleBox {sky} at (0,0) size 800x238 - RenderParagraph (anonymous) at (0,0) size 800x38 + RenderParagraph {p} at (0,0) size 800x38 RenderText {#text} at (0,0) size 778x38 text run at (0,0) width 778: "Test passes if the image below shows nested green, blue and yellow squares with a dotted black" text run at (0,19) width 59: "border." diff --git a/engine/src/flutter/tests/clipping/background-opaque-clipped-gradients.sky b/engine/src/flutter/tests/clipping/background-opaque-clipped-gradients.sky index d14870f2bc..61c373c6e2 100644 --- a/engine/src/flutter/tests/clipping/background-opaque-clipped-gradients.sky +++ b/engine/src/flutter/tests/clipping/background-opaque-clipped-gradients.sky @@ -12,6 +12,6 @@ div { } -Test passes if the image below shows nested green, blue and yellow squares with a dotted black border. +

Test passes if the image below shows nested green, blue and yellow squares with a dotted black border.

diff --git a/engine/src/flutter/tests/editing/backspace.sky b/engine/src/flutter/tests/editing/backspace.sky index ff3d63b320..e63591e0cb 100644 --- a/engine/src/flutter/tests/editing/backspace.sky +++ b/engine/src/flutter/tests/editing/backspace.sky @@ -2,10 +2,9 @@ -
+

diff --git a/engine/src/flutter/tests/layout/continuations-expected.txt b/engine/src/flutter/tests/layout/continuations-expected.txt deleted file mode 100644 index b2000b6c4e..0000000000 --- a/engine/src/flutter/tests/layout/continuations-expected.txt +++ /dev/null @@ -1,12 +0,0 @@ -layer at (0,0) size 800x600 - RenderView {#document} at (0,0) size 800x600 - RenderFlexibleBox {sky} at (0,0) size 800x19 - RenderFlexibleBox {div} at (0,0) size 800x19 - RenderParagraph {span} at (0,0) size 800x19 - RenderFlexibleBox {div} at (0,0) size 25.22x19 - RenderParagraph (anonymous) at (0,0) size 25.22x19 - RenderText {#text} at (0,0) size 26x19 - text run at (0,0) width 26: "foo" - RenderText {#text} at (25,0) size 27x19 - text run at (25,0) width 27: "bar" - diff --git a/engine/src/flutter/tests/layout/continuations.sky b/engine/src/flutter/tests/layout/continuations.sky deleted file mode 100644 index 2c04baa0f3..0000000000 --- a/engine/src/flutter/tests/layout/continuations.sky +++ /dev/null @@ -1,4 +0,0 @@ - - -
foo
bar
-
diff --git a/engine/src/flutter/tests/layout/custom-dirty-bits-expected.txt b/engine/src/flutter/tests/layout/custom-dirty-bits-expected.txt new file mode 100644 index 0000000000..73a6e0ab37 --- /dev/null +++ b/engine/src/flutter/tests/layout/custom-dirty-bits-expected.txt @@ -0,0 +1,4 @@ +layer at (0,0) size 800x600 + RenderView {#document} at (0,0) size 800x600 + RenderCustomLayout {block} at (0,0) size 0x0 + diff --git a/engine/src/flutter/tests/layout/custom-dirty-bits.sky b/engine/src/flutter/tests/layout/custom-dirty-bits.sky new file mode 100644 index 0000000000..ec5b750956 --- /dev/null +++ b/engine/src/flutter/tests/layout/custom-dirty-bits.sky @@ -0,0 +1,16 @@ + + +hello + + diff --git a/engine/src/flutter/tests/layout/document-elementFromPoint.sky b/engine/src/flutter/tests/layout/document-elementFromPoint.sky index eac408e357..130e1c158b 100644 --- a/engine/src/flutter/tests/layout/document-elementFromPoint.sky +++ b/engine/src/flutter/tests/layout/document-elementFromPoint.sky @@ -3,7 +3,7 @@ foo, parent { width: 100px; height: 100px; background: blue; } bar { width: 100px; height: 100px; background: purple; } parent { display: paragraph; } -child { background: salmon; } +child { background: salmon; display: paragraph; } canvas { height: 50px; background-color: pink; } inline-flex { display: inline-flex; width: 50px; height: 50px; background: green; } grand-child { width: 50px; height: 50px; transform: translate3d(100px, 0, 0); background: papayawhip; } diff --git a/engine/src/flutter/tests/layout/ellipsis-expected.txt b/engine/src/flutter/tests/layout/ellipsis-expected.txt index 27a0b36487..8ff4f38386 100644 --- a/engine/src/flutter/tests/layout/ellipsis-expected.txt +++ b/engine/src/flutter/tests/layout/ellipsis-expected.txt @@ -1,20 +1,17 @@ layer at (0,0) size 800x600 RenderView {#document} at (0,0) size 800x600 - RenderFlexibleBox {sky} at (0,0) size 800x94 -layer at (0,0) size 56x69 - RenderFlexibleBox {div} at (0,0) size 56x69 [border: (3px solid #0000FF)] - RenderParagraph (anonymous) at (3,3) size 50x19 - RenderText {#text} at (0,0) size 91x19 - text run at (0,0) width 91: "These lines" - RenderParagraph (anonymous) at (3,47) size 50x19 - RenderText {#text} at (0,0) size 94x19 - text run at (0,0) width 94: "all ellipsize." -layer at (3,22) size 56x25 backgroundClip at (3,22) size 50x25 - RenderParagraph {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 (0,69) size 56x25 - RenderParagraph {p} at (0,69) size 56x25 [border: (3px solid #FF0000)] + RenderFlexibleBox {sky} at (0,0) size 800x50 +layer at (0,0) size 56x25 + RenderParagraph {p} at (0,0) size 56x25 [border: (3px solid #FF0000)] + RenderText {#text} at (3,3) size 96x19 + text run at (3,3) width 96: "These lines " + RenderInline {p} at (0,0) size 54x19 [border: (3px solid #FF0000)] + RenderText {#text} at (98,3) size 54x19 + text run at (98,3) width 54: "should" + RenderText {#text} at (151,3) size 99x19 + text run at (151,3) width 99: " all ellipsize." +layer at (0,25) size 56x25 + RenderParagraph {p} at (0,25) 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." diff --git a/engine/src/flutter/tests/layout/ellipsis.sky b/engine/src/flutter/tests/layout/ellipsis.sky index 08288a42a0..96f9918311 100644 --- a/engine/src/flutter/tests/layout/ellipsis.sky +++ b/engine/src/flutter/tests/layout/ellipsis.sky @@ -1,16 +1,8 @@ -
These lines

should

all ellipsize.
+

These lines

should

all ellipsize.

As should this.

diff --git a/engine/src/flutter/tests/layout/position-absolute-expected.txt b/engine/src/flutter/tests/layout/position-absolute-expected.txt index 49104d7b25..3769d04d04 100644 --- a/engine/src/flutter/tests/layout/position-absolute-expected.txt +++ b/engine/src/flutter/tests/layout/position-absolute-expected.txt @@ -7,7 +7,7 @@ layer at (0,0) size 100x100 layer at (0,0) size 20x20 RenderFlexibleBox {absolute} at (0,0) size 20x20 [bgcolor=#008000] layer at (0,150) size 100x100 - RenderParagraph {paragraph} at (0,150) size 100x100 [bgcolor=#FFA500] + RenderParagraph {p} at (0,150) size 100x100 [bgcolor=#FFA500] RenderFlexibleBox {spacer} at (0,0) size 40x40 [bgcolor=#FFEFD5] [border: (5px solid #800080)] RenderFlexibleBox {spacer} at (40,0) size 40x40 [bgcolor=#FFEFD5] [border: (5px solid #800080)] layer at (0,150) size 20x20 diff --git a/engine/src/flutter/tests/layout/position-absolute-pixels.sky b/engine/src/flutter/tests/layout/position-absolute-pixels.sky index bf55b3fee0..622c9666a1 100644 --- a/engine/src/flutter/tests/layout/position-absolute-pixels.sky +++ b/engine/src/flutter/tests/layout/position-absolute-pixels.sky @@ -1,7 +1,7 @@ -
about:blank
-
Welcome to Sky!
+

about:blank

+

Welcome to Sky!

\ No newline at end of file diff --git a/engine/src/flutter/tests/lowlevel/iframe-expected.txt b/engine/src/flutter/tests/lowlevel/iframe-expected.txt index d900db41b9..0bf0008e29 100644 --- a/engine/src/flutter/tests/lowlevel/iframe-expected.txt +++ b/engine/src/flutter/tests/lowlevel/iframe-expected.txt @@ -1,26 +1,21 @@ layer at (0,0) size 800x600 RenderView {#document} at (0,0) size 800x600 - RenderFlexibleBox {sky} at (0,0) size 800x506 - RenderFlexibleBox {div} at (0,0) size 800x228 - RenderParagraph (anonymous) at (0,0) size 800x19 - RenderText {#text} at (0,0) size 76x19 - text run at (0,0) width 76: "This is an" - RenderParagraph (anonymous) at (0,209) size 800x19 - RenderText {#text} at (0,0) size 72x19 - text run at (0,0) width 72: "element." - RenderFlexibleBox {div} at (0,228) size 800x200 - RenderParagraph (anonymous) at (0,0) size 800x19 - RenderText {#text} at (0,0) size 99x19 - text run at (0,0) width 99: "Placeholder." - RenderFlexibleBox {div} at (0,428) size 800x78 - RenderParagraph (anonymous) at (0,0) size 800x19 - RenderText {#text} at (0,0) size 218x19 - text run at (0,0) width 218: "Small iframe should render" - RenderParagraph (anonymous) at (0,59) size 800x19 - RenderText {#text} at (0,0) size 76x19 - text run at (0,0) width 76: "correctly." -layer at (0,19) size 800x190 - RenderReplaced {iframe} at (0,19) size 800x190 [border: (20px solid #000000)] -layer at (0,447) size 800x40 - RenderReplaced {iframe} at (0,19) size 800x40 + RenderFlexibleBox {sky} at (0,0) size 800x438 + RenderParagraph {p} at (0,0) size 800x194 + RenderText {#text} at (0,175) size 81x19 + text run at (0,175) width 81: "This is an " + RenderText {#text} at (420,175) size 77x19 + text run at (420,175) width 77: " element." + RenderParagraph {p} at (0,194) size 800x200 + RenderText {#text} at (0,0) size 99x19 + text run at (0,0) width 99: "Placeholder." + RenderParagraph {p} at (0,394) size 800x44 + RenderText {#text} at (0,25) size 223x19 + text run at (0,25) width 223: "Small iframe should render " + RenderText {#text} at (522,25) size 82x19 + text run at (522,25) width 82: " correctly." +layer at (81,0) size 340x190 + RenderReplaced {iframe} at (80.67,0) size 340x190 [border: (20px solid #000000)] +layer at (223,394) size 300x40 + RenderReplaced {iframe} at (222.81,0) size 300x40 diff --git a/engine/src/flutter/tests/lowlevel/iframe.sky b/engine/src/flutter/tests/lowlevel/iframe.sky index b9d75546f5..85c98cf138 100644 --- a/engine/src/flutter/tests/lowlevel/iframe.sky +++ b/engine/src/flutter/tests/lowlevel/iframe.sky @@ -1,9 +1,9 @@ -
This is an element.
-
Placeholder.
-
Small iframe should render correctly.
+

This is an element.

+

Placeholder.

+

Small iframe should render correctly.