Changeset 166301 in webkit
- Timestamp:
- Mar 26, 2014 11:20:15 AM (10 years ago)
- Location:
- trunk
- Files:
-
- 12 deleted
- 54 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ChangeLog
r166239 r166301 1 2014-03-26 Zoltan Horvath <zoltan@webkit.org> 2 3 [CSS Shapes] Remove shape-inside support 4 https://bugs.webkit.org/show_bug.cgi?id=130698 5 6 Reviewed by David Hyatt. 7 8 * Source/cmake/WebKitFeatures.cmake: 9 * Source/cmakeconfig.h.cmake: 10 1 11 2014-03-25 Martin Robinson <mrobinson@igalia.com> 2 12 -
trunk/LayoutTests/ChangeLog
r166299 r166301 1 2014-03-26 Zoltan Horvath <zoltan@webkit.org> 2 3 [CSS Shapes] Remove shape-inside support 4 https://bugs.webkit.org/show_bug.cgi?id=130698 5 6 Reviewed by David Hyatt. 7 8 * fast/regions/shape-inside/shape-inside-on-additional-regions-expected.html: Removed. 9 * fast/regions/shape-inside/shape-inside-on-additional-regions.html: Removed. 10 * fast/regions/shape-inside/shape-inside-on-first-region-block-content-expected.html: Removed. 11 * fast/regions/shape-inside/shape-inside-on-first-region-block-content.html: Removed. 12 * fast/regions/shape-inside/shape-inside-on-first-region-inline-content-expected.html: Removed. 13 * fast/regions/shape-inside/shape-inside-on-first-region-inline-content.html: Removed. 14 * fast/regions/shape-inside/shape-inside-on-multiple-autoheight-regions-expected.html: Removed. 15 * fast/regions/shape-inside/shape-inside-on-multiple-autoheight-regions.html: Removed. 16 * fast/regions/shape-inside/shape-inside-on-multiple-regions-bottom-adjustment-expected.html: Removed. 17 * fast/regions/shape-inside/shape-inside-on-multiple-regions-bottom-adjustment.html: Removed. 18 * fast/regions/shape-inside/shape-inside-on-regions-block-content-basic-overflow-shape-top-offset-expected.html: Removed. 19 * fast/regions/shape-inside/shape-inside-on-regions-block-content-basic-overflow-shape-top-offset.html: Removed. 20 * fast/regions/shape-inside/shape-inside-on-regions-block-content-overflow-bottom-positioned-multiple-shapes-expected.html: Removed. 21 * fast/regions/shape-inside/shape-inside-on-regions-block-content-overflow-bottom-positioned-multiple-shapes.html: Removed. 22 * fast/regions/shape-inside/shape-inside-on-regions-block-content-overflow-multiple-shapes-expected.html: Removed. 23 * fast/regions/shape-inside/shape-inside-on-regions-block-content-overflow-multiple-shapes.html: Removed. 24 * fast/regions/shape-inside/shape-inside-on-regions-block-content-polygon-with-adjustment-expected.html: Removed. 25 * fast/regions/shape-inside/shape-inside-on-regions-block-content-polygon-with-adjustment.html: Removed. 26 * fast/regions/shape-inside/shape-inside-on-regions-expected.html: Removed. 27 * fast/regions/shape-inside/shape-inside-on-regions-inline-content-basic-overflow-shape-top-offset-expected.html: Removed. 28 * fast/regions/shape-inside/shape-inside-on-regions-inline-content-basic-overflow-shape-top-offset.html: Removed. 29 * fast/regions/shape-inside/shape-inside-on-regions-inline-content-expected.html: Removed. 30 * fast/regions/shape-inside/shape-inside-on-regions-inline-content-overflow-bottom-positioned-multiple-shapes-expected.html: Removed. 31 * fast/regions/shape-inside/shape-inside-on-regions-inline-content-overflow-bottom-positioned-multiple-shapes.html: Removed. 32 * fast/regions/shape-inside/shape-inside-on-regions-inline-content-overflow-multiple-shapes-expected.html: Removed. 33 * fast/regions/shape-inside/shape-inside-on-regions-inline-content-overflow-multiple-shapes.html: Removed. 34 * fast/regions/shape-inside/shape-inside-on-regions-inline-content-polygon-with-adjustment-expected.html: Removed. 35 * fast/regions/shape-inside/shape-inside-on-regions-inline-content-polygon-with-adjustment.html: Removed. 36 * fast/regions/shape-inside/shape-inside-on-regions-inline-content.html: Removed. 37 * fast/regions/shape-inside/shape-inside-on-regions.html: Removed. 38 * fast/regions/shape-inside/shape-inside-on-second-region-block-content-expected.html: Removed. 39 * fast/regions/shape-inside/shape-inside-on-second-region-block-content.html: Removed. 40 * fast/regions/shape-inside/shape-inside-on-second-region-inline-content-expected.html: Removed. 41 * fast/regions/shape-inside/shape-inside-on-second-region-inline-content.html: Removed. 42 * fast/regions/shape-inside/shape-inside-recursive-layout-expected.html: Removed. 43 * fast/regions/shape-inside/shape-inside-recursive-layout.html: Removed. 44 * fast/regions/shape-inside/shape-inside-with-region-borders-expected.html: Removed. 45 * fast/regions/shape-inside/shape-inside-with-region-borders.html: Removed. 46 * fast/regions/shape-inside/shape-inside-with-region-padding-expected.html: Removed. 47 * fast/regions/shape-inside/shape-inside-with-region-padding.html: Removed. 48 * fast/shapes/css-shapes-disabled-expected.txt: 49 * fast/shapes/css-shapes-disabled.html: 50 * fast/shapes/css-shapes-enabled-expected.txt: 51 * fast/shapes/css-shapes-enabled.html: 52 * fast/shapes/parsing/parsing-shape-inside-expected.txt: Removed. 53 * fast/shapes/parsing/parsing-shape-inside.html: Removed. 54 * fast/shapes/parsing/parsing-shape-lengths-expected.txt: 55 * fast/shapes/parsing/parsing-shape-lengths.html: 56 * fast/shapes/parsing/parsing-shape-padding-expected.txt: Removed. 57 * fast/shapes/parsing/parsing-shape-padding.html: Removed. 58 * fast/shapes/parsing/parsing-test-utils.js: 59 * fast/shapes/resources/multi-segment-polygon.js: Removed. 60 * fast/shapes/resources/simple-polygon.js: Removed. 61 * fast/shapes/resources/simple-rectangle.js: Removed. 62 * fast/shapes/resources/svg-shape-001.svg: Removed. 63 * fast/shapes/shape-inside/floats/shape-inside-floats-simple-expected.html: Removed. 64 * fast/shapes/shape-inside/floats/shape-inside-floats-simple.html: Removed. 65 * fast/shapes/shape-inside/floats/shape-inside-left-float-in-lower-left-triangle-block-content-expected.html: Removed. 66 * fast/shapes/shape-inside/floats/shape-inside-left-float-in-lower-left-triangle-block-content.html: Removed. 67 * fast/shapes/shape-inside/floats/shape-inside-left-float-in-lower-left-triangle-inline-content-expected.html: Removed. 68 * fast/shapes/shape-inside/floats/shape-inside-left-float-in-lower-left-triangle-inline-content.html: Removed. 69 * fast/shapes/shape-inside/floats/shape-inside-left-float-in-lower-right-triangle-block-content-expected.html: Removed. 70 * fast/shapes/shape-inside/floats/shape-inside-left-float-in-lower-right-triangle-block-content.html: Removed. 71 * fast/shapes/shape-inside/floats/shape-inside-left-float-in-lower-right-triangle-expected.html: Removed. 72 * fast/shapes/shape-inside/floats/shape-inside-left-float-in-lower-right-triangle-inline-content-expected.html: Removed. 73 * fast/shapes/shape-inside/floats/shape-inside-left-float-in-lower-right-triangle-inline-content.html: Removed. 74 * fast/shapes/shape-inside/floats/shape-inside-left-float-in-lower-right-triangle.html: Removed. 75 * fast/shapes/shape-inside/floats/shape-inside-left-float-in-upper-left-triangle-block-content-expected.html: Removed. 76 * fast/shapes/shape-inside/floats/shape-inside-left-float-in-upper-left-triangle-block-content.html: Removed. 77 * fast/shapes/shape-inside/floats/shape-inside-left-float-in-upper-left-triangle-inline-content-expected.html: Removed. 78 * fast/shapes/shape-inside/floats/shape-inside-left-float-in-upper-left-triangle-inline-content.html: Removed. 79 * fast/shapes/shape-inside/floats/shape-inside-left-float-in-upper-left-triangle-vertical-lr-inline-content-expected.html: Removed. 80 * fast/shapes/shape-inside/floats/shape-inside-left-float-in-upper-left-triangle-vertical-lr-inline-content.html: Removed. 81 * fast/shapes/shape-inside/floats/shape-inside-left-float-in-upper-right-triangle-block-content-expected.html: Removed. 82 * fast/shapes/shape-inside/floats/shape-inside-left-float-in-upper-right-triangle-block-content.html: Removed. 83 * fast/shapes/shape-inside/floats/shape-inside-left-float-in-upper-right-triangle-inline-content-expected.html: Removed. 84 * fast/shapes/shape-inside/floats/shape-inside-left-float-in-upper-right-triangle-inline-content.html: Removed. 85 * fast/shapes/shape-inside/shape-inside-animation-expected.txt: Removed. 86 * fast/shapes/shape-inside/shape-inside-animation.html: Removed. 87 * fast/shapes/shape-inside/shape-inside-bottom-edge-expected.html: Removed. 88 * fast/shapes/shape-inside/shape-inside-bottom-edge.html: Removed. 89 * fast/shapes/shape-inside/shape-inside-box-sizing-expected.html: Removed. 90 * fast/shapes/shape-inside/shape-inside-box-sizing.html: Removed. 91 * fast/shapes/shape-inside/shape-inside-calc-crash-expected.txt: Removed. 92 * fast/shapes/shape-inside/shape-inside-calc-crash.html: Removed. 93 * fast/shapes/shape-inside/shape-inside-circle-expected.html: Removed. 94 * fast/shapes/shape-inside/shape-inside-circle-padding-expected.html: Removed. 95 * fast/shapes/shape-inside/shape-inside-circle-padding.html: Removed. 96 * fast/shapes/shape-inside/shape-inside-circle.html: Removed. 97 * fast/shapes/shape-inside/shape-inside-coincident-vertices-expected.html: Removed. 98 * fast/shapes/shape-inside/shape-inside-coincident-vertices.html: Removed. 99 * fast/shapes/shape-inside/shape-inside-collinear-vertices-expected.html: Removed. 100 * fast/shapes/shape-inside/shape-inside-collinear-vertices.html: Removed. 101 * fast/shapes/shape-inside/shape-inside-complex-polygon-001-expected.html: Removed. 102 * fast/shapes/shape-inside/shape-inside-complex-polygon-001.html: Removed. 103 * fast/shapes/shape-inside/shape-inside-complex-polygon-002-expected.html: Removed. 104 * fast/shapes/shape-inside/shape-inside-complex-polygon-002.html: Removed. 105 * fast/shapes/shape-inside/shape-inside-complex-polygon-003-expected.html: Removed. 106 * fast/shapes/shape-inside/shape-inside-complex-polygon-003.html: Removed. 107 * fast/shapes/shape-inside/shape-inside-complex-polygon-004-expected.html: Removed. 108 * fast/shapes/shape-inside/shape-inside-complex-polygon-004.html: Removed. 109 * fast/shapes/shape-inside/shape-inside-content-box-expected.html: Removed. 110 * fast/shapes/shape-inside/shape-inside-content-box.html: Removed. 111 * fast/shapes/shape-inside/shape-inside-counterclockwise-polygon-expected.html: Removed. 112 * fast/shapes/shape-inside/shape-inside-counterclockwise-polygon.html: Removed. 113 * fast/shapes/shape-inside/shape-inside-dynamic-nested-expected.html: Removed. 114 * fast/shapes/shape-inside/shape-inside-dynamic-nested.html: Removed. 115 * fast/shapes/shape-inside/shape-inside-dynamic-shape-expected.html: Removed. 116 * fast/shapes/shape-inside/shape-inside-dynamic-shape.html: Removed. 117 * fast/shapes/shape-inside/shape-inside-dynamic-text-expected.html: Removed. 118 * fast/shapes/shape-inside/shape-inside-dynamic-text.html: Removed. 119 * fast/shapes/shape-inside/shape-inside-ellipse-expected.html: Removed. 120 * fast/shapes/shape-inside/shape-inside-ellipse-padding-expected.html: Removed. 121 * fast/shapes/shape-inside/shape-inside-ellipse-padding.html: Removed. 122 * fast/shapes/shape-inside/shape-inside-ellipse.html: Removed. 123 * fast/shapes/shape-inside/shape-inside-empty-expected.html: Removed. 124 * fast/shapes/shape-inside/shape-inside-empty-polygon-crash-expected.txt: Removed. 125 * fast/shapes/shape-inside/shape-inside-empty-polygon-crash.html: Removed. 126 * fast/shapes/shape-inside/shape-inside-empty-segments-expected.html: Removed. 127 * fast/shapes/shape-inside/shape-inside-empty-segments.html: Removed. 128 * fast/shapes/shape-inside/shape-inside-empty.html: Removed. 129 * fast/shapes/shape-inside/shape-inside-first-fit-001-horizontal-expected.html: Removed. 130 * fast/shapes/shape-inside/shape-inside-first-fit-001-horizontal.html: Removed. 131 * fast/shapes/shape-inside/shape-inside-first-fit-001-vertical-expected.html: Removed. 132 * fast/shapes/shape-inside/shape-inside-first-fit-001-vertical.html: Removed. 133 * fast/shapes/shape-inside/shape-inside-first-fit-002-expected.html: Removed. 134 * fast/shapes/shape-inside/shape-inside-first-fit-002.html: Removed. 135 * fast/shapes/shape-inside/shape-inside-first-fit-003-expected.html: Removed. 136 * fast/shapes/shape-inside/shape-inside-first-fit-003.html: Removed. 137 * fast/shapes/shape-inside/shape-inside-first-fit-004-expected.html: Removed. 138 * fast/shapes/shape-inside/shape-inside-first-fit-004.html: Removed. 139 * fast/shapes/shape-inside/shape-inside-first-fit-crash-expected.txt: Removed. 140 * fast/shapes/shape-inside/shape-inside-first-fit-crash.html: Removed. 141 * fast/shapes/shape-inside/shape-inside-first-fit-reflex-expected.html: Removed. 142 * fast/shapes/shape-inside/shape-inside-first-fit-reflex.html: Removed. 143 * fast/shapes/shape-inside/shape-inside-image-001-expected.html: Removed. 144 * fast/shapes/shape-inside/shape-inside-image-001.html: Removed. 145 * fast/shapes/shape-inside/shape-inside-image-002-expected.html: Removed. 146 * fast/shapes/shape-inside/shape-inside-image-002.html: Removed. 147 * fast/shapes/shape-inside/shape-inside-image-003-expected.html: Removed. 148 * fast/shapes/shape-inside/shape-inside-image-003.html: Removed. 149 * fast/shapes/shape-inside/shape-inside-image-004-expected.html: Removed. 150 * fast/shapes/shape-inside/shape-inside-image-004.html: Removed. 151 * fast/shapes/shape-inside/shape-inside-image-005-expected.html: Removed. 152 * fast/shapes/shape-inside/shape-inside-image-005.html: Removed. 153 * fast/shapes/shape-inside/shape-inside-image-set-expected.html: Removed. 154 * fast/shapes/shape-inside/shape-inside-image-set.html: Removed. 155 * fast/shapes/shape-inside/shape-inside-multiple-blocks-dynamic-expected.html: Removed. 156 * fast/shapes/shape-inside/shape-inside-multiple-blocks-dynamic.html: Removed. 157 * fast/shapes/shape-inside/shape-inside-multiple-blocks-expected.html: Removed. 158 * fast/shapes/shape-inside/shape-inside-multiple-blocks-vertical-expected.html: Removed. 159 * fast/shapes/shape-inside/shape-inside-multiple-blocks-vertical.html: Removed. 160 * fast/shapes/shape-inside/shape-inside-multiple-blocks.html: Removed. 161 * fast/shapes/shape-inside/shape-inside-multiple-segments-001-expected.html: Removed. 162 * fast/shapes/shape-inside/shape-inside-multiple-segments-001.html: Removed. 163 * fast/shapes/shape-inside/shape-inside-multiple-segments-002-expected.html: Removed. 164 * fast/shapes/shape-inside/shape-inside-multiple-segments-002.html: Removed. 165 * fast/shapes/shape-inside/shape-inside-multiple-segments-003-expected.html: Removed. 166 * fast/shapes/shape-inside/shape-inside-multiple-segments-003.html: Removed. 167 * fast/shapes/shape-inside/shape-inside-multiple-segments-004-expected.html: Removed. 168 * fast/shapes/shape-inside/shape-inside-multiple-segments-004.html: Removed. 169 * fast/shapes/shape-inside/shape-inside-offset-block-children-expected.html: Removed. 170 * fast/shapes/shape-inside/shape-inside-offset-block-children.html: Removed. 171 * fast/shapes/shape-inside/shape-inside-on-nested-container-with-unresolved-height-expected.html: Removed. 172 * fast/shapes/shape-inside/shape-inside-on-nested-container-with-unresolved-height.html: Removed. 173 * fast/shapes/shape-inside/shape-inside-outside-shape-expected.html: Removed. 174 * fast/shapes/shape-inside/shape-inside-outside-shape.html: Removed. 175 * fast/shapes/shape-inside/shape-inside-overflow-expected.html: Removed. 176 * fast/shapes/shape-inside/shape-inside-overflow-fixed-dimensions-block-content-expected.html: Removed. 177 * fast/shapes/shape-inside/shape-inside-overflow-fixed-dimensions-block-content.html: Removed. 178 * fast/shapes/shape-inside/shape-inside-overflow-fixed-dimensions-expected.html: Removed. 179 * fast/shapes/shape-inside/shape-inside-overflow-fixed-dimensions.html: Removed. 180 * fast/shapes/shape-inside/shape-inside-overflow.html: Removed. 181 * fast/shapes/shape-inside/shape-inside-partial-fill-001-expected.html: Removed. 182 * fast/shapes/shape-inside/shape-inside-partial-fill-001.html: Removed. 183 * fast/shapes/shape-inside/shape-inside-partial-fill-002-expected.html: Removed. 184 * fast/shapes/shape-inside/shape-inside-partial-fill-002.html: Removed. 185 * fast/shapes/shape-inside/shape-inside-percentage-auto-expected.html: Removed. 186 * fast/shapes/shape-inside/shape-inside-percentage-auto.html: Removed. 187 * fast/shapes/shape-inside/shape-inside-percentage-expected.html: Removed. 188 * fast/shapes/shape-inside/shape-inside-percentage.html: Removed. 189 * fast/shapes/shape-inside/shape-inside-polygon-layout-expected.txt: Removed. 190 * fast/shapes/shape-inside/shape-inside-polygon-layout.html: Removed. 191 * fast/shapes/shape-inside/shape-inside-polygon-padding-001-expected.html: Removed. 192 * fast/shapes/shape-inside/shape-inside-polygon-padding-001.html: Removed. 193 * fast/shapes/shape-inside/shape-inside-polygon-padding-002-expected.txt: Removed. 194 * fast/shapes/shape-inside/shape-inside-polygon-padding-002.html: Removed. 195 * fast/shapes/shape-inside/shape-inside-polygon-padding-003-expected.txt: Removed. 196 * fast/shapes/shape-inside/shape-inside-polygon-padding-003.html: Removed. 197 * fast/shapes/shape-inside/shape-inside-polygon-rectangle-expected.html: Removed. 198 * fast/shapes/shape-inside/shape-inside-polygon-rectangle.html: Removed. 199 * fast/shapes/shape-inside/shape-inside-polygon-rounded-first-fit-expected.html: Removed. 200 * fast/shapes/shape-inside/shape-inside-polygon-rounded-first-fit.html: Removed. 201 * fast/shapes/shape-inside/shape-inside-polygon-zoom-expected.html: Removed. 202 * fast/shapes/shape-inside/shape-inside-polygon-zoom.html: Removed. 203 * fast/shapes/shape-inside/shape-inside-rectilinear-polygon-001-expected.html: Removed. 204 * fast/shapes/shape-inside/shape-inside-rectilinear-polygon-001.html: Removed. 205 * fast/shapes/shape-inside/shape-inside-rectilinear-polygon-002-expected.html: Removed. 206 * fast/shapes/shape-inside/shape-inside-rectilinear-polygon-002.html: Removed. 207 * fast/shapes/shape-inside/shape-inside-rectilinear-polygon-003-expected.html: Removed. 208 * fast/shapes/shape-inside/shape-inside-rectilinear-polygon-003.html: Removed. 209 * fast/shapes/shape-inside/shape-inside-rectilinear-polygon-004-expected.html: Removed. 210 * fast/shapes/shape-inside/shape-inside-rectilinear-polygon-004.html: Removed. 211 * fast/shapes/shape-inside/shape-inside-recursive-layout-expected.html: Removed. 212 * fast/shapes/shape-inside/shape-inside-recursive-layout.html: Removed. 213 * fast/shapes/shape-inside/shape-inside-regular-polygon16-expected.html: Removed. 214 * fast/shapes/shape-inside/shape-inside-regular-polygon16.html: Removed. 215 * fast/shapes/shape-inside/shape-inside-regular-polygon8-expected.html: Removed. 216 * fast/shapes/shape-inside/shape-inside-regular-polygon8.html: Removed. 217 * fast/shapes/shape-inside/shape-inside-shape-logical-top-expected.html: Removed. 218 * fast/shapes/shape-inside/shape-inside-shape-logical-top.html: Removed. 219 * fast/shapes/shape-inside/shape-inside-sibling-block-dimension-change-needs-relayout-expected.html: Removed. 220 * fast/shapes/shape-inside/shape-inside-sibling-block-dimension-change-needs-relayout.html: Removed. 221 * fast/shapes/shape-inside/shape-inside-simple-polygon-001-expected.html: Removed. 222 * fast/shapes/shape-inside/shape-inside-simple-polygon-001.html: Removed. 223 * fast/shapes/shape-inside/shape-inside-simple-polygon-002-expected.html: Removed. 224 * fast/shapes/shape-inside/shape-inside-simple-polygon-002.html: Removed. 225 * fast/shapes/shape-inside/shape-inside-simple-polygon-003-expected.html: Removed. 226 * fast/shapes/shape-inside/shape-inside-simple-polygon-003.html: Removed. 227 * fast/shapes/shape-inside/shape-inside-simple-polygon-004-expected.html: Removed. 228 * fast/shapes/shape-inside/shape-inside-simple-polygon-004.html: Removed. 229 * fast/shapes/shape-inside/shape-inside-subpixel-rectangle-top-expected.html: Removed. 230 * fast/shapes/shape-inside/shape-inside-subpixel-rectangle-top.html: Removed. 231 * fast/shapes/shape-inside/shape-inside-subsequent-blocks-expected.html: Removed. 232 * fast/shapes/shape-inside/shape-inside-subsequent-blocks.html: Removed. 233 * fast/shapes/shape-inside/shape-inside-subtract-intervals-crash-expected.html: Removed. 234 * fast/shapes/shape-inside/shape-inside-subtract-intervals-crash.html: Removed. 235 * fast/shapes/shape-inside/shape-inside-text-align-expected.html: Removed. 236 * fast/shapes/shape-inside/shape-inside-text-align.html: Removed. 237 * fast/shapes/shape-inside/shape-inside-text-expected.html: Removed. 238 * fast/shapes/shape-inside/shape-inside-text.html: Removed. 239 * fast/shapes/shape-inside/shape-inside-vertical-text-expected.html: Removed. 240 * fast/shapes/shape-inside/shape-inside-vertical-text.html: Removed. 241 * platform/gtk/TestExpectations: 242 * platform/win/TestExpectations: 243 1 244 2014-03-26 Sergio Villar Senin <svillar@igalia.com> 2 245 -
trunk/LayoutTests/fast/shapes/css-shapes-disabled-expected.txt
r165472 r166301 6 6 PASS testInlineStyle("-webkit-shape-margin", "10px") is null 7 7 PASS testComputedStyle("-webkit-shape-margin", "10px") is "0px" 8 PASS testInlineStyle("-webkit-shape-padding", "10px") is null9 PASS testComputedStyle("-webkit-shape-padding", "10px") is "0px"10 8 PASS testInlineStyle("-webkit-shape-outside", "circle(10px at 10px 10px)") is null 11 9 PASS testComputedStyle("-webkit-shape-outside", "circle(10px at 10px 10px)") is "none" 12 PASS testInlineStyle("-webkit-shape-inside", "circle(10px at 10px 10px)") is null13 PASS testComputedStyle("-webkit-shape-inside", "circle(10px at 10px 10px)") is "none"14 10 PASS successfullyParsed is true 15 11 -
trunk/LayoutTests/fast/shapes/css-shapes-disabled.html
r165472 r166301 31 31 32 32 testStyle("-webkit-shape-margin", "10px", "0px"); 33 testStyle("-webkit-shape-padding", "10px", "0px");34 35 33 testStyle("-webkit-shape-outside", "circle(10px at 10px 10px)", "none"); 36 testStyle("-webkit-shape-inside", "circle(10px at 10px 10px)", "none");37 34 38 35 </script> -
trunk/LayoutTests/fast/shapes/css-shapes-enabled-expected.txt
r165472 r166301 6 6 PASS testInlineStyle("-webkit-shape-margin", "10px") is "10px" 7 7 PASS testComputedStyle("-webkit-shape-margin", "10px") is "10px" 8 PASS testInlineStyle("-webkit-shape-padding", "10px") is "10px"9 PASS testComputedStyle("-webkit-shape-padding", "10px") is "10px"10 8 PASS testInlineStyle("-webkit-shape-outside", "circle(10px at 10px 10px)") is "circle(10px at 10px 10px)" 11 9 PASS testComputedStyle("-webkit-shape-outside", "circle(10px at 10px 10px)") is "circle(10px at 10px 10px)" 12 PASS testInlineStyle("-webkit-shape-inside", "circle(10px at 10px 10px)") is "circle(10px at 10px 10px)"13 PASS testComputedStyle("-webkit-shape-inside", "circle(10px at 10px 10px)") is "circle(10px at 10px 10px)"14 10 PASS successfullyParsed is true 15 11 -
trunk/LayoutTests/fast/shapes/css-shapes-enabled.html
r165472 r166301 28 28 29 29 testStyle("-webkit-shape-margin", "10px", "10px"); 30 testStyle("-webkit-shape-padding", "10px", "10px");31 32 30 testStyle("-webkit-shape-outside", "circle(10px at 10px 10px)", "circle(10px at 10px 10px)"); 33 testStyle("-webkit-shape-inside", "circle(10px at 10px 10px)", "circle(10px at 10px 10px)");34 31 35 32 </script> -
trunk/LayoutTests/fast/shapes/parsing/parsing-shape-lengths-expected.txt
r165638 r166301 4 4 5 5 6 PASS getStyleValue("-webkit-shape- inside", "circle(0 at 0 0)") is "circle(0px at 0% 0%)"7 PASS getStyleValue("-webkit-shape- inside", "circle(1px at +1px -1px)") is "circle(1px at 1px -1px)"8 PASS getStyleValue("-webkit-shape- inside", "circle(1.5px at -1.5px +1.5px)") is "circle(1.5px at -1.5px 1.5px)"9 PASS getStyleValue("-webkit-shape- inside", "circle(.5px at -.5px +.5px)") is "circle(0.5px at -0.5px 0.5px)"10 PASS getStyleValue("-webkit-shape- inside", "inset(1cm 1mm 1in 1px round 1pt 1pc)") is "inset(1cm 1mm 1in 1px round 1pt 1pc 1pt 1pc / 1pt 1pc 1pt 1pc)"11 PASS getStyleValue("-webkit-shape- inside", "inset(-1px 1px 1px 1px round 1px 1px 1px 1px)") is "inset(-1px 1px 1px 1px round 1px 1px 1px 1px / 1px 1px 1px 1px)"12 PASS getStyleValue("-webkit-shape- inside", "inset(1px -1px 1px 1px round 1px 1px 1px 1px)") is "inset(1px -1px 1px 1px round 1px 1px 1px 1px / 1px 1px 1px 1px)"13 PASS getStyleValue("-webkit-shape- inside", "inset(1px 1px -1px 1px round 1px 1px 1px 1px)") is "inset(1px 1px -1px 1px round 1px 1px 1px 1px / 1px 1px 1px 1px)"14 PASS getStyleValue("-webkit-shape- inside", "inset(1px 1px 1px -1px round 1px 1px 1px 1px)") is "inset(1px 1px 1px -1px round 1px 1px 1px 1px / 1px 1px 1px 1px)"15 PASS getStyleValue("-webkit-shape- inside", "circle(1em at -1em +1em)") is "circle(1em at -1em 1em)"16 PASS getStyleValue("-webkit-shape- inside", "circle(1.5em at -1.5em +1.5em)") is "circle(1.5em at -1.5em 1.5em)"17 PASS getStyleValue("-webkit-shape- inside", "circle(.5em at -.5em +.5em)") is "circle(0.5em at -0.5em 0.5em)"18 PASS getStyleValue("-webkit-shape- inside", "circle(1ex at 1ex 1ex)") is "circle(1ex at 1ex 1ex)"19 PASS getStyleValue("-webkit-shape- inside", "circle(1rem at 1rem 1rem)") is "circle(1rem at 1rem 1rem)"20 PASS getComputedStyleValue("-webkit-shape- inside", "circle(1.5em at .5em 1em)") is "circle(12px at 4px 8px)"21 PASS getComputedStyleValue("-webkit-shape- inside", "circle(1.5rem at .5rem 1rem)") is "circle(24px at 8px 16px)"22 PASS getStyleValue("-webkit-shape- inside", "circle(1vw at 1vw 1vw)") is "circle(1vw at 1vw 1vw)"23 PASS getStyleValue("-webkit-shape- inside", "circle(1vh at 1vh 1vh)") is "circle(1vh at 1vh 1vh)"24 PASS getStyleValue("-webkit-shape- inside", "circle(1vmin at 1vmin 1vmin)") is "circle(1vmin at 1vmin 1vmin)"25 PASS getComputedStyleValue("-webkit-shape- inside", "circle(1.5vw at .5vw 1vw)") is "circle(1.5vw at 0.5vw 1vw)"26 PASS getComputedStyleValue("-webkit-shape- inside", "circle(1.5vh at .5vh 1vh)") is "circle(1.5vh at 0.5vh 1vh)"27 PASS getComputedStyleValue("-webkit-shape- inside", "circle(1.5vmin at .5vmin 1vmin)") is "circle(1.5vmin at 0.5vmin 1vmin)"28 PASS getStyleValue("-webkit-shape- inside", "circle(100% at 100% 100%)") is "circle(100% at 100% 100%)"29 PASS getStyleValue("-webkit-shape- inside", "inset(45% 45% 90% 60% round 25% 10%)") is "inset(45% 45% 90% 60% round 25% 10% 25% 10% / 25% 10% 25% 10%)"30 PASS getStyleValue("-webkit-shape- inside", "ellipse(100% 100% at 100% 100%)") is "ellipse(100% 100% at 100% 100%)"31 PASS getStyleValue("-webkit-shape- inside", "polygon(10% 20%, 30% 40%, 40% 50%)") is "polygon(10% 20%, 30% 40%, 40% 50%)"32 PASS getComputedStyleValue("-webkit-shape- inside", "circle(150% at 50% 100%)") is "circle(150% at 50% 100%)"33 PASS getComputedStyleValue("-webkit-shape- inside", "inset(45% 45% 90% 60% round 25% 10%)") is "inset(45% 45% 90% 60% round 25% 10% 25% 10% / 25% 10% 25% 10%)"34 PASS getComputedStyleValue("-webkit-shape- inside", "ellipse(100% 100% at 100% 100%)") is "ellipse(100% 100% at 100% 100%)"35 PASS getComputedStyleValue("-webkit-shape- inside", "polygon(10% 20%, 30% 40%, 40% 50%)") is "polygon(10% 20%, 30% 40%, 40% 50%)"36 PASS getStyleValue("-webkit-shape- inside", "circle(1 at 1px 1px)") is null37 PASS getComputedStyleValue("-webkit-shape- inside", "circle(1 at 1px 1px)") is "none"38 PASS getStyleValue("-webkit-shape- inside", "circle(px at 1px 1px)") is null39 PASS getComputedStyleValue("-webkit-shape- inside", "circle(px at 1px 1px)") is "none"40 PASS getStyleValue("-webkit-shape- inside", "circle(1p at 1px 1px)") is null41 PASS getComputedStyleValue("-webkit-shape- inside", "circle(1p at 1px 1px)") is "none"42 PASS getStyleValue("-webkit-shape- inside", "circle(calc( at 1px 1px))") is null43 PASS getComputedStyleValue("-webkit-shape- inside", "circle(calc( at 1px 1px))") is "none"44 PASS getStyleValue("-webkit-shape- inside", "circle(-1.5px at -1.5px +1.5px)") is null45 PASS getComputedStyleValue("-webkit-shape- inside", "circle(-1.5px at -1.5px +1.5px)") is "none"46 PASS getStyleValue("-webkit-shape- inside", "inset(1cm 1mm 1in 1px round 1pt -1pc)") is null47 PASS getComputedStyleValue("-webkit-shape- inside", "inset(1cm 1mm 1in 1px round 1pt -1pc)") is "none"48 PASS getStyleValue("-webkit-shape- inside", "ellipse(-1em 1em at 1em 1em)") is null49 PASS getComputedStyleValue("-webkit-shape- inside", "ellipse(-1em 1em at 1em 1em)") is "none"50 PASS getStyleValue("-webkit-shape- inside", "ellipse(1em -1em at 1em 1em)") is null51 PASS getComputedStyleValue("-webkit-shape- inside", "ellipse(1em -1em at 1em 1em)") is "none"6 PASS getStyleValue("-webkit-shape-outside", "circle(0 at 0 0)") is "circle(0px at 0% 0%)" 7 PASS getStyleValue("-webkit-shape-outside", "circle(1px at +1px -1px)") is "circle(1px at 1px -1px)" 8 PASS getStyleValue("-webkit-shape-outside", "circle(1.5px at -1.5px +1.5px)") is "circle(1.5px at -1.5px 1.5px)" 9 PASS getStyleValue("-webkit-shape-outside", "circle(.5px at -.5px +.5px)") is "circle(0.5px at -0.5px 0.5px)" 10 PASS getStyleValue("-webkit-shape-outside", "inset(1cm 1mm 1in 1px round 1pt 1pc)") is "inset(1cm 1mm 1in 1px round 1pt 1pc 1pt 1pc / 1pt 1pc 1pt 1pc)" 11 PASS getStyleValue("-webkit-shape-outside", "inset(-1px 1px 1px 1px round 1px 1px 1px 1px)") is "inset(-1px 1px 1px 1px round 1px 1px 1px 1px / 1px 1px 1px 1px)" 12 PASS getStyleValue("-webkit-shape-outside", "inset(1px -1px 1px 1px round 1px 1px 1px 1px)") is "inset(1px -1px 1px 1px round 1px 1px 1px 1px / 1px 1px 1px 1px)" 13 PASS getStyleValue("-webkit-shape-outside", "inset(1px 1px -1px 1px round 1px 1px 1px 1px)") is "inset(1px 1px -1px 1px round 1px 1px 1px 1px / 1px 1px 1px 1px)" 14 PASS getStyleValue("-webkit-shape-outside", "inset(1px 1px 1px -1px round 1px 1px 1px 1px)") is "inset(1px 1px 1px -1px round 1px 1px 1px 1px / 1px 1px 1px 1px)" 15 PASS getStyleValue("-webkit-shape-outside", "circle(1em at -1em +1em)") is "circle(1em at -1em 1em)" 16 PASS getStyleValue("-webkit-shape-outside", "circle(1.5em at -1.5em +1.5em)") is "circle(1.5em at -1.5em 1.5em)" 17 PASS getStyleValue("-webkit-shape-outside", "circle(.5em at -.5em +.5em)") is "circle(0.5em at -0.5em 0.5em)" 18 PASS getStyleValue("-webkit-shape-outside", "circle(1ex at 1ex 1ex)") is "circle(1ex at 1ex 1ex)" 19 PASS getStyleValue("-webkit-shape-outside", "circle(1rem at 1rem 1rem)") is "circle(1rem at 1rem 1rem)" 20 PASS getComputedStyleValue("-webkit-shape-outside", "circle(1.5em at .5em 1em)") is "circle(12px at 4px 8px)" 21 PASS getComputedStyleValue("-webkit-shape-outside", "circle(1.5rem at .5rem 1rem)") is "circle(24px at 8px 16px)" 22 PASS getStyleValue("-webkit-shape-outside", "circle(1vw at 1vw 1vw)") is "circle(1vw at 1vw 1vw)" 23 PASS getStyleValue("-webkit-shape-outside", "circle(1vh at 1vh 1vh)") is "circle(1vh at 1vh 1vh)" 24 PASS getStyleValue("-webkit-shape-outside", "circle(1vmin at 1vmin 1vmin)") is "circle(1vmin at 1vmin 1vmin)" 25 PASS getComputedStyleValue("-webkit-shape-outside", "circle(1.5vw at .5vw 1vw)") is "circle(1.5vw at 0.5vw 1vw)" 26 PASS getComputedStyleValue("-webkit-shape-outside", "circle(1.5vh at .5vh 1vh)") is "circle(1.5vh at 0.5vh 1vh)" 27 PASS getComputedStyleValue("-webkit-shape-outside", "circle(1.5vmin at .5vmin 1vmin)") is "circle(1.5vmin at 0.5vmin 1vmin)" 28 PASS getStyleValue("-webkit-shape-outside", "circle(100% at 100% 100%)") is "circle(100% at 100% 100%)" 29 PASS getStyleValue("-webkit-shape-outside", "inset(45% 45% 90% 60% round 25% 10%)") is "inset(45% 45% 90% 60% round 25% 10% 25% 10% / 25% 10% 25% 10%)" 30 PASS getStyleValue("-webkit-shape-outside", "ellipse(100% 100% at 100% 100%)") is "ellipse(100% 100% at 100% 100%)" 31 PASS getStyleValue("-webkit-shape-outside", "polygon(10% 20%, 30% 40%, 40% 50%)") is "polygon(10% 20%, 30% 40%, 40% 50%)" 32 PASS getComputedStyleValue("-webkit-shape-outside", "circle(150% at 50% 100%)") is "circle(150% at 50% 100%)" 33 PASS getComputedStyleValue("-webkit-shape-outside", "inset(45% 45% 90% 60% round 25% 10%)") is "inset(45% 45% 90% 60% round 25% 10% 25% 10% / 25% 10% 25% 10%)" 34 PASS getComputedStyleValue("-webkit-shape-outside", "ellipse(100% 100% at 100% 100%)") is "ellipse(100% 100% at 100% 100%)" 35 PASS getComputedStyleValue("-webkit-shape-outside", "polygon(10% 20%, 30% 40%, 40% 50%)") is "polygon(10% 20%, 30% 40%, 40% 50%)" 36 PASS getStyleValue("-webkit-shape-outside", "circle(1 at 1px 1px)") is null 37 PASS getComputedStyleValue("-webkit-shape-outside", "circle(1 at 1px 1px)") is "none" 38 PASS getStyleValue("-webkit-shape-outside", "circle(px at 1px 1px)") is null 39 PASS getComputedStyleValue("-webkit-shape-outside", "circle(px at 1px 1px)") is "none" 40 PASS getStyleValue("-webkit-shape-outside", "circle(1p at 1px 1px)") is null 41 PASS getComputedStyleValue("-webkit-shape-outside", "circle(1p at 1px 1px)") is "none" 42 PASS getStyleValue("-webkit-shape-outside", "circle(calc( at 1px 1px))") is null 43 PASS getComputedStyleValue("-webkit-shape-outside", "circle(calc( at 1px 1px))") is "none" 44 PASS getStyleValue("-webkit-shape-outside", "circle(-1.5px at -1.5px +1.5px)") is null 45 PASS getComputedStyleValue("-webkit-shape-outside", "circle(-1.5px at -1.5px +1.5px)") is "none" 46 PASS getStyleValue("-webkit-shape-outside", "inset(1cm 1mm 1in 1px round 1pt -1pc)") is null 47 PASS getComputedStyleValue("-webkit-shape-outside", "inset(1cm 1mm 1in 1px round 1pt -1pc)") is "none" 48 PASS getStyleValue("-webkit-shape-outside", "ellipse(-1em 1em at 1em 1em)") is null 49 PASS getComputedStyleValue("-webkit-shape-outside", "ellipse(-1em 1em at 1em 1em)") is "none" 50 PASS getStyleValue("-webkit-shape-outside", "ellipse(1em -1em at 1em 1em)") is null 51 PASS getComputedStyleValue("-webkit-shape-outside", "ellipse(1em -1em at 1em 1em)") is "none" 52 52 PASS successfullyParsed is true 53 53 -
trunk/LayoutTests/fast/shapes/parsing/parsing-shape-lengths.html
r165638 r166301 23 23 function testStyleValue(value, expected) { 24 24 if (expected === null) 25 shouldBeNull('getStyleValue("-webkit-shape- inside", "' + value + '")');25 shouldBeNull('getStyleValue("-webkit-shape-outside", "' + value + '")'); 26 26 else 27 shouldBeEqualToString('getStyleValue("-webkit-shape- inside", "' + value + '")', expected);27 shouldBeEqualToString('getStyleValue("-webkit-shape-outside", "' + value + '")', expected); 28 28 } 29 29 function testComputedStyleValue(value, expected) { 30 testShapeComputedProperty("-webkit-shape- inside", value, expected);30 testShapeComputedProperty("-webkit-shape-outside", value, expected); 31 31 } 32 32 -
trunk/LayoutTests/fast/shapes/parsing/parsing-test-utils.js
r165835 r166301 1 // Valid values for both shape-inside and shape-outside. Two values are specified when the shape property value1 // Valid values for shape-outside. Two values are specified when the shape property value 2 2 // differs from the specified value. Three values are specified when the computed shape property value differs 3 3 // from the specified value. … … 89 89 ]; 90 90 91 // Invalid values for both shape-inside and shape-outside. When an invalid shape value is specified, the91 // Invalid values for shape-outside. When an invalid shape value is specified, the 92 92 // shape property's computed value is the same as its default. 93 93 var invalidShapeValues = [ -
trunk/LayoutTests/platform/gtk/TestExpectations
r166201 r166301 1417 1417 webkit.org/b/118665 fast/regions/overflow-not-moving-below-floats-in-variable-width-regions.html [ ImageOnlyFailure Pass ] 1418 1418 webkit.org/b/118665 fast/regions/overflow-region-transform.html [ ImageOnlyFailure Pass ] 1419 webkit.org/b/118665 fast/regions/shape-inside/shape-inside-on-multiple-regions-with-negative-shape-top.html [ ImageOnlyFailure Pass ]1420 1419 webkit.org/b/118665 fast/regions/top-overflow-out-of-second-region.html [ ImageOnlyFailure Pass Missing ] 1421 1420 webkit.org/b/118665 fast/regions/webkit-flow-float-unable-to-push.html [ ImageOnlyFailure Pass ] -
trunk/LayoutTests/platform/win/TestExpectations
r166221 r166301 2426 2426 webkit.org/b/128855 fast/regions/flows-dependency-dynamic-remove.html [ Pass Failure ] 2427 2427 webkit.org/b/128855 fast/regions/hit-test-float.html [ Pass Timeout ] 2428 webkit.org/b/128855 fast/regions/shape-inside/shape-inside-on-regions-block-content-basic-overflow-shape-top-offset.html [ Pass Failure ]2429 fast/regions/shape-inside/shape-inside-on-additional-regions.html [ Pass Failure ]2430 2428 webkit.org/b/128855 fast/regions/hover-and-js-in-visual-overflow.html [ Pass Timeout ImageOnlyFailure Failure ] 2431 2429 webkit.org/b/128855 fast/regions/hover-single-flow-from-other.html [ Pass ImageOnlyFailure ] … … 2565 2563 fast/ruby/rubyDOM-insert-rt-block-1.html [ Pass Timeout ] 2566 2564 fast/scrolling/scrollable-area-overflow-auto-visibility-override.html [ Pass Failure ] 2567 fast/shapes/shape-inside/shape-inside-offset-block-children.html [ Pass ImageOnlyFailure ]2568 fast/shapes/shape-inside/shape-inside-collinear-vertices.html [ Pass ImageOnlyFailure ]2569 2565 fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-top-right.html [ Pass Timeout ] 2570 2566 fast/shapes/shape-outside-floats/shape-outside-image-fit-002.html [ Pass ImageOnlyFailure ] -
trunk/Source/JavaScriptCore/ChangeLog
r166292 r166301 1 2014-03-26 Zoltan Horvath <zoltan@webkit.org> 2 3 [CSS Shapes] Remove shape-inside support 4 https://bugs.webkit.org/show_bug.cgi?id=130698 5 6 Reviewed by David Hyatt. 7 8 * Configurations/FeatureDefines.xcconfig: 9 1 10 2014-03-26 Dániel Bátyai <dbatyai.u-szeged@partner.samsung.com> 2 11 -
trunk/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig
r166201 r166301 60 60 ENABLE_CSS_REGIONS = ENABLE_CSS_REGIONS; 61 61 ENABLE_CSS_SHAPES = ENABLE_CSS_SHAPES; 62 ENABLE_CSS_SHAPE_INSIDE = ENABLE_CSS_SHAPE_INSIDE;63 62 ENABLE_CSS_STICKY_POSITION = ENABLE_CSS_STICKY_POSITION; 64 63 ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED = ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED; … … 226 225 ENABLE_LLINT_C_LOOP = ; 227 226 228 FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_S HAPE_INSIDE) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILTERS) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INSPECTOR) $(ENABLE_IOS_AIRPLAY) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WEBVTT_REGIONS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(FEATURE_DEFINES_$(PLATFORM_NAME));227 FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILTERS) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INSPECTOR) $(ENABLE_IOS_AIRPLAY) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WEBVTT_REGIONS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(FEATURE_DEFINES_$(PLATFORM_NAME)); -
trunk/Source/WebCore/CMakeLists.txt
r166261 r166301 2224 2224 rendering/shapes/Shape.cpp 2225 2225 rendering/shapes/ShapeInfo.cpp 2226 rendering/shapes/ShapeInsideInfo.cpp2227 2226 rendering/shapes/ShapeOutsideInfo.cpp 2228 2227 -
trunk/Source/WebCore/ChangeLog
r166300 r166301 1 2014-03-26 Zoltan Horvath <zoltan@webkit.org> 2 3 [CSS Shapes] Remove shape-inside support 4 https://bugs.webkit.org/show_bug.cgi?id=130698 5 6 Reviewed by David Hyatt. 7 8 CSS Shapes Level 1 (CR) only contains shape-outside. We are focusing our efforts on finalizing 9 the implementation of shape-outside, it's worth to remove shape-inside code at this point for now. 10 11 A list of reasons for the removal: 12 - Shape-inside is only part of Shapes Level 2, which needs to be improved on some topics. 13 - Shape-inside is lack of new shapes support (e.g. inset). 14 - Deprecated shapes (r165472) are removed from the code (e.g. rectangle), which affects shape-inside. 15 - The current shape-inside code spreads across the layout code. 16 - The current shape-inside implementation is experimental in some areas, 17 and the partially implemented code can have security implications. 18 - Removal of shape-inside opens possibilities for code complexity and performance 19 optimizations for shape-outside. (e.g. simpler geometry code) 20 21 No new tests are needed. 22 23 * CMakeLists.txt: 24 * Configurations/FeatureDefines.xcconfig: 25 * GNUmakefile.list.am: 26 * WebCore.xcodeproj/project.pbxproj: 27 * css/CSSComputedStyleDeclaration.cpp: 28 (WebCore::ComputedStyleExtractor::propertyValue): 29 * css/CSSParser.cpp: 30 (WebCore::isSimpleLengthPropertyID): 31 (WebCore::CSSParser::parseValue): 32 (WebCore::CSSParser::parseShapeProperty): 33 * css/CSSPropertyNames.in: 34 * css/DeprecatedStyleBuilder.cpp: 35 (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder): 36 * css/StyleResolver.cpp: 37 (WebCore::StyleResolver::applyProperty): 38 (WebCore::StyleResolver::loadPendingImages): 39 * page/animation/CSSPropertyAnimation.cpp: 40 (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): 41 * rendering/LayoutState.cpp: 42 (WebCore::LayoutState::LayoutState): 43 * rendering/LayoutState.h: 44 (WebCore::LayoutState::LayoutState): 45 (WebCore::LayoutState::shapeInsideInfo): Deleted. 46 * rendering/RenderBlock.cpp: 47 (WebCore::RenderBlock::styleDidChange): 48 (WebCore::RenderBlock::imageChanged): 49 (WebCore::RenderBlock::preparePaginationBeforeBlockLayout): 50 (WebCore::RenderBlock::relayoutShapeDescendantIfMoved): Deleted. 51 (WebCore::RenderBlock::logicalOffsetFromShapeAncestorContainer): Deleted. 52 (WebCore::RenderBlock::updateShapeInsideInfoAfterStyleChange): Deleted. 53 (WebCore::RenderBlock::ensureShapeInsideInfo): Deleted. 54 (WebCore::RenderBlock::shapeInsideInfo): Deleted. 55 (WebCore::RenderBlock::setShapeInsideInfo): Deleted. 56 (WebCore::RenderBlock::markShapeInsideDescendantsForLayout): Deleted. 57 (WebCore::RenderBlock::layoutShapeInsideInfo): Deleted. 58 (WebCore::shapeInfoRequiresRelayout): Deleted. 59 (WebCore::RenderBlock::computeShapeSize): Deleted. 60 (WebCore::RenderBlock::updateShapesBeforeBlockLayout): Deleted. 61 (WebCore::RenderBlock::updateShapesAfterBlockLayout): Deleted. 62 (WebCore::RenderBlock::prepareShapesAndPaginationBeforeBlockLayout): Deleted. 63 * rendering/RenderBlock.h: 64 (WebCore::RenderBlock::allowsShapeInsideInfoSharing): Deleted. 65 * rendering/RenderBlockFlow.cpp: 66 (WebCore::RenderBlockFlow::layoutBlock): 67 (WebCore::RenderBlockFlow::layoutBlockChild): 68 (WebCore::RenderBlockFlow::computeLogicalLocationForFloat): 69 * rendering/RenderBlockFlow.h: 70 * rendering/RenderBlockLineLayout.cpp: 71 (WebCore::RenderBlockFlow::computeInlineDirectionPositionsForLine): 72 (WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange): 73 (WebCore::constructBidiRunsForLine): Deleted. 74 (WebCore::pushShapeContentOverflowBelowTheContentBox): Deleted. 75 (WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLine): Deleted. 76 (WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLineInFlowThread): Deleted. 77 (WebCore::adjustLogicalLineTop): Deleted. 78 (WebCore::RenderBlockFlow::adjustLogicalLineTopAndLogicalHeightIfNeeded): Deleted. 79 * rendering/RenderDeprecatedFlexibleBox.cpp: 80 (WebCore::RenderDeprecatedFlexibleBox::layoutBlock): 81 * rendering/RenderElement.cpp: 82 (WebCore::RenderElement::~RenderElement): 83 (WebCore::RenderElement::initializeStyle): 84 (WebCore::RenderElement::setStyle): 85 * rendering/RenderFlexibleBox.cpp: 86 (WebCore::RenderFlexibleBox::layoutBlock): 87 * rendering/RenderGrid.cpp: 88 (WebCore::RenderGrid::layoutBlock): 89 * rendering/RenderNamedFlowFragment.cpp: 90 (WebCore::RenderNamedFlowFragment::createStyle): 91 * rendering/RenderView.h: 92 * rendering/SimpleLineLayout.cpp: 93 (WebCore::SimpleLineLayout::canUseFor): 94 * rendering/line/BreakingContextInlineHeaders.h: 95 (WebCore::BreakingContext::handleText): 96 (WebCore::BreakingContext::handleEndOfLine): 97 (WebCore::updateSegmentsForShapes): Deleted. 98 * rendering/line/LineBreaker.cpp: 99 (WebCore::LineBreaker::nextLineBreak): 100 * rendering/line/LineWidth.cpp: 101 (WebCore::LineWidth::LineWidth): 102 (WebCore::LineWidth::updateAvailableWidth): 103 (WebCore::LineWidth::wrapNextToShapeOutside): 104 (WebCore::LineWidth::fitBelowFloats): 105 (WebCore::LineWidth::updateLineSegment): Deleted. 106 (WebCore::LineWidth::updateCurrentShapeSegment): Deleted. 107 * rendering/line/LineWidth.h: 108 * rendering/shapes/ShapeInsideInfo.cpp: Removed. 109 * rendering/shapes/ShapeInsideInfo.h: Removed. 110 * rendering/style/RenderStyle.cpp: 111 (WebCore::RenderStyle::changeRequiresLayout): 112 * rendering/style/RenderStyle.h: 113 * rendering/style/StyleRareNonInheritedData.cpp: 114 (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): 115 (WebCore::StyleRareNonInheritedData::operator==): 116 * rendering/style/StyleRareNonInheritedData.h: 117 1 118 2014-03-25 Brent Fulgham <bfulgham@apple.com> 2 119 -
trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig
r166201 r166301 60 60 ENABLE_CSS_REGIONS = ENABLE_CSS_REGIONS; 61 61 ENABLE_CSS_SHAPES = ENABLE_CSS_SHAPES; 62 ENABLE_CSS_SHAPE_INSIDE = ENABLE_CSS_SHAPE_INSIDE;63 62 ENABLE_CSS_STICKY_POSITION = ENABLE_CSS_STICKY_POSITION; 64 63 ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED = ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED; … … 226 225 ENABLE_LLINT_C_LOOP = ; 227 226 228 FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_S HAPE_INSIDE) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILTERS) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INSPECTOR) $(ENABLE_IOS_AIRPLAY) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WEBVTT_REGIONS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(FEATURE_DEFINES_$(PLATFORM_NAME));227 FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILTERS) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INSPECTOR) $(ENABLE_IOS_AIRPLAY) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WEBVTT_REGIONS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(FEATURE_DEFINES_$(PLATFORM_NAME)); -
trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj
r166261 r166301 11272 11272 <ClCompile Include="..\rendering\shapes\Shape.cpp" /> 11273 11273 <ClCompile Include="..\rendering\shapes\ShapeInfo.cpp" /> 11274 <ClCompile Include="..\rendering\shapes\ShapeInsideInfo.cpp" />11275 11274 <ClCompile Include="..\rendering\shapes\ShapeOutsideInfo.cpp" /> 11276 11275 <ClCompile Include="..\rendering\svg\SVGPathData.cpp"> … … 20032 20031 <ClInclude Include="..\rendering\shapes\Shape.h" /> 20033 20032 <ClInclude Include="..\rendering\shapes\ShapeInfo.h" /> 20034 <ClInclude Include="..\rendering\shapes\ShapeInsideInfo.h" />20035 20033 <ClInclude Include="..\rendering\shapes\ShapeInterval.h" /> 20036 20034 <ClInclude Include="..\rendering\shapes\ShapeOutsideInfo.h" /> -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r166272 r166301 6381 6381 FD45A94F175D3F3E00C21EC8 /* Shape.h in Headers */ = {isa = PBXBuildFile; fileRef = FD08A87F175D3926002CD360 /* Shape.h */; settings = {ATTRIBUTES = (Private, ); }; }; 6382 6382 FD45A950175D3F3E00C21EC8 /* ShapeInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = FD08A881175D3926002CD360 /* ShapeInfo.h */; settings = {ATTRIBUTES = (Private, ); }; }; 6383 FD45A951175D3F3E00C21EC8 /* ShapeInsideInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = FD08A883175D3926002CD360 /* ShapeInsideInfo.h */; settings = {ATTRIBUTES = (Private, ); }; };6384 6383 FD45A952175D3F3E00C21EC8 /* ShapeOutsideInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = FD08A887175D3926002CD360 /* ShapeOutsideInfo.h */; settings = {ATTRIBUTES = (Private, ); }; }; 6385 6384 FD45A953175D3FB800C21EC8 /* Shape.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD08A87E175D3926002CD360 /* Shape.cpp */; }; 6386 6385 FD45A954175D3FB800C21EC8 /* ShapeInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD08A880175D3926002CD360 /* ShapeInfo.cpp */; }; 6387 FD45A955175D3FB800C21EC8 /* ShapeInsideInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD08A882175D3926002CD360 /* ShapeInsideInfo.cpp */; };6388 6386 FD45A956175D3FB800C21EC8 /* ShapeOutsideInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD08A886175D3926002CD360 /* ShapeOutsideInfo.cpp */; }; 6389 6387 FD45A957175D414C00C21EC8 /* PolygonShape.h in Headers */ = {isa = PBXBuildFile; fileRef = FD08A87B175D3926002CD360 /* PolygonShape.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 13688 13686 FD08A880175D3926002CD360 /* ShapeInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ShapeInfo.cpp; sourceTree = "<group>"; }; 13689 13687 FD08A881175D3926002CD360 /* ShapeInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShapeInfo.h; sourceTree = "<group>"; }; 13690 FD08A882175D3926002CD360 /* ShapeInsideInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ShapeInsideInfo.cpp; sourceTree = "<group>"; };13691 FD08A883175D3926002CD360 /* ShapeInsideInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShapeInsideInfo.h; sourceTree = "<group>"; };13692 13688 FD08A885175D3926002CD360 /* ShapeInterval.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShapeInterval.h; sourceTree = "<group>"; }; 13693 13689 FD08A886175D3926002CD360 /* ShapeOutsideInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ShapeOutsideInfo.cpp; sourceTree = "<group>"; }; … … 22518 22514 FD08A880175D3926002CD360 /* ShapeInfo.cpp */, 22519 22515 FD08A881175D3926002CD360 /* ShapeInfo.h */, 22520 FD08A882175D3926002CD360 /* ShapeInsideInfo.cpp */,22521 FD08A883175D3926002CD360 /* ShapeInsideInfo.h */,22522 22516 FD08A885175D3926002CD360 /* ShapeInterval.h */, 22523 22517 FD08A886175D3926002CD360 /* ShapeOutsideInfo.cpp */, … … 25464 25458 FD45A94F175D3F3E00C21EC8 /* Shape.h in Headers */, 25465 25459 FD45A950175D3F3E00C21EC8 /* ShapeInfo.h in Headers */, 25466 FD45A951175D3F3E00C21EC8 /* ShapeInsideInfo.h in Headers */,25467 25460 FD45A95B175D41EE00C21EC8 /* ShapeInterval.h in Headers */, 25468 25461 FD45A952175D3F3E00C21EC8 /* ShapeOutsideInfo.h in Headers */, … … 28828 28821 FD45A953175D3FB800C21EC8 /* Shape.cpp in Sources */, 28829 28822 FD45A954175D3FB800C21EC8 /* ShapeInfo.cpp in Sources */, 28830 FD45A955175D3FB800C21EC8 /* ShapeInsideInfo.cpp in Sources */,28831 28823 FD45A956175D3FB800C21EC8 /* ShapeOutsideInfo.cpp in Sources */, 28832 28824 1A4A954D0B4EDCCB002D8C3C /* SharedBuffer.cpp in Sources */, -
trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp
r166157 r166301 347 347 CSSPropertyWebkitCompositionFillColor, 348 348 #endif 349 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)350 CSSPropertyWebkitShapeInside,351 #endif352 349 #if ENABLE(CSS_SHAPES) 353 350 CSSPropertyWebkitShapeOutside, … … 395 392 CSSPropertyWebkitShapeMargin, 396 393 CSSPropertyWebkitShapeImageThreshold, 397 #if ENABLE(CSS_SHAPE_INSIDE)398 CSSPropertyWebkitShapePadding,399 #endif400 394 #endif 401 395 CSSPropertyBufferedRendering, … … 2823 2817 case CSSPropertyWebkitShapeImageThreshold: 2824 2818 return cssValuePool().createValue(style->shapeImageThreshold(), CSSPrimitiveValue::CSS_NUMBER); 2825 #if ENABLE(CSS_SHAPE_INSIDE)2826 case CSSPropertyWebkitShapePadding:2827 return cssValuePool().createValue(style->shapePadding());2828 case CSSPropertyWebkitShapeInside:2829 return shapePropertyValue(style.get(), style->shapeInside());2830 #endif2831 2819 case CSSPropertyWebkitShapeOutside: 2832 2820 return shapePropertyValue(style.get(), style->shapeOutside()); -
trunk/Source/WebCore/css/CSSParser.cpp
r166231 r166301 563 563 acceptsNegativeNumbers = false; 564 564 return true; 565 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)566 case CSSPropertyWebkitShapePadding:567 #endif568 565 #if ENABLE(CSS_SHAPES) 569 566 case CSSPropertyWebkitShapeMargin: … … 2914 2911 parsedValue = parseClipPath(); 2915 2912 break; 2916 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)2917 case CSSPropertyWebkitShapeInside:2918 #endif2919 2913 #if ENABLE(CSS_SHAPES) 2920 2914 case CSSPropertyWebkitShapeOutside: … … 2922 2916 break; 2923 2917 case CSSPropertyWebkitShapeMargin: 2924 #if ENABLE(CSS_SHAPE_INSIDE)2925 case CSSPropertyWebkitShapePadding:2926 #endif2927 2918 validPrimitive = (RuntimeEnabledFeatures::sharedFeatures().cssShapesEnabled() && !id && validUnit(value, FLength | FNonNeg)); 2928 2919 break; … … 5707 5698 RefPtr<CSSPrimitiveValue> shapeValue; 5708 5699 5709 if (valueId == CSSValueNone 5710 #if ENABLE(CSS_SHAPE_INSIDE) 5711 || (valueId == CSSValueOutsideShape 5712 && propId == CSSPropertyWebkitShapeInside) 5713 #endif 5714 ) { 5700 if (valueId == CSSValueNone) { 5715 5701 keywordValue = parseValidPrimitive(valueId, value); 5716 5702 m_valueList->next(); -
trunk/Source/WebCore/css/CSSPropertyNames.in
r165595 r166301 436 436 -webkit-region-break-inside 437 437 #endif 438 #if defined(ENABLE_CSS_SHAPES) && ENABLE_CSS_SHAPES && defined(ENABLE_CSS_SHAPE_INSIDE) && ENABLE_CSS_SHAPE_INSIDE439 -webkit-shape-inside440 -webkit-shape-padding441 #endif442 438 #if defined(ENABLE_CSS_SHAPES) && ENABLE_CSS_SHAPES 443 439 -webkit-shape-outside -
trunk/Source/WebCore/css/DeprecatedStyleBuilder.cpp
r165843 r166301 2615 2615 setPropertyHandler(CSSPropertyWebkitWrapThrough, ApplyPropertyDefault<WrapThrough, &RenderStyle::wrapThrough, WrapThrough, &RenderStyle::setWrapThrough, WrapThrough, &RenderStyle::initialWrapThrough>::createHandler()); 2616 2616 #endif 2617 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)2618 setPropertyHandler(CSSPropertyWebkitShapeInside, ApplyPropertyShape<&RenderStyle::shapeInside, &RenderStyle::setShapeInside, &RenderStyle::initialShapeInside>::createHandler());2619 setPropertyHandler(CSSPropertyWebkitShapePadding, ApplyPropertyLength<&RenderStyle::shapePadding, &RenderStyle::setShapePadding, &RenderStyle::initialShapePadding>::createHandler());2620 #endif2621 2617 #if ENABLE(CSS_SHAPES) 2622 2618 setPropertyHandler(CSSPropertyWebkitShapeMargin, ApplyPropertyLength<&RenderStyle::shapeMargin, &RenderStyle::setShapeMargin, &RenderStyle::initialShapeMargin>::createHandler()); -
trunk/Source/WebCore/css/StyleResolver.cpp
r166299 r166301 2998 2998 case CSSPropertyWebkitUserSelect: 2999 2999 case CSSPropertyWebkitClipPath: 3000 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)3001 case CSSPropertyWebkitShapeInside:3002 case CSSPropertyWebkitShapePadding:3003 #endif3004 3000 #if ENABLE(CSS_SHAPES) 3005 3001 case CSSPropertyWebkitShapeMargin: … … 3603 3599 break; 3604 3600 } 3605 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)3606 case CSSPropertyWebkitShapeInside:3607 loadPendingShapeImage(m_state.style()->shapeInside());3608 break;3609 #endif3610 3601 #if ENABLE(CSS_SHAPES) 3611 3602 case CSSPropertyWebkitShapeOutside: -
trunk/Source/WebCore/page/animation/CSSPropertyAnimation.cpp
r165843 r166301 1228 1228 new PropertyWrapperClipPath(CSSPropertyWebkitClipPath, &RenderStyle::clipPath, &RenderStyle::setClipPath), 1229 1229 1230 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)1231 new PropertyWrapperShape(CSSPropertyWebkitShapeInside, &RenderStyle::shapeInside, &RenderStyle::setShapeInside),1232 #endif1233 1230 #if ENABLE(CSS_SHAPES) 1234 1231 new PropertyWrapperShape(CSSPropertyWebkitShapeOutside, &RenderStyle::shapeOutside, &RenderStyle::setShapeOutside), -
trunk/Source/WebCore/rendering/LayoutState.cpp
r163973 r166301 39 39 , m_lineGrid(0) 40 40 , m_next(std::move(next)) 41 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)42 , m_shapeInsideInfo(nullptr)43 #endif44 41 #ifndef NDEBUG 45 42 , m_renderer(renderer) … … 110 107 m_columnInfo = m_next->m_columnInfo; 111 108 112 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)113 if (renderer->isRenderBlock()) {114 const RenderBlock* renderBlock = toRenderBlock(renderer);115 m_shapeInsideInfo = renderBlock->shapeInsideInfo();116 if (!m_shapeInsideInfo && m_next->m_shapeInsideInfo && renderBlock->allowsShapeInsideInfoSharing())117 m_shapeInsideInfo = m_next->m_shapeInsideInfo;118 }119 #endif120 121 109 m_layoutDelta = m_next->m_layoutDelta; 122 110 #if !ASSERT_DISABLED && ENABLE(SATURATED_LAYOUT_ARITHMETIC) … … 147 135 , m_columnInfo(0) 148 136 , m_lineGrid(0) 149 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)150 , m_shapeInsideInfo(nullptr)151 #endif152 137 , m_pageLogicalHeight(0) 153 138 #ifndef NDEBUG -
trunk/Source/WebCore/rendering/LayoutState.h
r165991 r166301 56 56 , m_columnInfo(nullptr) 57 57 , m_lineGrid(nullptr) 58 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)59 , m_shapeInsideInfo(nullptr)60 #endif61 58 , m_pageLogicalHeight(0) 62 59 #ifndef NDEBUG … … 92 89 93 90 bool needsBlockDirectionLocationSetBeforeLayout() const { return m_lineGrid || (m_isPaginated && m_pageLogicalHeight); } 94 95 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)96 ShapeInsideInfo* shapeInsideInfo() const { return m_shapeInsideInfo; }97 #endif98 91 private: 99 92 void propagateLineGridInfo(RenderBox*); … … 116 109 RenderBlockFlow* m_lineGrid; 117 110 std::unique_ptr<LayoutState> m_next; 118 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)119 ShapeInsideInfo* m_shapeInsideInfo;120 #endif121 111 122 112 // FIXME: Distinguish between the layout clip rect and the paint clip rect which may be larger, -
trunk/Source/WebCore/rendering/RenderBlock.cpp
r165890 r166301 70 70 #include <wtf/TemporaryChange.h> 71 71 72 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)73 #include "ShapeInsideInfo.h"74 #endif75 72 #if ENABLE(CSS_SHAPES) 76 73 #include "ShapeOutsideInfo.h" … … 120 117 LayoutUnit m_paginationStrut; 121 118 LayoutUnit m_pageLogicalOffset; 122 123 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)124 std::unique_ptr<ShapeInsideInfo> m_shapeInsideInfo;125 #endif126 119 }; 127 120 … … 308 301 309 302 RenderStyle& newStyle = style(); 310 311 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)312 updateShapeInsideInfoAfterStyleChange(newStyle.resolvedShapeInside(), oldStyle ? oldStyle->resolvedShapeInside() : 0);313 #endif314 303 315 304 if (!isAnonymousBlock()) { … … 1317 1306 if (!parent() || !everHadLayout()) 1318 1307 return; 1319 1320 #if ENABLE(CSS_SHAPE_INSIDE) 1321 ShapeValue* shapeValue = style().shapeInside(); 1322 if (shapeValue && shapeValue->image() && shapeValue->image()->data() == image) { 1323 ShapeInsideInfo& shapeInsideInfo = ensureShapeInsideInfo(); 1324 shapeInsideInfo.markShapeAsDirty(); 1325 markShapeInsideDescendantsForLayout(); 1326 } 1308 } 1327 1309 #endif 1328 } 1329 #endif 1330 1331 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE) 1332 void RenderBlock::relayoutShapeDescendantIfMoved(RenderBlock* child, LayoutSize offset) 1333 { 1334 LayoutUnit left = isHorizontalWritingMode() ? offset.width() : offset.height(); 1335 if (!left || !child || child->shapeInsideInfo() || !layoutShapeInsideInfo()) 1336 return; 1337 // Propagate layout markers only up to the child, as we are still in the middle 1338 // of a layout pass 1339 child->setNormalChildNeedsLayoutBit(true); 1340 child->markShapeInsideDescendantsForLayout(); 1341 child->layoutIfNeeded(); 1342 } 1343 1344 LayoutSize RenderBlock::logicalOffsetFromShapeAncestorContainer(const RenderBlock* container) const 1345 { 1346 const RenderBlock* currentBlock = this; 1347 LayoutRect blockRect(currentBlock->borderBoxRect()); 1348 while (currentBlock && !currentBlock->isRenderFlowThread() && currentBlock != container) { 1349 RenderBlock* containerBlock = currentBlock->containingBlock(); 1350 ASSERT(containerBlock); 1351 if (!containerBlock) 1352 return LayoutSize(); 1353 1354 if (containerBlock->style().writingMode() != currentBlock->style().writingMode()) { 1355 // We have to put the block rect in container coordinates 1356 // and we have to take into account both the container and current block flipping modes 1357 // Bug 118073: Flipping inline and block directions at the same time will not work, 1358 // as one of the flipped dimensions will not yet have been set to its final size 1359 if (containerBlock->style().isFlippedBlocksWritingMode()) { 1360 if (containerBlock->isHorizontalWritingMode()) 1361 blockRect.setY(currentBlock->height() - blockRect.maxY()); 1362 else 1363 blockRect.setX(currentBlock->width() - blockRect.maxX()); 1364 } 1365 currentBlock->flipForWritingMode(blockRect); 1366 } 1367 1368 blockRect.moveBy(currentBlock->location()); 1369 currentBlock = containerBlock; 1370 } 1371 1372 LayoutSize result = isHorizontalWritingMode() ? LayoutSize(blockRect.x(), blockRect.y()) : LayoutSize(blockRect.y(), blockRect.x()); 1373 return result; 1374 } 1375 1376 void RenderBlock::updateShapeInsideInfoAfterStyleChange(const ShapeValue* shapeInside, const ShapeValue* oldShapeInside) 1377 { 1378 // FIXME: A future optimization would do a deep comparison for equality. 1379 if (shapeInside == oldShapeInside) 1380 return; 1381 1382 if (shapeInside) { 1383 ShapeInsideInfo& shapeInsideInfo = ensureShapeInsideInfo(); 1384 shapeInsideInfo.markShapeAsDirty(); 1385 } else 1386 setShapeInsideInfo(nullptr); 1387 markShapeInsideDescendantsForLayout(); 1388 } 1389 1390 ShapeInsideInfo& RenderBlock::ensureShapeInsideInfo() 1391 { 1392 RenderBlockRareData& rareData = ensureRareData(this); 1393 if (!rareData.m_shapeInsideInfo) 1394 setShapeInsideInfo(std::make_unique<ShapeInsideInfo>(*this)); 1395 return *rareData.m_shapeInsideInfo; 1396 } 1397 1398 ShapeInsideInfo* RenderBlock::shapeInsideInfo() const 1399 { 1400 RenderBlockRareData* rareData = getRareData(this); 1401 if (!rareData || !rareData->m_shapeInsideInfo) 1402 return nullptr; 1403 return ShapeInsideInfo::isEnabledFor(*this) ? rareData->m_shapeInsideInfo.get() : nullptr; 1404 } 1405 1406 void RenderBlock::setShapeInsideInfo(std::unique_ptr<ShapeInsideInfo> value) 1407 { 1408 ensureRareData(this).m_shapeInsideInfo = std::move(value); 1409 } 1410 1411 void RenderBlock::markShapeInsideDescendantsForLayout() 1412 { 1413 if (!everHadLayout()) 1414 return; 1415 if (childrenInline()) { 1416 setNeedsLayout(); 1417 invalidateLineLayoutPath(); 1418 return; 1419 } 1420 1421 for (auto& childBlock : childrenOfType<RenderBlock>(*this)) 1422 childBlock.markShapeInsideDescendantsForLayout(); 1423 } 1424 1425 ShapeInsideInfo* RenderBlock::layoutShapeInsideInfo() const 1426 { 1427 // This may be called outside layout when switching from SimpleLineLayout to line boxes. This case never has shape info. 1428 if (!view().layoutState()) 1429 return nullptr; 1430 1431 ShapeInsideInfo* shapeInsideInfo = view().layoutState()->shapeInsideInfo(); 1432 1433 if (!shapeInsideInfo && flowThreadContainingBlock() && allowsShapeInsideInfoSharing()) { 1434 LayoutUnit lineHeight = this->lineHeight(false, isHorizontalWritingMode() ? HorizontalLine : VerticalLine, PositionOfInteriorLineBoxes); 1435 // regionAtBlockOffset returns regions like an array first={0,N-1}, second={N,M-1}, ... 1436 LayoutUnit offset = logicalHeight() + lineHeight - LayoutUnit::fromPixel(1); 1437 RenderRegion* region = regionAtBlockOffset(offset); 1438 if (region && region->logicalHeight()) 1439 shapeInsideInfo = region->shapeInsideInfo(); 1440 } 1441 1442 return shapeInsideInfo; 1443 } 1444 1445 static inline bool shapeInfoRequiresRelayout(const RenderBlock* block) 1446 { 1447 ShapeInsideInfo* info = block->shapeInsideInfo(); 1448 if (info) 1449 info->setNeedsLayout(info->isShapeDirty()); 1450 else 1451 info = block->layoutShapeInsideInfo(); 1452 return info && info->needsLayout(); 1453 } 1454 1455 void RenderBlock::computeShapeSize() 1456 { 1457 ShapeInsideInfo* shapeInsideInfo = this->shapeInsideInfo(); 1458 if (!shapeInsideInfo) 1459 return; 1460 1461 if (isRenderNamedFlowFragment()) { 1462 ShapeInsideInfo* parentShapeInsideInfo = toRenderBlock(parent())->shapeInsideInfo(); 1463 ASSERT(parentShapeInsideInfo); 1464 shapeInsideInfo->setReferenceBoxLogicalSize(parentShapeInsideInfo->referenceBoxLogicalSize()); 1465 } else { 1466 bool percentageLogicalHeightResolvable = percentageLogicalHeightIsResolvableFromBlock(this, false); 1467 shapeInsideInfo->setReferenceBoxLogicalSize(LayoutSize(logicalWidth(), percentageLogicalHeightResolvable ? logicalHeight() : LayoutUnit())); 1468 } 1469 } 1470 #endif 1471 1472 bool RenderBlock::updateShapesBeforeBlockLayout() 1473 { 1474 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE) 1475 if (!flowThreadContainingBlock() && !shapeInsideInfo()) 1476 return shapeInfoRequiresRelayout(this); 1477 1478 LayoutUnit oldHeight = logicalHeight(); 1479 LayoutUnit oldTop = logicalTop(); 1480 1481 // Compute the maximum logical height content may cause this block to expand to 1482 // FIXME: These should eventually use the const computeLogicalHeight rather than updateLogicalHeight 1483 setLogicalHeight(RenderFlowThread::maxLogicalHeight()); 1484 updateLogicalHeight(); 1485 1486 computeShapeSize(); 1487 1488 setLogicalHeight(oldHeight); 1489 setLogicalTop(oldTop); 1490 1491 return shapeInfoRequiresRelayout(this); 1492 #else 1493 return false; 1494 #endif 1495 } 1496 1497 void RenderBlock::updateShapesAfterBlockLayout(bool heightChanged) 1498 { 1499 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE) 1500 // A previous sibling has changed dimension, so we need to relayout the shape with the content 1501 ShapeInsideInfo* shapeInsideInfo = layoutShapeInsideInfo(); 1502 if (heightChanged && shapeInsideInfo) 1503 shapeInsideInfo->markShapeAsDirty(); 1504 #else 1505 UNUSED_PARAM(heightChanged); 1506 #endif 1507 } 1508 1509 void RenderBlock::prepareShapesAndPaginationBeforeBlockLayout(bool& relayoutChildren) 1310 1311 void RenderBlock::preparePaginationBeforeBlockLayout(bool& relayoutChildren) 1510 1312 { 1511 1313 // Regions changing widths can force us to relayout our children. 1512 1314 RenderFlowThread* flowThread = flowThreadContainingBlock(); 1513 if (updateShapesBeforeBlockLayout())1514 relayoutChildren = true;1515 1315 if (flowThread) 1516 1316 flowThread->logicalWidthChangedInRegionsForBlock(this, relayoutChildren); -
trunk/Source/WebCore/rendering/RenderBlock.h
r165873 r166301 38 38 class RenderInline; 39 39 class RenderText; 40 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)41 class ShapeInsideInfo;42 class ShapeValue;43 #endif44 40 45 41 struct BidiRun; … … 352 348 #endif 353 349 354 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)355 ShapeInsideInfo& ensureShapeInsideInfo();356 ShapeInsideInfo* shapeInsideInfo() const;357 void setShapeInsideInfo(std::unique_ptr<ShapeInsideInfo>);358 359 void markShapeInsideDescendantsForLayout();360 ShapeInsideInfo* layoutShapeInsideInfo() const;361 bool allowsShapeInsideInfoSharing() const { return !isInline() && !isFloating(); }362 LayoutSize logicalOffsetFromShapeAncestorContainer(const RenderBlock* container) const;363 #endif364 365 350 virtual void updateHitTestResult(HitTestResult&, const LayoutPoint&) override; 366 351 … … 445 430 virtual void addFocusRingRectsForInlineChildren(Vector<IntRect>&, const LayoutPoint& additionalOffset, const RenderLayerModelObject* paintContainer); 446 431 447 bool updateShapesBeforeBlockLayout();448 void updateShapesAfterBlockLayout(bool heightChanged = false);449 432 void computeRegionRangeForBoxChild(const RenderBox&) const; 450 433 … … 454 437 void updateBlockChildDirtyBitsBeforeLayout(bool relayoutChildren, RenderBox&); 455 438 456 void prepare ShapesAndPaginationBeforeBlockLayout(bool&);439 void preparePaginationBeforeBlockLayout(bool&); 457 440 458 441 private: … … 463 446 LayoutUnit adjustLogicalRightOffsetForLine(LayoutUnit offsetFromFloats, bool applyTextIndent) const; 464 447 LayoutUnit adjustLogicalLeftOffsetForLine(LayoutUnit offsetFromFloats, bool applyTextIndent) const; 465 466 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)467 void computeShapeSize();468 void updateShapeInsideInfoAfterStyleChange(const ShapeValue*, const ShapeValue* oldShape);469 void relayoutShapeDescendantIfMoved(RenderBlock* child, LayoutSize offset);470 #endif471 448 472 449 virtual const char* renderName() const override; -
trunk/Source/WebCore/rendering/RenderBlockFlow.cpp
r166171 r166301 44 44 #include "VerticalPositionCache.h" 45 45 #include "VisiblePosition.h" 46 47 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)48 #include "ShapeInsideInfo.h"49 #endif50 46 51 47 namespace WebCore { … … 364 360 LayoutStateMaintainer statePusher(view(), *this, locationOffset(), hasColumns() || hasTransform() || hasReflection() || styleToUse.isFlippedBlocksWritingMode(), pageLogicalHeight, pageLogicalHeightChanged, columnInfo()); 365 361 366 prepare ShapesAndPaginationBeforeBlockLayout(relayoutChildren);362 preparePaginationBeforeBlockLayout(relayoutChildren); 367 363 if (!relayoutChildren) 368 364 relayoutChildren = namedFlowFragmentNeedsUpdate(); … … 435 431 436 432 layoutPositionedObjects(relayoutChildren || isRoot()); 437 438 updateShapesAfterBlockLayout(heightChanged);439 433 440 434 // Add overflow from children (unless we're multi-column, since in that case all our child overflow is clipped anyway). … … 682 676 determineLogicalLeftPositionForChild(child, ApplyLayoutDelta); 683 677 684 LayoutSize childOffset = child.location() - oldRect.location();685 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)686 relayoutShapeDescendantIfMoved(child.isRenderBlock() ? toRenderBlock(&child) : nullptr, childOffset);687 #endif688 689 678 // Update our height now that the child has been placed in the correct position. 690 679 setLogicalHeight(logicalHeight() + logicalHeightForChild(child)); … … 698 687 maxFloatLogicalBottom = std::max(maxFloatLogicalBottom, addOverhangingFloats(*childBlockFlow, !childNeededLayout)); 699 688 689 LayoutSize childOffset = child.location() - oldRect.location(); 700 690 if (childOffset.width() || childOffset.height()) { 701 691 view().addLayoutDelta(childOffset); … … 2155 2145 RenderBox& childBox = floatingObject->renderer(); 2156 2146 LayoutUnit logicalLeftOffset = logicalLeftOffsetForContent(logicalTopOffset); // Constant part of left offset. 2157 LayoutUnit logicalRightOffset; // Constant part of right offset. 2158 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE) 2159 // FIXME Bug 102948: This only works for shape outside directly set on this block. 2160 ShapeInsideInfo* shapeInsideInfo = this->layoutShapeInsideInfo(); 2161 // FIXME: Implement behavior for right floats. 2162 if (shapeInsideInfo) { 2163 LayoutSize floatLogicalSize = logicalSizeForFloat(floatingObject); 2164 // floatingObject's logicalSize doesn't contain the actual height at this point, so we need to calculate it 2165 floatLogicalSize.setHeight(logicalHeightForChild(childBox) + marginBeforeForChild(childBox) + marginAfterForChild(childBox)); 2166 2167 // FIXME: If the float doesn't fit in the shape we should push it under the content box 2168 logicalTopOffset = shapeInsideInfo->computeFirstFitPositionForFloat(floatLogicalSize); 2169 if (logicalHeight() > logicalTopOffset) 2170 logicalTopOffset = logicalHeight(); 2171 2172 SegmentList segments = shapeInsideInfo->computeSegmentsForLine(logicalTopOffset, floatLogicalSize.height()); 2173 // FIXME Bug 102949: Add support for shapes with multiple segments. 2174 if (segments.size() == 1) { 2175 // The segment offsets are relative to the content box. 2176 logicalRightOffset = logicalLeftOffset + segments[0].logicalRight; 2177 logicalLeftOffset += segments[0].logicalLeft; 2178 } 2179 } else 2180 #endif 2181 logicalRightOffset = logicalRightOffsetForContent(logicalTopOffset); 2147 LayoutUnit logicalRightOffset = logicalRightOffsetForContent(logicalTopOffset); // Constant part of right offset. 2182 2148 2183 2149 LayoutUnit floatLogicalWidth = std::min(logicalWidthForFloat(floatingObject), logicalRightOffset - logicalLeftOffset); // The width we look for. -
trunk/Source/WebCore/rendering/RenderBlockFlow.h
r166171 r166301 540 540 const InlineIterator& restartLayoutRunsAndFloatsInRange(LayoutUnit oldLogicalHeight, LayoutUnit newLogicalHeight, FloatingObject* lastFloatFromPreviousLine, InlineBidiResolver&, const InlineIterator&); 541 541 void layoutRunsAndFloatsInRange(LineLayoutState&, InlineBidiResolver&, const InlineIterator& cleanLineStart, const BidiStatus& cleanLineBidiStatus, unsigned consecutiveHyphenatedLines); 542 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)543 void updateShapeAndSegmentsForCurrentLine(ShapeInsideInfo*&, const LayoutSize&, LineLayoutState&);544 void updateShapeAndSegmentsForCurrentLineInFlowThread(ShapeInsideInfo*&, LineLayoutState&);545 bool adjustLogicalLineTopAndLogicalHeightIfNeeded(ShapeInsideInfo*, LayoutUnit, LineLayoutState&, InlineBidiResolver&, FloatingObject*, InlineIterator&, WordMeasurements&);546 #endif547 542 void linkToEndLineIfNeeded(LineLayoutState&); 548 543 static void repaintDirtyFloats(Vector<FloatWithRect>& floats); -
trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp
r166245 r166301 647 647 updateLogicalInlinePositions(*this, lineLogicalLeft, lineLogicalRight, availableLogicalWidth, isFirstLine, shouldIndentText, 0); 648 648 bool needsWordSpacing; 649 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)650 ShapeInsideInfo* shapeInsideInfo = layoutShapeInsideInfo();651 if (shapeInsideInfo && shapeInsideInfo->hasSegments()) {652 BidiRun* segmentStart = firstRun;653 const SegmentList& segments = shapeInsideInfo->segments();654 float logicalLeft = std::max<float>(roundToInt(segments[0].logicalLeft), lineLogicalLeft);655 float logicalRight = std::min<float>(floorToInt(segments[0].logicalRight), lineLogicalRight);656 float startLogicalLeft = logicalLeft;657 float endLogicalRight = logicalLeft;658 float minLogicalLeft = logicalLeft;659 float maxLogicalRight = logicalLeft;660 lineBox->beginPlacingBoxRangesInInlineDirection(logicalLeft);661 for (size_t i = 0; i < segments.size(); i++) {662 if (i) {663 logicalLeft = std::max<float>(roundToInt(segments[i].logicalLeft), lineLogicalLeft);664 logicalRight = std::min<float>(floorToInt(segments[i].logicalRight), lineLogicalRight);665 }666 availableLogicalWidth = logicalRight - logicalLeft;667 BidiRun* newSegmentStart = computeInlineDirectionPositionsForSegment(lineBox, lineInfo, textAlign, logicalLeft, availableLogicalWidth, segmentStart, trailingSpaceRun, textBoxDataMap, verticalPositionCache, wordMeasurements);668 needsWordSpacing = false;669 endLogicalRight = lineBox->placeBoxRangeInInlineDirection(segmentStart->box(), newSegmentStart ? newSegmentStart->box() : 0, logicalLeft, minLogicalLeft, maxLogicalRight, needsWordSpacing, textBoxDataMap);670 if (!newSegmentStart || !newSegmentStart->next())671 break;672 ASSERT(newSegmentStart->m_startsSegment);673 // Discard the empty segment start marker bidi runs674 segmentStart = newSegmentStart->next();675 }676 lineBox->endPlacingBoxRangesInInlineDirection(startLogicalLeft, endLogicalRight, minLogicalLeft, maxLogicalRight);677 return;678 }679 #endif680 649 681 650 if (firstRun && firstRun->renderer().isReplaced()) { … … 949 918 } 950 919 951 static inline void constructBidiRunsForLine(const RenderBlockFlow* block, InlineBidiResolver& topResolver, BidiRunList<BidiRun>& bidiRuns, const InlineIterator& endOfLine, VisualDirectionOverride override, bool previousLineBrokeCleanly)952 {953 #if !ENABLE(CSS_SHAPES) || !ENABLE(CSS_SHAPE_INSIDE)954 UNUSED_PARAM(block);955 constructBidiRunsForSegment(topResolver, bidiRuns, endOfLine, override, previousLineBrokeCleanly);956 #else957 ShapeInsideInfo* shapeInsideInfo = block->layoutShapeInsideInfo();958 if (!shapeInsideInfo || !shapeInsideInfo->hasSegments()) {959 constructBidiRunsForSegment(topResolver, bidiRuns, endOfLine, override, previousLineBrokeCleanly);960 return;961 }962 963 const SegmentRangeList& segmentRanges = shapeInsideInfo->segmentRanges();964 ASSERT(segmentRanges.size());965 966 for (size_t i = 0; i < segmentRanges.size(); i++) {967 LineSegmentIterator iterator = segmentRanges[i].start;968 InlineIterator segmentStart(iterator.root, iterator.object, iterator.offset);969 iterator = segmentRanges[i].end;970 InlineIterator segmentEnd(iterator.root, iterator.object, iterator.offset);971 if (i) {972 ASSERT(segmentStart.renderer());973 BidiRun* segmentMarker = createRun(segmentStart.offset(), segmentStart.offset(), segmentStart.renderer(), topResolver);974 segmentMarker->m_startsSegment = true;975 bidiRuns.addRun(segmentMarker);976 // Do not collapse midpoints between segments977 topResolver.midpointState().setBetweenMidpoints(false);978 }979 if (segmentStart == segmentEnd)980 continue;981 topResolver.setPosition(segmentStart, numberOfIsolateAncestors(segmentStart));982 constructBidiRunsForSegment(topResolver, bidiRuns, segmentEnd, override, previousLineBrokeCleanly);983 }984 #endif985 }986 987 920 // This function constructs line boxes for all of the text runs in the resolver and computes their position. 988 921 RootInlineBox* RenderBlockFlow::createLineBoxesFromBidiRuns(unsigned bidiLevel, BidiRunList<BidiRun>& bidiRuns, const InlineIterator& end, LineInfo& lineInfo, VerticalPositionCache& verticalPositionCache, BidiRun* trailingSpaceRun, WordMeasurements& wordMeasurements) … … 1123 1056 } 1124 1057 1125 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)1126 static inline void pushShapeContentOverflowBelowTheContentBox(RenderBlockFlow* block, ShapeInsideInfo* shapeInsideInfo, LayoutUnit lineTop, LayoutUnit lineHeight)1127 {1128 ASSERT(shapeInsideInfo);1129 1130 LayoutUnit logicalLineBottom = lineTop + lineHeight;1131 LayoutUnit shapeLogicalBottom = shapeInsideInfo->shapeLogicalBottom();1132 LayoutUnit shapeContainingBlockLogicalHeight = shapeInsideInfo->shapeContainingBlockLogicalHeight();1133 1134 bool isOverflowPositionedAlready = (shapeContainingBlockLogicalHeight - shapeInsideInfo->owner().borderAndPaddingAfter() + lineHeight) <= lineTop;1135 1136 // If the last line overlaps with the shape, we don't need the segments anymore1137 if (lineTop < shapeLogicalBottom && shapeLogicalBottom < logicalLineBottom)1138 shapeInsideInfo->clearSegments();1139 1140 if (logicalLineBottom <= shapeLogicalBottom || !shapeContainingBlockLogicalHeight || isOverflowPositionedAlready)1141 return;1142 1143 LayoutUnit newLogicalHeight = block->logicalHeight() + (shapeContainingBlockLogicalHeight - (lineTop + shapeInsideInfo->owner().borderAndPaddingAfter()));1144 block->setLogicalHeight(newLogicalHeight);1145 }1146 1147 void RenderBlockFlow::updateShapeAndSegmentsForCurrentLine(ShapeInsideInfo*& shapeInsideInfo, const LayoutSize& logicalOffsetFromShapeContainer, LineLayoutState& layoutState)1148 {1149 if (layoutState.flowThread())1150 return updateShapeAndSegmentsForCurrentLineInFlowThread(shapeInsideInfo, layoutState);1151 1152 if (!shapeInsideInfo)1153 return;1154 1155 LayoutUnit lineTop = logicalHeight() + logicalOffsetFromShapeContainer.height();1156 LayoutUnit lineLeft = logicalOffsetFromShapeContainer.width();1157 LayoutUnit lineHeight = this->lineHeight(layoutState.lineInfo().isFirstLine(), isHorizontalWritingMode() ? HorizontalLine : VerticalLine, PositionOfInteriorLineBoxes);1158 1159 // FIXME: Bug 95361: It is possible for a line to grow beyond lineHeight, in which case these segments may be incorrect.1160 shapeInsideInfo->updateSegmentsForLine(LayoutSize(lineLeft, lineTop), lineHeight);1161 1162 pushShapeContentOverflowBelowTheContentBox(this, shapeInsideInfo, lineTop, lineHeight);1163 }1164 1165 void RenderBlockFlow::updateShapeAndSegmentsForCurrentLineInFlowThread(ShapeInsideInfo*& shapeInsideInfo, LineLayoutState& layoutState)1166 {1167 ASSERT(layoutState.flowThread());1168 1169 RenderRegion* currentRegion = regionAtBlockOffset(logicalHeight());1170 if (!currentRegion || !currentRegion->logicalHeight())1171 return;1172 1173 shapeInsideInfo = currentRegion->shapeInsideInfo();1174 1175 RenderRegion* nextRegion = 0;1176 if (!currentRegion->isLastRegion()) {1177 RenderRegionList regionList = layoutState.flowThread()->renderRegionList();1178 auto it = regionList.find(currentRegion);1179 nextRegion = *(++it);1180 }1181 1182 // We only want to deal regions with shapes, so we check if the next region has a shape1183 if (!shapeInsideInfo && nextRegion && !nextRegion->shapeInsideInfo())1184 return;1185 1186 LayoutUnit lineHeight = this->lineHeight(layoutState.lineInfo().isFirstLine(), isHorizontalWritingMode() ? HorizontalLine : VerticalLine, PositionOfInteriorLineBoxes);1187 LayoutUnit logicalLineTopInFlowThread = logicalHeight() + offsetFromLogicalTopOfFirstPage();1188 LayoutUnit logicalLineBottomInFlowThread = logicalLineTopInFlowThread + lineHeight;1189 LayoutUnit logicalRegionTopInFlowThread = currentRegion->logicalTopForFlowThreadContent();1190 LayoutUnit logicalRegionBottomInFlowThread = logicalRegionTopInFlowThread + currentRegion->logicalHeight() - currentRegion->borderAndPaddingBefore() - currentRegion->borderAndPaddingAfter();1191 1192 LayoutUnit shapeBottomInFlowThread = LayoutUnit::max();1193 if (shapeInsideInfo)1194 shapeBottomInFlowThread = shapeInsideInfo->shapeLogicalBottom() + currentRegion->logicalTopForFlowThreadContent();1195 1196 bool lineOverLapsWithShapeBottom = shapeBottomInFlowThread < logicalLineBottomInFlowThread;1197 bool lineTopAdjustedIntoNextRegion = layoutState.adjustedLogicalLineTop() >= currentRegion->logicalHeight();1198 bool lineOverLapsWithRegionBottom = logicalLineBottomInFlowThread > logicalRegionBottomInFlowThread || lineTopAdjustedIntoNextRegion;1199 bool overFlowsToNextRegion = nextRegion && (lineOverLapsWithShapeBottom || lineOverLapsWithRegionBottom);1200 1201 // If the line is between two shapes/regions we position the line to the top of the next shape/region1202 if (overFlowsToNextRegion) {1203 ASSERT(currentRegion != nextRegion);1204 LayoutUnit deltaToNextRegion = logicalRegionBottomInFlowThread - logicalLineTopInFlowThread;1205 setLogicalHeight(logicalHeight() + deltaToNextRegion);1206 1207 currentRegion = nextRegion;1208 shapeInsideInfo = currentRegion->shapeInsideInfo();1209 1210 logicalLineTopInFlowThread = logicalHeight() + offsetFromLogicalTopOfFirstPage();1211 logicalLineBottomInFlowThread = logicalLineTopInFlowThread + lineHeight;1212 logicalRegionTopInFlowThread = currentRegion->logicalTopForFlowThreadContent();1213 logicalRegionBottomInFlowThread = logicalRegionTopInFlowThread + currentRegion->logicalHeight() - currentRegion->borderAndPaddingBefore() - currentRegion->borderAndPaddingAfter();1214 1215 if (lineTopAdjustedIntoNextRegion)1216 layoutState.setAdjustedLogicalLineTop(0);1217 }1218 1219 if (!shapeInsideInfo)1220 return;1221 1222 bool isFirstLineInRegion = logicalLineBottomInFlowThread <= (logicalRegionTopInFlowThread + lineHeight);1223 bool isFirstLineAdjusted = (logicalLineTopInFlowThread - logicalRegionTopInFlowThread) < (layoutState.adjustedLogicalLineTop() - currentRegion->borderAndPaddingBefore());1224 // We position the first line to the top of the shape in the region or to the previously adjusted position in the shape1225 if (isFirstLineInRegion || isFirstLineAdjusted) {1226 LayoutUnit shapeTopOffset = layoutState.adjustedLogicalLineTop();1227 1228 if (!shapeTopOffset && (shapeInsideInfo->shapeLogicalTop() > 0))1229 shapeTopOffset = shapeInsideInfo->shapeLogicalTop();1230 1231 LayoutUnit shapePositionInFlowThread = currentRegion->logicalTopForFlowThreadContent() + shapeTopOffset;1232 LayoutUnit shapeTopLineTopDelta = shapePositionInFlowThread - logicalLineTopInFlowThread - currentRegion->borderAndPaddingBefore();1233 1234 setLogicalHeight(logicalHeight() + shapeTopLineTopDelta);1235 logicalLineTopInFlowThread += shapeTopLineTopDelta;1236 layoutState.setAdjustedLogicalLineTop(0);1237 }1238 1239 LayoutUnit lineTop = logicalLineTopInFlowThread - currentRegion->logicalTopForFlowThreadContent() + currentRegion->borderAndPaddingBefore();1240 1241 // FIXME: 118571 - Shape inside on a region does not yet take into account its padding for nested flow blocks1242 shapeInsideInfo->updateSegmentsForLine(LayoutSize(0, lineTop), lineHeight);1243 1244 if (currentRegion->isLastRegion())1245 pushShapeContentOverflowBelowTheContentBox(this, shapeInsideInfo, lineTop, lineHeight);1246 }1247 1248 static inline LayoutUnit adjustLogicalLineTop(ShapeInsideInfo* shapeInsideInfo, InlineIterator start, InlineIterator end, const WordMeasurements& wordMeasurements)1249 {1250 if (!shapeInsideInfo || end != start)1251 return 0;1252 1253 float minWidth = firstPositiveWidth(wordMeasurements);1254 ASSERT(minWidth || wordMeasurements.isEmpty());1255 if (minWidth > 0 && shapeInsideInfo->adjustLogicalLineTop(minWidth))1256 return shapeInsideInfo->logicalLineTop();1257 1258 return shapeInsideInfo->shapeLogicalBottom();1259 }1260 1261 bool RenderBlockFlow::adjustLogicalLineTopAndLogicalHeightIfNeeded(ShapeInsideInfo* shapeInsideInfo, LayoutUnit absoluteLogicalTop, LineLayoutState& layoutState, InlineBidiResolver& resolver, FloatingObject* lastFloatFromPreviousLine, InlineIterator& end, WordMeasurements& wordMeasurements)1262 {1263 LayoutUnit adjustedLogicalLineTop = adjustLogicalLineTop(shapeInsideInfo, resolver.position(), end, wordMeasurements);1264 1265 if (shapeInsideInfo && containsFloats()) {1266 lastFloatFromPreviousLine = m_floatingObjects->set().last().get();1267 if (!wordMeasurements.size()) {1268 LayoutUnit floatLogicalTopOffset = shapeInsideInfo->computeFirstFitPositionForFloat(logicalSizeForFloat(lastFloatFromPreviousLine));1269 if (logicalHeight() < floatLogicalTopOffset)1270 adjustedLogicalLineTop = floatLogicalTopOffset;1271 }1272 }1273 1274 if (!adjustedLogicalLineTop)1275 return false;1276 1277 LayoutUnit newLogicalHeight = adjustedLogicalLineTop - absoluteLogicalTop;1278 1279 if (layoutState.flowThread()) {1280 layoutState.setAdjustedLogicalLineTop(adjustedLogicalLineTop);1281 newLogicalHeight = logicalHeight();1282 }1283 1284 end = restartLayoutRunsAndFloatsInRange(logicalHeight(), newLogicalHeight, lastFloatFromPreviousLine, resolver, end);1285 return true;1286 }1287 #endif1288 1289 1058 void RenderBlockFlow::layoutRunsAndFloatsInRange(LineLayoutState& layoutState, InlineBidiResolver& resolver, const InlineIterator& cleanLineStart, const BidiStatus& cleanLineBidiStatus, unsigned consecutiveHyphenatedLines) 1290 1059 { … … 1299 1068 LineBreaker lineBreaker(*this); 1300 1069 1301 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)1302 LayoutSize logicalOffsetFromShapeContainer;1303 ShapeInsideInfo* shapeInsideInfo = layoutShapeInsideInfo();1304 if (shapeInsideInfo) {1305 ASSERT(&shapeInsideInfo->owner() == this || allowsShapeInsideInfoSharing());1306 if (shapeInsideInfo != this->shapeInsideInfo()) {1307 // FIXME Bug 100284: If subsequent LayoutStates are pushed, we will have to add1308 // their offsets from the original shape-inside container.1309 logicalOffsetFromShapeContainer = logicalOffsetFromShapeAncestorContainer(&shapeInsideInfo->owner());1310 }1311 // Begin layout at the logical top of our shape inside.1312 if (logicalHeight() + logicalOffsetFromShapeContainer.height() < shapeInsideInfo->shapeLogicalTop()) {1313 LayoutUnit logicalHeight = shapeInsideInfo->shapeLogicalTop() - logicalOffsetFromShapeContainer.height();1314 if (layoutState.flowThread())1315 logicalHeight -= shapeInsideInfo->owner().borderAndPaddingBefore();1316 setLogicalHeight(logicalHeight);1317 }1318 }1319 #endif1320 1321 1070 while (!end.atEnd()) { 1322 1071 // FIXME: Is this check necessary before the first iteration or can it be moved to the end? … … 1338 1087 FloatingObject* lastFloatFromPreviousLine = (containsFloats()) ? m_floatingObjects->set().last().get() : 0; 1339 1088 1340 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)1341 updateShapeAndSegmentsForCurrentLine(shapeInsideInfo, logicalOffsetFromShapeContainer, layoutState);1342 #endif1343 1089 WordMeasurements wordMeasurements; 1344 1090 end = lineBreaker.nextLineBreak(resolver, layoutState.lineInfo(), renderTextInfo, lastFloatFromPreviousLine, consecutiveHyphenatedLines, wordMeasurements); … … 1354 1100 } 1355 1101 1356 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)1357 if (adjustLogicalLineTopAndLogicalHeightIfNeeded(shapeInsideInfo, logicalOffsetFromShapeContainer.height(), layoutState, resolver, lastFloatFromPreviousLine, end, wordMeasurements))1358 continue;1359 #endif1360 1102 ASSERT(end != resolver.position()); 1361 1103 … … 1374 1116 // FIXME: This ownership is reversed. We should own the BidiRunList and pass it to createBidiRunsForLine. 1375 1117 BidiRunList<BidiRun>& bidiRuns = resolver.runs(); 1376 constructBidiRunsFor Line(this,resolver, bidiRuns, end, override, layoutState.lineInfo().previousLineBrokeCleanly());1118 constructBidiRunsForSegment(resolver, bidiRuns, end, override, layoutState.lineInfo().previousLineBrokeCleanly()); 1377 1119 ASSERT(resolver.position() == end); 1378 1120 -
trunk/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp
r165676 r166301 283 283 LayoutStateMaintainer statePusher(view(), *this, locationOffset(), hasTransform() || hasReflection() || style().isFlippedBlocksWritingMode()); 284 284 285 prepare ShapesAndPaginationBeforeBlockLayout(relayoutChildren);285 preparePaginationBeforeBlockLayout(relayoutChildren); 286 286 287 287 LayoutSize previousSize = size(); … … 323 323 324 324 layoutPositionedObjects(relayoutChildren || isRoot()); 325 326 updateShapesAfterBlockLayout();327 325 328 326 computeOverflow(oldClientAfterEdge); -
trunk/Source/WebCore/rendering/RenderElement.cpp
r165699 r166301 113 113 maskBoxImage->removeClient(this); 114 114 115 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)116 if (auto shapeValue = m_style->shapeInside()) {117 if (auto shapeImage = shapeValue->image())118 shapeImage->removeClient(this);119 }120 #endif121 115 #if ENABLE(CSS_SHAPES) 122 116 if (auto shapeValue = m_style->shapeOutside()) { … … 362 356 updateImage(nullptr, m_style->maskBoxImage().image()); 363 357 364 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)365 updateShapeImage(nullptr, m_style->shapeInside());366 #endif367 358 #if ENABLE(CSS_SHAPES) 368 359 updateShapeImage(nullptr, m_style->shapeOutside()); … … 418 409 updateImage(oldStyle.get().maskBoxImage().image(), m_style->maskBoxImage().image()); 419 410 420 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)421 updateShapeImage(oldStyle.get().shapeInside(), m_style->shapeInside());422 #endif423 411 #if ENABLE(CSS_SHAPES) 424 412 updateShapeImage(oldStyle.get().shapeOutside(), m_style->shapeOutside()); -
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
r164441 r166301 268 268 LayoutStateMaintainer statePusher(view(), *this, locationOffset(), hasTransform() || hasReflection() || style().isFlippedBlocksWritingMode()); 269 269 270 prepare ShapesAndPaginationBeforeBlockLayout(relayoutChildren);270 preparePaginationBeforeBlockLayout(relayoutChildren); 271 271 272 272 m_numberOfInFlowChildrenOnFirstLine = -1; … … 294 294 295 295 layoutPositionedObjects(relayoutChildren || isRoot()); 296 297 updateShapesAfterBlockLayout();298 296 299 297 repaintChildrenDuringLayoutIfMoved(oldChildRects); -
trunk/Source/WebCore/rendering/RenderGrid.cpp
r166299 r166301 187 187 LayoutStateMaintainer statePusher(view(), *this, locationOffset(), hasTransform() || hasReflection() || style().isFlippedBlocksWritingMode()); 188 188 189 prepare ShapesAndPaginationBeforeBlockLayout(relayoutChildren);189 preparePaginationBeforeBlockLayout(relayoutChildren); 190 190 191 191 LayoutSize previousSize = size(); … … 203 203 204 204 layoutPositionedObjects(relayoutChildren || isRoot()); 205 206 updateShapesAfterBlockLayout();207 205 208 206 computeOverflow(oldClientAfterEdge); -
trunk/Source/WebCore/rendering/RenderNamedFlowFragment.cpp
r165890 r166301 64 64 style.get().setRegionThread(parentStyle.regionThread()); 65 65 style.get().setRegionFragment(parentStyle.regionFragment()); 66 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)67 style.get().setShapeInside(parentStyle.shapeInside());68 #endif69 66 70 67 return style; -
trunk/Source/WebCore/rendering/RenderView.h
r166079 r166301 253 253 // We push LayoutState even if layoutState is disabled because it stores layoutDelta too. 254 254 if (!doingFullRepaint() || m_layoutState->isPaginated() || renderer.hasColumns() || renderer.flowThreadContainingBlock() 255 || m_layoutState->lineGrid() || (renderer.style().lineGrid() != RenderStyle::initialLineGrid() && renderer.isRenderBlockFlow()) 256 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE) 257 || (renderer.isRenderBlock() && toRenderBlock(renderer).shapeInsideInfo()) 258 || (m_layoutState->shapeInsideInfo() && renderer.isRenderBlock() && !toRenderBlock(renderer).allowsShapeInsideInfoSharing()) 259 #endif 260 ) { 255 || m_layoutState->lineGrid() || (renderer.style().lineGrid() != RenderStyle::initialLineGrid() && renderer.isRenderBlockFlow())) { 261 256 pushLayoutStateForCurrentFlowThread(renderer); 262 257 m_layoutState = std::make_unique<LayoutState>(std::move(m_layoutState), &renderer, offset, pageHeight, pageHeightChanged, colInfo); -
trunk/Source/WebCore/rendering/SimpleLineLayout.cpp
r163537 r166301 117 117 return false; 118 118 // These tests only works during layout. Outside layout this function may give false positives. 119 if (flow.view().layoutState()) { 120 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE) 121 if (flow.view().layoutState()->shapeInsideInfo()) 122 return false; 123 #endif 124 if (flow.view().layoutState()->m_columnInfo) 125 return false; 126 } 119 if (flow.view().layoutState() && flow.view().layoutState()->m_columnInfo) 120 return false; 127 121 const RenderStyle& style = flow.style(); 128 122 if (style.textDecorationsInEffect() != TextDecorationNone) … … 159 153 if (style.textShadow()) 160 154 return false; 161 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)162 if (style.resolvedShapeInside())163 return true;164 #endif165 155 if (style.textOverflow() || (flow.isAnonymousBlock() && flow.parent()->style().textOverflow())) 166 156 return false; -
trunk/Source/WebCore/rendering/line/BreakingContextInlineHeaders.h
r166245 r166301 40 40 #include <wtf/text/StringView.h> 41 41 #include <wtf/unicode/CharacterNames.h> 42 43 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)44 #include "ShapeInsideInfo.h"45 #endif46 42 47 43 namespace WebCore { … … 462 458 } 463 459 464 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)465 // FIXME: We can move this function & logic into LineWidth::fitBelowFloats466 inline void updateSegmentsForShapes(RenderBlockFlow& block, const FloatingObject* lastFloatFromPreviousLine, const WordMeasurements& wordMeasurements, LineWidth& width, bool isFirstLine)467 {468 ASSERT(lastFloatFromPreviousLine);469 470 ShapeInsideInfo* shapeInsideInfo = block.layoutShapeInsideInfo();471 if (!lastFloatFromPreviousLine->isPlaced() || !shapeInsideInfo)472 return;473 474 bool isHorizontalWritingMode = block.isHorizontalWritingMode();475 LayoutUnit logicalOffsetFromShapeContainer = block.logicalOffsetFromShapeAncestorContainer(&shapeInsideInfo->owner()).height();476 477 LayoutUnit lineLogicalTop = block.logicalHeight() + logicalOffsetFromShapeContainer;478 LayoutUnit lineLogicalHeight = block.lineHeight(isFirstLine, isHorizontalWritingMode ? HorizontalLine : VerticalLine, PositionOfInteriorLineBoxes);479 LayoutUnit lineLogicalBottom = lineLogicalTop + lineLogicalHeight;480 481 LayoutUnit floatLogicalTop = block.logicalTopForFloat(lastFloatFromPreviousLine);482 LayoutUnit floatLogicalBottom = block.logicalBottomForFloat(lastFloatFromPreviousLine);483 484 bool lineOverlapsWithFloat = (floatLogicalTop < lineLogicalBottom) && (lineLogicalTop < floatLogicalBottom);485 if (!lineOverlapsWithFloat)486 return;487 488 float minSegmentWidth = firstPositiveWidth(wordMeasurements);489 490 LayoutUnit floatLogicalWidth = block.logicalWidthForFloat(lastFloatFromPreviousLine);491 LayoutUnit availableLogicalWidth = block.logicalWidth() - block.logicalRightForFloat(lastFloatFromPreviousLine);492 if (availableLogicalWidth < minSegmentWidth)493 block.setLogicalHeight(floatLogicalBottom);494 495 if (block.logicalHeight() < floatLogicalTop) {496 shapeInsideInfo->adjustLogicalLineTop(minSegmentWidth + floatLogicalWidth);497 block.setLogicalHeight(shapeInsideInfo->logicalLineTop() - logicalOffsetFromShapeContainer);498 }499 500 width.updateLineSegment(block.logicalHeight());501 }502 #endif503 504 460 inline bool iteratorIsBeyondEndOfRenderCombineText(const InlineIterator& iter, RenderCombineText& renderer) 505 461 { … … 773 729 } 774 730 775 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)776 if (m_lastFloatFromPreviousLine)777 updateSegmentsForShapes(m_block, m_lastFloatFromPreviousLine, wordMeasurements, m_width, m_lineInfo.isFirstLine());778 #endif779 731 applyWordSpacing = wordSpacing && m_currentCharacterIsSpace; 780 732 … … 1073 1025 inline InlineIterator BreakingContext::handleEndOfLine() 1074 1026 { 1075 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE) 1076 ShapeInsideInfo* shapeInfo = m_block.layoutShapeInsideInfo(); 1077 bool segmentAllowsOverflow = !shapeInfo || !shapeInfo->hasSegments(); 1078 #else 1079 bool segmentAllowsOverflow = true; 1080 #endif 1081 if (segmentAllowsOverflow) { 1082 if (m_lineBreak == m_resolver.position()) { 1083 if (!m_lineBreak.renderer() || !m_lineBreak.renderer()->isBR()) { 1084 // we just add as much as possible 1085 if (m_blockStyle.whiteSpace() == PRE && !m_current.offset()) { 1086 m_lineBreak.moveTo(m_lastObject, m_lastObject->isText() ? m_lastObject->length() : 0); 1087 } else if (m_lineBreak.renderer()) { 1088 // Don't ever break in the middle of a word if we can help it. 1089 // There's no room at all. We just have to be on this line, 1090 // even though we'll spill out. 1091 m_lineBreak.moveTo(m_current.renderer(), m_current.offset()); 1092 } 1027 if (m_lineBreak == m_resolver.position()) { 1028 if (!m_lineBreak.renderer() || !m_lineBreak.renderer()->isBR()) { 1029 // we just add as much as possible 1030 if (m_blockStyle.whiteSpace() == PRE && !m_current.offset()) { 1031 m_lineBreak.moveTo(m_lastObject, m_lastObject->isText() ? m_lastObject->length() : 0); 1032 } else if (m_lineBreak.renderer()) { 1033 // Don't ever break in the middle of a word if we can help it. 1034 // There's no room at all. We just have to be on this line, 1035 // even though we'll spill out. 1036 m_lineBreak.moveTo(m_current.renderer(), m_current.offset()); 1093 1037 } 1094 // make sure we consume at least one char/object. 1095 if (m_lineBreak == m_resolver.position()) 1096 m_lineBreak.increment(); 1097 } else if (!m_current.offset() && !m_width.committedWidth() && m_width.uncommittedWidth() && !m_hadUncommittedWidthBeforeCurrent) { 1098 // Do not push the current object to the next line, when this line has some content, but it is still considered empty. 1099 // Empty inline elements like <span></span> can produce such lines and now we just ignore these break opportunities 1100 // at the start of a line, if no width has been committed yet. 1101 // Behave as if it was actually empty and consume at least one object. 1038 } 1039 // make sure we consume at least one char/object. 1040 if (m_lineBreak == m_resolver.position()) 1102 1041 m_lineBreak.increment(); 1103 } 1042 } else if (!m_current.offset() && !m_width.committedWidth() && m_width.uncommittedWidth() && !m_hadUncommittedWidthBeforeCurrent) { 1043 // Do not push the current object to the next line, when this line has some content, but it is still considered empty. 1044 // Empty inline elements like <span></span> can produce such lines and now we just ignore these break opportunities 1045 // at the start of a line, if no width has been committed yet. 1046 // Behave as if it was actually empty and consume at least one object. 1047 m_lineBreak.increment(); 1104 1048 } 1105 1049 -
trunk/Source/WebCore/rendering/line/LineBreaker.cpp
r163333 r166301 28 28 #include "BreakingContextInlineHeaders.h" 29 29 #include "RenderCombineText.h" 30 #include "ShapeInsideInfo.h"31 30 32 31 namespace WebCore { … … 81 80 InlineIterator LineBreaker::nextLineBreak(InlineBidiResolver& resolver, LineInfo& lineInfo, RenderTextInfo& renderTextInfo, FloatingObject* lastFloatFromPreviousLine, unsigned consecutiveHyphenatedLines, WordMeasurements& wordMeasurements) 82 81 { 83 #if !ENABLE(CSS_SHAPES) || !ENABLE(CSS_SHAPE_INSIDE)84 82 return nextSegmentBreak(resolver, lineInfo, renderTextInfo, lastFloatFromPreviousLine, consecutiveHyphenatedLines, wordMeasurements); 85 #else86 ShapeInsideInfo* shapeInsideInfo = m_block.layoutShapeInsideInfo();87 88 if (!shapeInsideInfo || !shapeInsideInfo->lineOverlapsShapeBounds())89 return nextSegmentBreak(resolver, lineInfo, renderTextInfo, lastFloatFromPreviousLine, consecutiveHyphenatedLines, wordMeasurements);90 91 InlineIterator end = resolver.position();92 InlineIterator oldEnd = end;93 94 if (!shapeInsideInfo->hasSegments()) {95 end = nextSegmentBreak(resolver, lineInfo, renderTextInfo, lastFloatFromPreviousLine, consecutiveHyphenatedLines, wordMeasurements);96 resolver.setPositionIgnoringNestedIsolates(oldEnd);97 return oldEnd;98 }99 100 const SegmentList& segments = shapeInsideInfo->segments();101 SegmentRangeList& segmentRanges = shapeInsideInfo->segmentRanges();102 103 for (unsigned i = 0; i < segments.size() && !end.atEnd(); i++) {104 InlineIterator segmentStart = resolver.position();105 end = nextSegmentBreak(resolver, lineInfo, renderTextInfo, lastFloatFromPreviousLine, consecutiveHyphenatedLines, wordMeasurements);106 107 ASSERT(segmentRanges.size() == i);108 if (resolver.position().atEnd()) {109 segmentRanges.append(LineSegmentRange(segmentStart, end));110 break;111 }112 if (resolver.position() == end) {113 // Nothing fit this segment114 end = segmentStart;115 segmentRanges.append(LineSegmentRange(segmentStart, segmentStart));116 resolver.setPositionIgnoringNestedIsolates(segmentStart);117 } else {118 // Note that resolver.position is already skipping some of the white space at the beginning of the line,119 // so that's why segmentStart might be different than resolver.position().120 LineSegmentRange range(resolver.position(), end);121 segmentRanges.append(range);122 resolver.setPosition(end, numberOfIsolateAncestors(end));123 124 if (lineInfo.previousLineBrokeCleanly()) {125 // If we hit a new line break, just stop adding anything to this line.126 break;127 }128 }129 }130 resolver.setPositionIgnoringNestedIsolates(oldEnd);131 return end;132 #endif133 83 } 134 84 -
trunk/Source/WebCore/rendering/line/LineWidth.cpp
r164868 r166301 34 34 #include "RenderRubyRun.h" 35 35 36 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)37 #include "ShapeInsideInfo.h"38 #endif39 40 36 namespace WebCore { 41 37 … … 50 46 , m_right(0) 51 47 , m_availableWidth(0) 52 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)53 , m_segment(0)54 #endif55 48 , m_isFirstLine(isFirstLine) 56 49 , m_shouldIndentText(shouldIndentText) 57 50 { 58 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)59 updateCurrentShapeSegment();60 #endif61 51 updateAvailableWidth(); 62 52 } … … 83 73 m_left = m_block.logicalLeftOffsetForLine(height, shouldIndentText(), logicalHeight); 84 74 m_right = m_block.logicalRightOffsetForLine(height, shouldIndentText(), logicalHeight); 85 86 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)87 if (m_segment) {88 m_left = std::max<float>(m_segment->logicalLeft, m_left);89 m_right = std::min<float>(m_segment->logicalRight, m_right);90 }91 #endif92 75 93 76 computeAvailableWidthFromLeftAndRight(); … … 217 200 updateLineDimension(newLineTop, newLineWidth, newLineLeft, newLineRight); 218 201 } 219 220 #if ENABLE(CSS_SHAPE_INSIDE)221 void LineWidth::updateLineSegment(const LayoutUnit& lineTop)222 {223 ShapeInsideInfo* shapeInsideInfo = m_block.layoutShapeInsideInfo();224 if (!shapeInsideInfo)225 return;226 227 LayoutUnit logicalOffsetFromShapeContainer = m_block.logicalOffsetFromShapeAncestorContainer(&shapeInsideInfo->owner()).height();228 LayoutUnit lineHeight = m_block.lineHeight(false, m_block.isHorizontalWritingMode() ? HorizontalLine : VerticalLine, PositionOfInteriorLineBoxes);229 shapeInsideInfo->updateSegmentsForLine(lineTop + logicalOffsetFromShapeContainer, lineHeight);230 updateCurrentShapeSegment();231 updateAvailableWidth();232 }233 #endif234 202 #endif 235 203 … … 263 231 lastFloatLogicalBottom = floatLogicalBottom; 264 232 265 if (newLineWidth >= m_uncommittedWidth) { 266 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE) 267 updateLineSegment(lastFloatLogicalBottom); 268 #endif 269 break; 270 } 233 if (newLineWidth >= m_uncommittedWidth) 234 break; 271 235 } 272 236 … … 279 243 m_trailingWhitespaceWidth = collapsedWhitespace + borderPaddingMargin; 280 244 } 281 282 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)283 void LineWidth::updateCurrentShapeSegment()284 {285 if (ShapeInsideInfo* shapeInsideInfo = m_block.layoutShapeInsideInfo())286 m_segment = shapeInsideInfo->currentSegment();287 }288 #endif289 245 290 246 void LineWidth::computeAvailableWidthFromLeftAndRight() -
trunk/Source/WebCore/rendering/line/LineWidth.h
r164868 r166301 68 68 void setTrailingWhitespaceWidth(float collapsedWhitespace, float borderPaddingMargin = 0); 69 69 bool shouldIndentText() const { return m_shouldIndentText == IndentText; } 70 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)71 void updateLineSegment(const LayoutUnit&);72 #endif73 70 74 71 private: … … 78 75 #if ENABLE(CSS_SHAPES) 79 76 void wrapNextToShapeOutside(bool isFirstLine); 80 #if ENABLE(CSS_SHAPE_INSIDE)81 void updateCurrentShapeSegment();82 #endif83 77 #endif 84 78 … … 92 86 float m_right; 93 87 float m_availableWidth; 94 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)95 const LineSegment* m_segment;96 #endif97 88 bool m_isFirstLine; 98 89 IndentTextOrNot m_shouldIndentText; -
trunk/Source/WebCore/rendering/style/RenderStyle.cpp
r166060 r166301 460 460 // If regions change, trigger a relayout to re-calc regions. 461 461 if (rareNonInheritedData->m_dashboardRegions != other->rareNonInheritedData->m_dashboardRegions) 462 return true;463 #endif464 465 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)466 if (rareNonInheritedData->m_shapeInside != other->rareNonInheritedData->m_shapeInside)467 462 return true; 468 463 #endif -
trunk/Source/WebCore/rendering/style/RenderStyle.h
r166060 r166301 1499 1499 void setKerning(SVGLength k) { accessSVGStyle().setKerning(k); } 1500 1500 1501 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)1502 void setShapeInside(PassRefPtr<ShapeValue> value)1503 {1504 if (rareNonInheritedData->m_shapeInside == value)1505 return;1506 rareNonInheritedData.access()->m_shapeInside = value;1507 }1508 ShapeValue* shapeInside() const { return rareNonInheritedData->m_shapeInside.get(); }1509 ShapeValue* resolvedShapeInside() const1510 {1511 ShapeValue* shapeInside = this->shapeInside();1512 if (shapeInside && shapeInside->type() == ShapeValue::Outside)1513 return shapeOutside();1514 return shapeInside;1515 }1516 1517 static ShapeValue* initialShapeInside() { return 0; }1518 #endif1519 1501 #if ENABLE(CSS_SHAPES) 1520 1502 void setShapeOutside(PassRefPtr<ShapeValue> value) -
trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp
r164795 r166301 56 56 , m_mask(FillLayer(MaskFillLayer)) 57 57 , m_pageSize() 58 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)59 , m_shapeInside(RenderStyle::initialShapeInside())60 #endif61 58 #if ENABLE(CSS_SHAPES) 62 59 , m_shapeOutside(RenderStyle::initialShapeOutside()) … … 132 129 , m_maskBoxImage(o.m_maskBoxImage) 133 130 , m_pageSize(o.m_pageSize) 134 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)135 , m_shapeInside(o.m_shapeInside)136 #endif137 131 #if ENABLE(CSS_SHAPES) 138 132 , m_shapeOutside(o.m_shapeOutside) … … 226 220 && m_maskBoxImage == o.m_maskBoxImage 227 221 && m_pageSize == o.m_pageSize 228 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)229 && m_shapeInside == o.m_shapeInside230 #endif231 222 #if ENABLE(CSS_SHAPES) 232 223 && m_shapeOutside == o.m_shapeOutside -
trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.h
r164795 r166301 141 141 LengthSize m_pageSize; 142 142 143 #if ENABLE(CSS_SHAPES) && ENABLE(CSS_SHAPE_INSIDE)144 RefPtr<ShapeValue> m_shapeInside;145 #endif146 143 #if ENABLE(CSS_SHAPES) 147 144 RefPtr<ShapeValue> m_shapeOutside; -
trunk/Source/WebKit/mac/ChangeLog
r166257 r166301 1 2014-03-26 Zoltan Horvath <zoltan@webkit.org> 2 3 [CSS Shapes] Remove shape-inside support 4 https://bugs.webkit.org/show_bug.cgi?id=130698 5 6 Reviewed by David Hyatt. 7 8 * Configurations/FeatureDefines.xcconfig: 9 1 10 2014-03-25 Joseph Pecoraro <pecoraro@apple.com> 2 11 -
trunk/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig
r166201 r166301 60 60 ENABLE_CSS_REGIONS = ENABLE_CSS_REGIONS; 61 61 ENABLE_CSS_SHAPES = ENABLE_CSS_SHAPES; 62 ENABLE_CSS_SHAPE_INSIDE = ENABLE_CSS_SHAPE_INSIDE;63 62 ENABLE_CSS_STICKY_POSITION = ENABLE_CSS_STICKY_POSITION; 64 63 ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED = ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED; … … 226 225 ENABLE_LLINT_C_LOOP = ; 227 226 228 FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_S HAPE_INSIDE) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILTERS) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INSPECTOR) $(ENABLE_IOS_AIRPLAY) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WEBVTT_REGIONS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(FEATURE_DEFINES_$(PLATFORM_NAME));227 FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILTERS) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INSPECTOR) $(ENABLE_IOS_AIRPLAY) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WEBVTT_REGIONS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(FEATURE_DEFINES_$(PLATFORM_NAME)); -
trunk/Source/WebKit2/ChangeLog
r166296 r166301 1 2014-03-26 Zoltan Horvath <zoltan@webkit.org> 2 3 [CSS Shapes] Remove shape-inside support 4 https://bugs.webkit.org/show_bug.cgi?id=130698 5 6 Reviewed by David Hyatt. 7 8 * Configurations/FeatureDefines.xcconfig: 9 1 10 2014-03-26 Tim Horton <timothy_horton@apple.com> 2 11 -
trunk/Source/WebKit2/Configurations/FeatureDefines.xcconfig
r166201 r166301 60 60 ENABLE_CSS_REGIONS = ENABLE_CSS_REGIONS; 61 61 ENABLE_CSS_SHAPES = ENABLE_CSS_SHAPES; 62 ENABLE_CSS_SHAPE_INSIDE = ENABLE_CSS_SHAPE_INSIDE;63 62 ENABLE_CSS_STICKY_POSITION = ENABLE_CSS_STICKY_POSITION; 64 63 ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED = ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED; … … 226 225 ENABLE_LLINT_C_LOOP = ; 227 226 228 FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_S HAPE_INSIDE) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILTERS) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INSPECTOR) $(ENABLE_IOS_AIRPLAY) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WEBVTT_REGIONS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(FEATURE_DEFINES_$(PLATFORM_NAME));227 FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILTERS) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INSPECTOR) $(ENABLE_IOS_AIRPLAY) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WEBVTT_REGIONS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(FEATURE_DEFINES_$(PLATFORM_NAME)); -
trunk/Source/cmake/WebKitFeatures.cmake
r164943 r166301 38 38 WEBKIT_OPTION_DEFINE(ENABLE_CSS_REGIONS "Toggle CSS regions support" OFF) 39 39 WEBKIT_OPTION_DEFINE(ENABLE_CSS_SHAPES "Toggle CSS Shapes support" OFF) 40 WEBKIT_OPTION_DEFINE(ENABLE_CSS_SHAPE_INSIDE "Toggle CSS Shapes Inside support" OFF)41 40 WEBKIT_OPTION_DEFINE(ENABLE_CSS_STICKY_POSITION "Toggle CSS sticky position support" OFF) 42 41 WEBKIT_OPTION_DEFINE(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED "Toggle support for unprefixed CSS animations and transforms" ON) -
trunk/Source/cmakeconfig.h.cmake
r165738 r166301 28 28 #cmakedefine01 ENABLE_CSS_REGIONS 29 29 #cmakedefine01 ENABLE_CSS_SHAPES 30 #cmakedefine01 ENABLE_CSS_SHAPE_INSIDE31 30 #cmakedefine01 ENABLE_CSS_STICKY_POSITION 32 31 #cmakedefine01 ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED -
trunk/Tools/ChangeLog
r166291 r166301 1 2014-03-26 Zoltan Horvath <zoltan@webkit.org> 2 3 [CSS Shapes] Remove shape-inside support 4 https://bugs.webkit.org/show_bug.cgi?id=130698 5 6 Reviewed by David Hyatt. 7 8 * Scripts/webkitperl/FeatureList.pm: 9 1 10 2014-02-27 Gurpreet Kaur <k.gurpreet@samsung.com> 2 11 -
trunk/Tools/Scripts/webkitperl/FeatureList.pm
r165722 r166301 66 66 $cssShadersSupport, 67 67 $cssShapesSupport, 68 $cssShapeInsideSupport,69 68 $cssStickyPositionSupport, 70 69 $cssCompositingSupport, … … 192 191 define => "ENABLE_CSS_SHAPES", default => 1, value => \$cssShapesSupport }, 193 192 194 { option => "css-shape-inside", desc => "Toggle CSS Shapes shape-inside support",195 define => "ENABLE_CSS_SHAPE_INSIDE", default => 1, value => \$cssShapeInsideSupport },196 197 193 { option => "css-filters", desc => "Toggle CSS Filters support", 198 194 define => "ENABLE_CSS_FILTERS", default => (isAppleMacWebKit() || isIOSWebKit()), value => \$cssFiltersSupport },
Note: See TracChangeset
for help on using the changeset viewer.