Changeset 148049 in webkit
- Timestamp:
- Apr 9, 2013 1:52:55 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 66 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r148040 r148049 1 2013-04-09 Simon Fraser <simon.fraser@apple.com> 2 3 Repaint rect too small on elements with shadows 4 https://bugs.webkit.org/show_bug.cgi?id=114225 5 6 Reviewed by Darin Alder. 7 8 New test for invalidation with box-shadow. Update test results affected 9 by shadow extent. 10 11 * compositing/geometry/foreground-layer-expected.txt: 12 * compositing/iframes/composited-parent-iframe-expected.txt: 13 * compositing/iframes/connect-compositing-iframe-delayed-expected.txt: 14 * compositing/iframes/connect-compositing-iframe-expected.txt: 15 * compositing/iframes/connect-compositing-iframe2-expected.txt: 16 * compositing/iframes/connect-compositing-iframe3-expected.txt: 17 * compositing/iframes/enter-compositing-iframe-expected.txt: 18 * compositing/iframes/iframe-resize-expected.txt: 19 * compositing/iframes/invisible-nested-iframe-show-expected.txt: 20 * compositing/iframes/overlapped-iframe-expected.txt: 21 * compositing/iframes/page-cache-layer-tree-expected.txt: 22 * compositing/iframes/scrolling-iframe-expected.txt: 23 * compositing/visible-rect/iframe-and-layers-expected.txt: 24 * fast/box-shadow/shadow-repaint-expected.txt: Added. 25 * fast/box-shadow/shadow-repaint.html: Added. 26 * platform/mac/fast/multicol/shadow-breaking-expected.png: 27 * platform/mac/fast/multicol/shadow-breaking-expected.txt: 28 * platform/mac/fast/repaint/moving-shadow-on-container-expected.txt: 29 * platform/mac/fast/repaint/moving-shadow-on-path-expected.png: 30 * platform/mac/fast/repaint/moving-shadow-on-path-expected.txt: 31 * platform/mac/svg/css/arrow-with-shadow-expected.png: 32 * platform/mac/svg/css/circle-in-mask-with-shadow-expected.png: 33 * platform/mac/svg/css/clippath-with-shadow-expected.png: 34 * platform/mac/svg/css/composite-shadow-example-expected.png: 35 * platform/mac/svg/css/composite-shadow-example-expected.txt: 36 * platform/mac/svg/css/composite-shadow-text-expected.txt: 37 * platform/mac/svg/css/composite-shadow-with-opacity-expected.png: 38 * platform/mac/svg/css/composite-shadow-with-opacity-expected.txt: 39 * platform/mac/svg/css/group-with-shadow-expected.png: 40 * platform/mac/svg/css/group-with-shadow-expected.txt: 41 * platform/mac/svg/css/mask-with-shadow-expected.png: 42 * platform/mac/svg/css/path-with-shadow-expected.png: 43 * platform/mac/svg/css/path-with-shadow-expected.txt: 44 * platform/mac/svg/css/shadow-and-opacity-expected.png: 45 * platform/mac/svg/css/shadow-and-opacity-expected.txt: 46 * platform/mac/svg/css/shadow-changes-expected.png: 47 * platform/mac/svg/css/shadow-changes-expected.txt: 48 * platform/mac/svg/css/shadow-with-large-radius-expected.png: 49 * platform/mac/svg/css/shadow-with-negative-offset-expected.png: 50 * platform/mac/svg/css/stars-with-shadow-expected.png: 51 * platform/mac/svg/css/stars-with-shadow-expected.txt: 52 * platform/mac/svg/css/text-gradient-shadow-expected.png: 53 * platform/mac/svg/css/text-gradient-shadow-expected.txt: 54 * platform/mac/svg/css/text-shadow-multiple-expected.png: 55 * platform/mac/svg/custom/repaint-shadow-expected.png: 56 * platform/mac/svg/custom/transform-with-shadow-and-gradient-expected.txt: 57 * svg/css/arrow-with-shadow-expected.txt: 58 * svg/css/circle-in-mask-with-shadow-expected.txt: 59 * svg/css/clippath-with-shadow-expected.txt: 60 * svg/css/mask-with-shadow-expected.txt: 61 * svg/css/shadow-with-large-radius-expected.txt: 62 * svg/css/shadow-with-negative-offset-expected.txt: 63 * svg/css/text-shadow-multiple-expected.txt: 64 * svg/custom/repaint-shadow-expected.txt: 65 * svg/filters/shadow-on-rect-with-filter-expected.txt: 66 * svg/repaint/repaint-webkit-svg-shadow-container-expected.txt: 67 1 68 2013-04-09 Benjamin Poulain <bpoulain@apple.com> 2 69 -
trunk/LayoutTests/compositing/geometry/foreground-layer-expected.txt
r141634 r148049 8 8 (children 2 9 9 (GraphicsLayer 10 (position 1 8.00 18.00)11 (bounds 3 20.00 320.00)10 (position 10.00 10.00) 11 (bounds 336.00 336.00) 12 12 (drawsContent 1) 13 13 (children 2 14 14 (GraphicsLayer 15 (position 6 0.00 60.00)15 (position 68.00 68.00) 16 16 (bounds 50.00 50.00) 17 17 (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 1.00 1.00]) 18 18 ) 19 19 (GraphicsLayer 20 (bounds 3 20.00 320.00)20 (bounds 336.00 336.00) 21 21 (drawsContent 1) 22 22 ) … … 24 24 ) 25 25 (GraphicsLayer 26 (position 3 62.00 18.00)27 (bounds 3 20.00 320.00)26 (position 354.00 10.00) 27 (bounds 336.00 336.00) 28 28 (drawsContent 1) 29 29 (children 1 30 30 (GraphicsLayer 31 (position 6 0.00 60.00)31 (position 68.00 68.00) 32 32 (bounds 200.00 200.00) 33 33 (children 2 -
trunk/LayoutTests/compositing/iframes/composited-parent-iframe-expected.txt
r146531 r148049 8 8 (children 1 9 9 (GraphicsLayer 10 (position - 12.00 -12.00)11 (bounds 3 70.00 220.00)10 (position -20.00 -20.00) 11 (bounds 386.00 236.00) 12 12 (drawsContent 1) 13 13 (children 1 14 14 (GraphicsLayer 15 (position 35.00 35.00)15 (position 43.00 43.00) 16 16 (children 1 17 17 (GraphicsLayer -
trunk/LayoutTests/compositing/iframes/connect-compositing-iframe-delayed-expected.txt
r146531 r148049 10 10 (children 2 11 11 (GraphicsLayer 12 (position 8.00 108.00)13 (bounds 3 70.00 220.00)12 (position 0.00 100.00) 13 (bounds 386.00 236.00) 14 14 (drawsContent 1) 15 15 (children 1 16 16 (GraphicsLayer 17 (position 35.00 35.00)17 (position 43.00 43.00) 18 18 (children 1 19 19 (GraphicsLayer -
trunk/LayoutTests/compositing/iframes/connect-compositing-iframe-expected.txt
r146531 r148049 8 8 (children 2 9 9 (GraphicsLayer 10 (position 8.00 8.00) 11 (bounds 370.00 220.00) 10 (bounds 386.00 236.00) 12 11 (drawsContent 1) 13 12 (children 1 14 13 (GraphicsLayer 15 (position 35.00 35.00)14 (position 43.00 43.00) 16 15 (children 1 17 16 (GraphicsLayer -
trunk/LayoutTests/compositing/iframes/connect-compositing-iframe2-expected.txt
r146531 r148049 8 8 (children 2 9 9 (GraphicsLayer 10 (position 8.00 8.00) 11 (bounds 370.00 220.00) 10 (bounds 386.00 236.00) 12 11 (drawsContent 1) 13 12 (children 1 14 13 (GraphicsLayer 15 (position 35.00 35.00)14 (position 43.00 43.00) 16 15 (children 1 17 16 (GraphicsLayer -
trunk/LayoutTests/compositing/iframes/connect-compositing-iframe3-expected.txt
r146531 r148049 8 8 (children 1 9 9 (GraphicsLayer 10 (position 8.00 8.00) 11 (bounds 370.00 220.00) 10 (bounds 386.00 236.00) 12 11 (drawsContent 1) 13 12 (children 1 14 13 (GraphicsLayer 15 (position 35.00 35.00)14 (position 43.00 43.00) 16 15 (children 1 17 16 (GraphicsLayer -
trunk/LayoutTests/compositing/iframes/enter-compositing-iframe-expected.txt
r146531 r148049 8 8 (children 2 9 9 (GraphicsLayer 10 (position 8.00 8.00) 11 (bounds 370.00 220.00) 10 (bounds 386.00 236.00) 12 11 (drawsContent 1) 13 12 (children 1 14 13 (GraphicsLayer 15 (position 35.00 35.00)14 (position 43.00 43.00) 16 15 (children 1 17 16 (GraphicsLayer -
trunk/LayoutTests/compositing/iframes/iframe-resize-expected.txt
r146531 r148049 8 8 (children 2 9 9 (GraphicsLayer 10 (position 8.00 8.00) 11 (bounds 470.00 190.00) 10 (bounds 486.00 206.00) 12 11 (drawsContent 1) 13 12 (children 1 14 13 (GraphicsLayer 15 (position 35.00 35.00)14 (position 43.00 43.00) 16 15 (children 1 17 16 (GraphicsLayer -
trunk/LayoutTests/compositing/iframes/invisible-nested-iframe-show-expected.txt
r146531 r148049 8 8 (children 2 9 9 (GraphicsLayer 10 (bounds 3 58.00 208.00)10 (bounds 366.00 216.00) 11 11 (drawsContent 1) 12 12 (children 1 -
trunk/LayoutTests/compositing/iframes/overlapped-iframe-expected.txt
r146531 r148049 8 8 (children 2 9 9 (GraphicsLayer 10 (position 8.00 8.00) 11 (bounds 370.00 220.00) 10 (bounds 386.00 236.00) 12 11 (drawsContent 1) 13 12 (children 1 14 13 (GraphicsLayer 15 (position 35.00 35.00)14 (position 43.00 43.00) 16 15 (children 1 17 16 (GraphicsLayer -
trunk/LayoutTests/compositing/iframes/page-cache-layer-tree-expected.txt
r146531 r148049 14 14 (children 4 15 15 (GraphicsLayer 16 (position 8.00 50.00)17 (bounds 3 70.00 220.00)16 (position 0.00 42.00) 17 (bounds 386.00 236.00) 18 18 (drawsContent 1) 19 19 (children 1 20 20 (GraphicsLayer 21 (position 35.00 35.00)21 (position 43.00 43.00) 22 22 (children 1 23 23 (GraphicsLayer … … 58 58 (GraphicsLayer 59 59 (position 8.00 274.00) 60 (bounds 370.00 220.00)60 (bounds 784.00 224.00) 61 61 (drawsContent 1) 62 62 (children 1 63 63 (GraphicsLayer 64 (position 35.00 35.00) 64 (position -8.00 -8.00) 65 (bounds 386.00 236.00) 66 (drawsContent 1) 65 67 (children 1 66 68 (GraphicsLayer 67 ( bounds 285.00 135.00)69 (position 43.00 43.00) 68 70 (children 1 69 71 (GraphicsLayer 72 (bounds 285.00 135.00) 70 73 (children 1 71 74 (GraphicsLayer 72 (bounds 508.00 608.00)73 75 (children 1 74 76 (GraphicsLayer 75 77 (bounds 508.00 608.00) 76 (drawsContent 1)77 78 (children 1 78 79 (GraphicsLayer 79 (position 108.00 100.00) 80 (bounds 200.00 200.00) 81 (contentsOpaque 1) 80 (bounds 508.00 608.00) 81 (drawsContent 1) 82 (children 1 83 (GraphicsLayer 84 (position 108.00 100.00) 85 (bounds 200.00 200.00) 86 (contentsOpaque 1) 87 ) 88 ) 82 89 ) 83 90 ) -
trunk/LayoutTests/compositing/iframes/scrolling-iframe-expected.txt
r146531 r148049 8 8 (children 2 9 9 (GraphicsLayer 10 (position 8.00 8.00) 11 (bounds 370.00 220.00) 10 (bounds 386.00 236.00) 12 11 (drawsContent 1) 13 12 (children 1 14 13 (GraphicsLayer 15 (position 35.00 35.00)14 (position 43.00 43.00) 16 15 (children 1 17 16 (GraphicsLayer -
trunk/LayoutTests/compositing/visible-rect/iframe-and-layers-expected.txt
r146531 r148049 10 10 (children 2 11 11 (GraphicsLayer 12 (position 1 8.00 18.00)13 (bounds 3 44.00 194.00)12 (position 10.00 10.00) 13 (bounds 360.00 210.00) 14 14 (drawsContent 1) 15 (visible rect 0.00, 0.00 3 44.00 x 194.00)15 (visible rect 0.00, 0.00 360.00 x 210.00) 16 16 (children 1 17 17 (GraphicsLayer 18 (position 22.00 22.00)18 (position 30.00 30.00) 19 19 (visible rect 0.00, 0.00 0.00 x 0.00) 20 20 (children 1 -
trunk/LayoutTests/platform/mac/fast/multicol/shadow-breaking-expected.txt
r67660 r148049 5 5 RenderBody {BODY} at (8,8) size 784x0 6 6 RenderBlock {DIV} at (0,0) size 784x0 7 layer at (20,36) size 424x27 08 RenderBlock (positioned) {P} at (20,36) size 424x27 0[border: (2px solid #000000)]7 layer at (20,36) size 424x272 8 RenderBlock (positioned) {P} at (20,36) size 424x272 [border: (2px solid #000000)] 9 9 RenderBlock (floating) at (2,2) size 24x41 10 10 RenderText {#text} at (0,0) size 24x41 11 11 text run at (0,0) width 24: "L" 12 RenderText {#text} at (30,2) size 200x49 112 RenderText {#text} at (30,2) size 200x497 13 13 text run at (30,2) width 172: "orem ipsum dolor sit" 14 14 text run at (30,20) width 172: "amet, consectetur" … … 25 25 text run at (2,218) width 200: "Nam non ligula massa, sed" 26 26 text run at (2,236) width 200: "suscipit turpis. Etiam eget" 27 text run at (2,2 77) width 200: "ligula sit amet turpis"28 text run at (2, 295) width 200: "venenatis dictum in eleifend"29 text run at (2,31 3) width 200: "augue. Duis tellus lectus,"30 text run at (2,33 1) width 200: "volutpat et adipiscing a,"31 text run at (2,3 49) width 200: "pellentesque eu metus."32 text run at (2,3 67) width 200: "Aenean suscipit congue"33 text run at (2,3 85) width 200: "mauris at gravida. Integer"34 text run at (2,40 3) width 200: "lectus ligula, consectetur sit"35 text run at (2,42 1) width 200: "amet venenatis id, scelerisque"36 text run at (2,4 39) width 200: "eget nisl. Nunc dapibus"37 text run at (2,4 57) width 200: "posuere risus, vitae tempor"38 text run at (2,4 75) width 97: "nibh iaculis et."27 text run at (2,283) width 200: "ligula sit amet turpis" 28 text run at (2,301) width 200: "venenatis dictum in eleifend" 29 text run at (2,319) width 200: "augue. Duis tellus lectus," 30 text run at (2,337) width 200: "volutpat et adipiscing a," 31 text run at (2,355) width 200: "pellentesque eu metus." 32 text run at (2,373) width 200: "Aenean suscipit congue" 33 text run at (2,391) width 200: "mauris at gravida. Integer" 34 text run at (2,409) width 200: "lectus ligula, consectetur sit" 35 text run at (2,427) width 200: "amet venenatis id, scelerisque" 36 text run at (2,445) width 200: "eget nisl. Nunc dapibus" 37 text run at (2,463) width 200: "posuere risus, vitae tempor" 38 text run at (2,481) width 97: "nibh iaculis et." -
trunk/LayoutTests/platform/mac/fast/repaint/moving-shadow-on-container-expected.txt
r133834 r148049 4 4 RenderBlock {HTML} at (0,0) size 785x616 5 5 RenderBody {BODY} at (8,8) size 769x600 6 RenderSVGRoot {svg} at (8,8) size 4 88x1937 RenderSVGPath {path} at (8,8) size 78x68[stroke={[type=SOLID] [color=#000000] [stroke width=10.00]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.83697e-15 30 L -35.2671 48.541 L -28.5317 9.27051 L -57.0634 -18.541 L -17.6336 -24.2705 L -1.10218e-14 -60 L 17.6336 -24.2705 L 57.0634 -18.541 L 28.5317 9.27051 L 35.2671 48.541 Z"]8 RenderSVGPath {path} at ( 200,46) size 128x125[transform={m=((1.00,0.00)(0.00,1.00)) t=(250.00,100.00)}] [stroke={[type=SOLID] [color=#000000] [stroke width=10.00] [dash array={20.00}]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.83697e-15 30 L -35.2671 48.541 L -28.5317 9.27051 L -57.0634 -18.541 L -17.6336 -24.2705 L -1.10218e-14 -60 L 17.6336 -24.2705 L 57.0634 -18.541 L 28.5317 9.27051 L 35.2671 48.541 Z"]9 RenderSVGPath {path} at (34 9,46) size 117x122[transform={m=((1.00,0.00)(0.00,1.00)) t=(400.00,100.00)}] [stroke={[type=SOLID] [color=#000000] [stroke width=10.00] [dash array={20.00}]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.53081e-15 25 L -29.3893 40.4509 L -23.7764 7.72542 L -47.5528 -15.4508 L -14.6946 -20.2254 L -9.18485e-15 -50 L 14.6946 -20.2254 L 47.5528 -15.4508 L 23.7764 7.72542 L 29.3893 40.4509 Z"]6 RenderSVGRoot {svg} at (8,8) size 496x201 7 RenderSVGPath {path} at (8,8) size 80x70 [stroke={[type=SOLID] [color=#000000] [stroke width=10.00]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.83697e-15 30 L -35.2671 48.541 L -28.5317 9.27051 L -57.0634 -18.541 L -17.6336 -24.2705 L -1.10218e-14 -60 L 17.6336 -24.2705 L 57.0634 -18.541 L 28.5317 9.27051 L 35.2671 48.541 Z"] 8 RenderSVGPath {path} at (198,44) size 132x129 [transform={m=((1.00,0.00)(0.00,1.00)) t=(250.00,100.00)}] [stroke={[type=SOLID] [color=#000000] [stroke width=10.00] [dash array={20.00}]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.83697e-15 30 L -35.2671 48.541 L -28.5317 9.27051 L -57.0634 -18.541 L -17.6336 -24.2705 L -1.10218e-14 -60 L 17.6336 -24.2705 L 57.0634 -18.541 L 28.5317 9.27051 L 35.2671 48.541 Z"] 9 RenderSVGPath {path} at (347,44) size 121x126 [transform={m=((1.00,0.00)(0.00,1.00)) t=(400.00,100.00)}] [stroke={[type=SOLID] [color=#000000] [stroke width=10.00] [dash array={20.00}]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.53081e-15 25 L -29.3893 40.4509 L -23.7764 7.72542 L -47.5528 -15.4508 L -14.6946 -20.2254 L -9.18485e-15 -50 L 14.6946 -20.2254 L 47.5528 -15.4508 L 23.7764 7.72542 L 29.3893 40.4509 Z"] -
trunk/LayoutTests/platform/mac/fast/repaint/moving-shadow-on-path-expected.txt
r69387 r148049 4 4 RenderBlock {HTML} at (0,0) size 785x616 5 5 RenderBody {BODY} at (8,8) size 769x600 6 RenderSVGRoot {svg} at (8,8) size 4 58x1637 RenderSVGPath {path} at (8,8) size 88x78[stroke={[type=SOLID] [color=#000000] [stroke width=10.00]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.83697e-15 30 L -35.2671 48.541 L -28.5317 9.27051 L -57.0634 -18.541 L -17.6336 -24.2705 L -1.10218e-14 -60 L 17.6336 -24.2705 L 57.0634 -18.541 L 28.5317 9.27051 L 35.2671 48.541 Z"]8 RenderSVGPath {path} at ( 200,46) size 138x135[transform={m=((1.00,0.00)(0.00,1.00)) t=(250.00,100.00)}] [stroke={[type=SOLID] [color=#000000] [stroke width=10.00] [dash array={20.00}]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.83697e-15 30 L -35.2671 48.541 L -28.5317 9.27051 L -57.0634 -18.541 L -17.6336 -24.2705 L -1.10218e-14 -60 L 17.6336 -24.2705 L 57.0634 -18.541 L 28.5317 9.27051 L 35.2671 48.541 Z"]9 RenderSVGPath {path} at (34 9,46) size 127x132[transform={m=((1.00,0.00)(0.00,1.00)) t=(400.00,100.00)}] [stroke={[type=SOLID] [color=#000000] [stroke width=10.00] [dash array={20.00}]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.53081e-15 25 L -29.3893 40.4509 L -23.7764 7.72542 L -47.5528 -15.4508 L -14.6946 -20.2254 L -9.18485e-15 -50 L 14.6946 -20.2254 L 47.5528 -15.4508 L 23.7764 7.72542 L 29.3893 40.4509 Z"]6 RenderSVGRoot {svg} at (8,8) size 460x165 7 RenderSVGPath {path} at (8,8) size 92x82 [stroke={[type=SOLID] [color=#000000] [stroke width=10.00]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.83697e-15 30 L -35.2671 48.541 L -28.5317 9.27051 L -57.0634 -18.541 L -17.6336 -24.2705 L -1.10218e-14 -60 L 17.6336 -24.2705 L 57.0634 -18.541 L 28.5317 9.27051 L 35.2671 48.541 Z"] 8 RenderSVGPath {path} at (196,42) size 146x143 [transform={m=((1.00,0.00)(0.00,1.00)) t=(250.00,100.00)}] [stroke={[type=SOLID] [color=#000000] [stroke width=10.00] [dash array={20.00}]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.83697e-15 30 L -35.2671 48.541 L -28.5317 9.27051 L -57.0634 -18.541 L -17.6336 -24.2705 L -1.10218e-14 -60 L 17.6336 -24.2705 L 57.0634 -18.541 L 28.5317 9.27051 L 35.2671 48.541 Z"] 9 RenderSVGPath {path} at (345,42) size 135x140 [transform={m=((1.00,0.00)(0.00,1.00)) t=(400.00,100.00)}] [stroke={[type=SOLID] [color=#000000] [stroke width=10.00] [dash array={20.00}]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.53081e-15 25 L -29.3893 40.4509 L -23.7764 7.72542 L -47.5528 -15.4508 L -14.6946 -20.2254 L -9.18485e-15 -50 L 14.6946 -20.2254 L 47.5528 -15.4508 L 23.7764 7.72542 L 29.3893 40.4509 Z"] -
trunk/LayoutTests/platform/mac/svg/css/composite-shadow-example-expected.txt
r133834 r148049 4 4 RenderBlock {HTML} at (0,0) size 785x616 5 5 RenderBody {BODY} at (8,8) size 769x600 6 RenderSVGRoot {svg} at ( 40,36) size 456x1707 RenderSVGContainer {g} at ( 40,36) size 156x1508 RenderSVGPath {path} at ( 40,36) size 146x140[transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,100.00)}] [stroke={[type=SOLID] [color=#000000] [stroke width=10.00]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.83697e-15 30 L -35.2671 48.541 L -28.5317 9.27051 L -57.0634 -18.541 L -17.6336 -24.2705 L -1.10218e-14 -60 L 17.6336 -24.2705 L 57.0634 -18.541 L 28.5317 9.27051 L 35.2671 48.541 Z"]9 RenderSVGContainer {g} at ( 200,46) size 138x13510 RenderSVGPath {path} at ( 200,46) size 128x125[transform={m=((1.00,0.00)(0.00,1.00)) t=(250.00,100.00)}] [stroke={[type=SOLID] [color=#000000] [stroke width=10.00] [dash array={20.00}]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.83697e-15 30 L -35.2671 48.541 L -28.5317 9.27051 L -57.0634 -18.541 L -17.6336 -24.2705 L -1.10218e-14 -60 L 17.6336 -24.2705 L 57.0634 -18.541 L 28.5317 9.27051 L 35.2671 48.541 Z"]11 RenderSVGContainer {g} at (34 9,46) size 127x13212 RenderSVGPath {path} at (34 9,46) size 117x122[transform={m=((1.00,0.00)(0.00,1.00)) t=(400.00,100.00)}] [stroke={[type=SOLID] [color=#000000] [stroke width=10.00] [dash array={20.00}]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.53081e-15 25 L -29.3893 40.4509 L -23.7764 7.72542 L -47.5528 -15.4508 L -14.6946 -20.2254 L -9.18485e-15 -50 L 14.6946 -20.2254 L 47.5528 -15.4508 L 23.7764 7.72542 L 29.3893 40.4509 Z"]6 RenderSVGRoot {svg} at (32,28) size 472x186 7 RenderSVGContainer {g} at (36,32) size 164x158 8 RenderSVGPath {path} at (38,34) size 150x144 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,100.00)}] [stroke={[type=SOLID] [color=#000000] [stroke width=10.00]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.83697e-15 30 L -35.2671 48.541 L -28.5317 9.27051 L -57.0634 -18.541 L -17.6336 -24.2705 L -1.10218e-14 -60 L 17.6336 -24.2705 L 57.0634 -18.541 L 28.5317 9.27051 L 35.2671 48.541 Z"] 9 RenderSVGContainer {g} at (196,42) size 146x143 10 RenderSVGPath {path} at (198,44) size 132x129 [transform={m=((1.00,0.00)(0.00,1.00)) t=(250.00,100.00)}] [stroke={[type=SOLID] [color=#000000] [stroke width=10.00] [dash array={20.00}]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.83697e-15 30 L -35.2671 48.541 L -28.5317 9.27051 L -57.0634 -18.541 L -17.6336 -24.2705 L -1.10218e-14 -60 L 17.6336 -24.2705 L 57.0634 -18.541 L 28.5317 9.27051 L 35.2671 48.541 Z"] 11 RenderSVGContainer {g} at (345,42) size 135x140 12 RenderSVGPath {path} at (347,44) size 121x126 [transform={m=((1.00,0.00)(0.00,1.00)) t=(400.00,100.00)}] [stroke={[type=SOLID] [color=#000000] [stroke width=10.00] [dash array={20.00}]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.53081e-15 25 L -29.3893 40.4509 L -23.7764 7.72542 L -47.5528 -15.4508 L -14.6946 -20.2254 L -9.18485e-15 -50 L 14.6946 -20.2254 L 47.5528 -15.4508 L 23.7764 7.72542 L 29.3893 40.4509 Z"] -
trunk/LayoutTests/platform/mac/svg/css/composite-shadow-text-expected.txt
r103407 r148049 10 10 RenderSVGRect {rect} at (0,0) size 10x10 [fill={[type=SOLID] [color=#0000FF]}] [x=0.00] [y=0.00] [width=10.00] [height=10.00] 11 11 RenderSVGRect {rect} at (0,10) size 10x10 [fill={[type=SOLID] [color=#FF0000]}] [x=0.00] [y=10.00] [width=10.00] [height=10.00] 12 RenderSVGContainer {g} at (9,9) size 24 5x42712 RenderSVGContainer {g} at (9,9) size 249x431 13 13 RenderSVGText {text} at (10,10) size 183x115 contains 1 chunk(s) 14 14 RenderSVGInlineText {#text} at (0,0) size 183x115 -
trunk/LayoutTests/platform/mac/svg/css/composite-shadow-with-opacity-expected.txt
r133834 r148049 5 5 RenderBody {BODY} at (8,8) size 769x600 6 6 layer at (8,8) size 769x600 7 RenderSVGRoot {svg} at ( 40,36) size 456x170[opacity=0.50]8 RenderSVGContainer {g} at ( 40,36) size 156x1509 RenderSVGPath {path} at ( 40,36) size 146x140[transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,100.00)}] [stroke={[type=SOLID] [color=#000000] [stroke width=10.00]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.83697e-15 30 L -35.2671 48.541 L -28.5317 9.27051 L -57.0634 -18.541 L -17.6336 -24.2705 L -1.10218e-14 -60 L 17.6336 -24.2705 L 57.0634 -18.541 L 28.5317 9.27051 L 35.2671 48.541 Z"]10 RenderSVGContainer {g} at ( 200,46) size 138x13511 RenderSVGPath {path} at ( 200,46) size 128x125[transform={m=((1.00,0.00)(0.00,1.00)) t=(250.00,100.00)}] [stroke={[type=SOLID] [color=#000000] [stroke width=10.00] [dash array={20.00}]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.83697e-15 30 L -35.2671 48.541 L -28.5317 9.27051 L -57.0634 -18.541 L -17.6336 -24.2705 L -1.10218e-14 -60 L 17.6336 -24.2705 L 57.0634 -18.541 L 28.5317 9.27051 L 35.2671 48.541 Z"]12 RenderSVGContainer {g} at (34 9,46) size 127x13213 RenderSVGPath {path} at (34 9,46) size 117x122[transform={m=((1.00,0.00)(0.00,1.00)) t=(400.00,100.00)}] [stroke={[type=SOLID] [color=#000000] [stroke width=10.00] [dash array={20.00}]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.53081e-15 25 L -29.3893 40.4509 L -23.7764 7.72542 L -47.5528 -15.4508 L -14.6946 -20.2254 L -9.18485e-15 -50 L 14.6946 -20.2254 L 47.5528 -15.4508 L 23.7764 7.72542 L 29.3893 40.4509 Z"]7 RenderSVGRoot {svg} at (32,28) size 472x186 [opacity=0.50] 8 RenderSVGContainer {g} at (36,32) size 164x158 9 RenderSVGPath {path} at (38,34) size 150x144 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,100.00)}] [stroke={[type=SOLID] [color=#000000] [stroke width=10.00]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.83697e-15 30 L -35.2671 48.541 L -28.5317 9.27051 L -57.0634 -18.541 L -17.6336 -24.2705 L -1.10218e-14 -60 L 17.6336 -24.2705 L 57.0634 -18.541 L 28.5317 9.27051 L 35.2671 48.541 Z"] 10 RenderSVGContainer {g} at (196,42) size 146x143 11 RenderSVGPath {path} at (198,44) size 132x129 [transform={m=((1.00,0.00)(0.00,1.00)) t=(250.00,100.00)}] [stroke={[type=SOLID] [color=#000000] [stroke width=10.00] [dash array={20.00}]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.83697e-15 30 L -35.2671 48.541 L -28.5317 9.27051 L -57.0634 -18.541 L -17.6336 -24.2705 L -1.10218e-14 -60 L 17.6336 -24.2705 L 57.0634 -18.541 L 28.5317 9.27051 L 35.2671 48.541 Z"] 12 RenderSVGContainer {g} at (345,42) size 135x140 13 RenderSVGPath {path} at (347,44) size 121x126 [transform={m=((1.00,0.00)(0.00,1.00)) t=(400.00,100.00)}] [stroke={[type=SOLID] [color=#000000] [stroke width=10.00] [dash array={20.00}]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.53081e-15 25 L -29.3893 40.4509 L -23.7764 7.72542 L -47.5528 -15.4508 L -14.6946 -20.2254 L -9.18485e-15 -50 L 14.6946 -20.2254 L 47.5528 -15.4508 L 23.7764 7.72542 L 29.3893 40.4509 Z"] -
trunk/LayoutTests/platform/mac/svg/css/group-with-shadow-expected.txt
r133834 r148049 2 2 RenderView at (0,0) size 800x600 3 3 layer at (0,0) size 800x600 4 RenderSVGRoot {svg} at ( 30,31) size 289x2865 RenderSVGContainer {g} at ( 30,31) size 355x353[transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]6 RenderSVGPath {line} at ( 33,31) size 284x38[stroke={[type=SOLID] [color=#800080]}] [fill={[type=SOLID] [color=#000000]}] [x1=10.00] [y1=10.00] [x2=85.00] [y2=10.00]7 RenderSVGRect {rect} at ( 31,65) size 288x204[stroke={[type=SOLID] [color=#800080]}] [fill={[type=SOLID] [color=#800080]}] [x=10.00] [y=20.00] [width=75.00] [height=50.00]4 RenderSVGRoot {svg} at (25,25) size 300x292 5 RenderSVGContainer {g} at (11,11) size 394x386 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}] 6 RenderSVGPath {line} at (26,25) size 298x50 [stroke={[type=SOLID] [color=#800080]}] [fill={[type=SOLID] [color=#000000]}] [x1=10.00] [y1=10.00] [x2=85.00] [y2=10.00] 7 RenderSVGRect {rect} at (25,58) size 300x217 [stroke={[type=SOLID] [color=#800080]}] [fill={[type=SOLID] [color=#800080]}] [x=10.00] [y=20.00] [width=75.00] [height=50.00] 8 8 RenderSVGText {text} at (10,75) size 78x19 contains 1 chunk(s) 9 9 RenderSVGInlineText {#text} at (0,0) size 78x19 -
trunk/LayoutTests/platform/mac/svg/css/path-with-shadow-expected.txt
r69386 r148049 2 2 RenderView at (0,0) size 800x600 3 3 layer at (0,0) size 800x600 4 RenderSVGRoot {svg} at ( 200,200) size 110x2105 RenderSVGPath {path} at ( 200,200) size 120x220[fill={[type=SOLID] [color=#0000FF]}] [data="M 200 200 L 300 200 L 300 400 L 200 400 Z"]4 RenderSVGRoot {svg} at (198,198) size 114x214 5 RenderSVGPath {path} at (196,196) size 128x228 [fill={[type=SOLID] [color=#0000FF]}] [data="M 200 200 L 300 200 L 300 400 L 200 400 Z"] -
trunk/LayoutTests/platform/mac/svg/css/shadow-and-opacity-expected.txt
r103407 r148049 2 2 RenderView at (0,0) size 800x600 3 3 layer at (0,0) size 800x600 4 RenderSVGRoot {svg} at (8 7,87) size 213x2135 RenderSVGRect {rect} at (7 4,74) size 226x226[opacity=0.50] [fill={[type=SOLID] [color=#008000]}] [x=100.00] [y=100.00] [width=200.00] [height=200.00]4 RenderSVGRoot {svg} at (85,85) size 215x215 5 RenderSVGRect {rect} at (70,70) size 230x230 [opacity=0.50] [fill={[type=SOLID] [color=#008000]}] [x=100.00] [y=100.00] [width=200.00] [height=200.00] -
trunk/LayoutTests/platform/mac/svg/css/shadow-changes-expected.txt
r140779 r148049 2 2 RenderView at (0,0) size 800x600 3 3 layer at (0,0) size 800x600 4 RenderSVGRoot {svg} at (13 5,5) size 326x2855 RenderSVGContainer {g} at ( 105,0) size 356x2906 RenderSVGRect {rect} at (13 5,5) size 215x215[fill={[type=SOLID] [color=#FF0000]}] [x=150.00] [y=20.00] [width=200.00] [height=200.00]7 RenderSVGEllipse {circle} at (20 5,75) size 215x215[fill={[type=SOLID] [color=#0000FF]}] [cx=320.00] [cy=190.00] [r=100.00]4 RenderSVGRoot {svg} at (132,2) size 329x288 5 RenderSVGContainer {g} at (96,0) size 365x290 6 RenderSVGRect {rect} at (132,2) size 218x218 [fill={[type=SOLID] [color=#FF0000]}] [x=150.00] [y=20.00] [width=200.00] [height=200.00] 7 RenderSVGEllipse {circle} at (202,72) size 218x218 [fill={[type=SOLID] [color=#0000FF]}] [cx=320.00] [cy=190.00] [r=100.00] 8 8 RenderSVGText {text} at (270,36) size 191x108 contains 1 chunk(s) 9 9 RenderSVGInlineText {#text} at (0,0) size 191x107 -
trunk/LayoutTests/platform/mac/svg/css/stars-with-shadow-expected.txt
r69386 r148049 4 4 RenderBlock {HTML} at (0,0) size 785x616 5 5 RenderBody {BODY} at (8,8) size 769x600 6 RenderSVGRoot {svg} at ( 40,36) size 437x1407 RenderSVGPath {path} at ( 40,36) size 156x150[transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,100.00)}] [stroke={[type=SOLID] [color=#800080] [stroke width=10.00]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.83697e-15 30 L -35.2671 48.541 L -28.5317 9.27051 L -57.0634 -18.541 L -17.6336 -24.2705 L -1.10218e-14 -60 L 17.6336 -24.2705 L 57.0634 -18.541 L 28.5317 9.27051 L 35.2671 48.541 Z"]8 RenderSVGPath {path} at (1 90,36) size 156x150[transform={m=((1.00,0.00)(0.00,1.00)) t=(250.00,100.00)}] [stroke={[type=SOLID] [color=#800080] [stroke width=10.00]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.83697e-15 30 L -35.2671 48.541 L -28.5317 9.27051 L -57.0634 -18.541 L -17.6336 -24.2705 L -1.10218e-14 -60 L 17.6336 -24.2705 L 57.0634 -18.541 L 28.5317 9.27051 L 35.2671 48.541 Z"]9 RenderSVGPath {path} at (34 9,46) size 138x132[transform={m=((1.00,0.00)(0.00,1.00)) t=(400.00,100.00)}] [stroke={[type=SOLID] [color=#800080] [stroke width=10.00]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.53081e-15 25 L -29.3893 40.4509 L -23.7764 7.72542 L -47.5528 -15.4508 L -14.6946 -20.2254 L -9.18485e-15 -50 L 14.6946 -20.2254 L 47.5528 -15.4508 L 23.7764 7.72542 L 29.3893 40.4509 Z"]6 RenderSVGRoot {svg} at (38,34) size 441x144 7 RenderSVGPath {path} at (36,32) size 164x158 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,100.00)}] [stroke={[type=SOLID] [color=#800080] [stroke width=10.00]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.83697e-15 30 L -35.2671 48.541 L -28.5317 9.27051 L -57.0634 -18.541 L -17.6336 -24.2705 L -1.10218e-14 -60 L 17.6336 -24.2705 L 57.0634 -18.541 L 28.5317 9.27051 L 35.2671 48.541 Z"] 8 RenderSVGPath {path} at (186,32) size 164x158 [transform={m=((1.00,0.00)(0.00,1.00)) t=(250.00,100.00)}] [stroke={[type=SOLID] [color=#800080] [stroke width=10.00]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.83697e-15 30 L -35.2671 48.541 L -28.5317 9.27051 L -57.0634 -18.541 L -17.6336 -24.2705 L -1.10218e-14 -60 L 17.6336 -24.2705 L 57.0634 -18.541 L 28.5317 9.27051 L 35.2671 48.541 Z"] 9 RenderSVGPath {path} at (345,42) size 146x140 [transform={m=((1.00,0.00)(0.00,1.00)) t=(400.00,100.00)}] [stroke={[type=SOLID] [color=#800080] [stroke width=10.00]}] [fill={[type=SOLID] [color=#999999]}] [data="M 1.53081e-15 25 L -29.3893 40.4509 L -23.7764 7.72542 L -47.5528 -15.4508 L -14.6946 -20.2254 L -9.18485e-15 -50 L 14.6946 -20.2254 L 47.5528 -15.4508 L 23.7764 7.72542 L 29.3893 40.4509 Z"] -
trunk/LayoutTests/platform/mac/svg/css/text-gradient-shadow-expected.txt
r76029 r148049 2 2 RenderView at (0,0) size 800x600 3 3 layer at (0,0) size 800x600 4 RenderSVGRoot {svg} at ( 200,20) size 439x2704 RenderSVGRoot {svg} at (192,12) size 455x286 5 5 RenderSVGHiddenContainer {defs} at (0,0) size 0x0 6 6 RenderSVGResourceLinearGradient {linearGradient} [id="gradient"] [gradientUnits=objectBoundingBox] [start=(0,0)] [end=(1,0)] -
trunk/LayoutTests/platform/mac/svg/custom/transform-with-shadow-and-gradient-expected.txt
r112667 r148049 2 2 RenderView at (0,0) size 800x600 3 3 layer at (0,0) size 800x600 4 RenderSVGRoot {svg} at (1 8,16) size 542x5444 RenderSVGRoot {svg} at (14,0) size 578x592 5 5 RenderSVGHiddenContainer {defs} at (0,0) size 0x0 6 6 RenderSVGResourceLinearGradient {linearGradient} [id="gradient"] [gradientUnits=objectBoundingBox] [start=(0,0)] [end=(1,0)] 7 7 RenderSVGGradientStop {stop} [offset=0.00] [color=#0000FF] 8 8 RenderSVGGradientStop {stop} [offset=1.00] [color=#008000] 9 RenderSVGEllipse {circle} at ( 20,20) size 176x176[transform={m=((4.00,0.00)(0.00,4.00)) t=(0.00,0.00)}] [fill={[type=LINEAR-GRADIENT] [id="gradient"]}] [cx=25.00] [cy=25.00] [r=20.00]10 RenderSVGRect {rect} at ( 320,16) size 288x288 [transform={m=((32.00,0.00)(0.00,32.00)) t=(0.00,0.00)}] [fill={[type=LINEAR-GRADIENT] [id="gradient"]}] [x=10.00] [y=0.50] [width=5.00] [height=5.00]11 RenderSVGEllipse {circle} at (1 8,318) size 180x180[transform={m=((4.00,0.00)(0.00,4.00)) t=(0.00,0.00)}] [stroke={[type=LINEAR-GRADIENT] [id="gradient"]}] [fill={[type=SOLID] [color=#00000000]}] [cx=25.00] [cy=100.00] [r=20.00]12 RenderSVGRect {rect} at ( 304,304) size 320x296[transform={m=((32.00,0.00)(0.00,32.00)) t=(0.00,0.00)}] [stroke={[type=LINEAR-GRADIENT] [id="gradient"]}] [fill={[type=SOLID] [color=#00000000]}] [x=10.00] [y=10.00] [width=5.00] [height=5.00]9 RenderSVGEllipse {circle} at (12,12) size 192x192 [transform={m=((4.00,0.00)(0.00,4.00)) t=(0.00,0.00)}] [fill={[type=LINEAR-GRADIENT] [id="gradient"]}] [cx=25.00] [cy=25.00] [r=20.00] 10 RenderSVGRect {rect} at (256,0) size 416x368 [transform={m=((32.00,0.00)(0.00,32.00)) t=(0.00,0.00)}] [fill={[type=LINEAR-GRADIENT] [id="gradient"]}] [x=10.00] [y=0.50] [width=5.00] [height=5.00] 11 RenderSVGEllipse {circle} at (10,310) size 196x196 [transform={m=((4.00,0.00)(0.00,4.00)) t=(0.00,0.00)}] [stroke={[type=LINEAR-GRADIENT] [id="gradient"]}] [fill={[type=SOLID] [color=#00000000]}] [cx=25.00] [cy=100.00] [r=20.00] 12 RenderSVGRect {rect} at (240,240) size 448x360 [transform={m=((32.00,0.00)(0.00,32.00)) t=(0.00,0.00)}] [stroke={[type=LINEAR-GRADIENT] [id="gradient"]}] [fill={[type=SOLID] [color=#00000000]}] [x=10.00] [y=10.00] [width=5.00] [height=5.00] -
trunk/LayoutTests/svg/css/arrow-with-shadow-expected.txt
r146455 r148049 2 2 RenderView at (0,0) size 800x600 3 3 layer at (0,0) size 800x600 4 RenderSVGRoot {svg} at (7 9,23) size 605x4145 RenderSVGContainer {g} at ( 79,23) size 671x480 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]6 RenderSVGContainer {a} at ( 79,23) size 638x4477 RenderSVGPath {path} at (7 9,23) size 605x414[stroke={[type=SOLID] [color=#0000FF] [stroke width=20.00]}] [data="M 185 40 L 85 40 L 85 28 L 40 64 L 85 100 L 85 88 L 185 88 Z"]4 RenderSVGRoot {svg} at (73,17) size 617x426 5 RenderSVGContainer {g} at (59,3) size 711x520 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}] 6 RenderSVGContainer {a} at (66,10) size 664x473 7 RenderSVGPath {path} at (73,17) size 617x426 [stroke={[type=SOLID] [color=#0000FF] [stroke width=20.00]}] [data="M 185 40 L 85 40 L 85 28 L 40 64 L 85 100 L 85 88 L 185 88 Z"] -
trunk/LayoutTests/svg/css/circle-in-mask-with-shadow-expected.txt
r112667 r148049 2 2 RenderView at (0,0) size 800x600 3 3 layer at (0,0) size 450x500 4 RenderSVGRoot {svg} at ( 5,5) size 220x2205 RenderSVGContainer {g} at ( 5,5) size 220x2204 RenderSVGRoot {svg} at (3,3) size 224x224 5 RenderSVGContainer {g} at (3,3) size 224x224 6 6 RenderSVGHiddenContainer {defs} at (0,0) size 0x0 7 7 RenderSVGResourceLinearGradient {linearGradient} [id="maskedGradient"] [gradientUnits=objectBoundingBox] [start=(0,0)] [end=(1,1)] … … 10 10 RenderSVGRect {rect} at (0,0) size 300x300 [fill={[type=LINEAR-GRADIENT] [id="maskedGradient"]}] [x=0.00] [y=0.00] [width=300.00] [height=300.00] 11 11 RenderSVGResourceMasker {mask} [id="mask_1"] [maskUnits=objectBoundingBox] [maskContentUnits=userSpaceOnUse] 12 RenderSVGEllipse {circle} at ( 5,5) size 120x120[fill={[type=SOLID] [color=#FFFFFF]}] [cx=55.00] [cy=55.00] [r=50.00]13 RenderSVGEllipse {circle} at ( 5,115) size 120x120[fill={[type=SOLID] [color=#FFFFFF]}] [cx=55.00] [cy=165.00] [r=50.00]14 RenderSVGEllipse {circle} at (11 5,5) size 120x120[fill={[type=SOLID] [color=#FFFFFF]}] [cx=165.00] [cy=55.00] [r=50.00]15 RenderSVGEllipse {circle} at (11 5,115) size 120x120[fill={[type=SOLID] [color=#FFFFFF]}] [cx=165.00] [cy=165.00] [r=50.00]16 RenderSVGContainer {g} at ( 5,5) size 220x22017 RenderSVGContainer {use} at ( 5,5) size 220x22018 [masker="mask_1"] RenderSVGResourceMasker {mask} at ( 5,5) size 220x22012 RenderSVGEllipse {circle} at (1,1) size 128x128 [fill={[type=SOLID] [color=#FFFFFF]}] [cx=55.00] [cy=55.00] [r=50.00] 13 RenderSVGEllipse {circle} at (1,111) size 128x128 [fill={[type=SOLID] [color=#FFFFFF]}] [cx=55.00] [cy=165.00] [r=50.00] 14 RenderSVGEllipse {circle} at (111,1) size 128x128 [fill={[type=SOLID] [color=#FFFFFF]}] [cx=165.00] [cy=55.00] [r=50.00] 15 RenderSVGEllipse {circle} at (111,111) size 128x128 [fill={[type=SOLID] [color=#FFFFFF]}] [cx=165.00] [cy=165.00] [r=50.00] 16 RenderSVGContainer {g} at (3,3) size 224x224 17 RenderSVGContainer {use} at (3,3) size 224x224 18 [masker="mask_1"] RenderSVGResourceMasker {mask} at (3,3) size 224x224 19 19 RenderSVGRect {rect} at (0,0) size 300x300 [fill={[type=LINEAR-GRADIENT] [id="maskedGradient"]}] [x=0.00] [y=0.00] [width=300.00] [height=300.00] -
trunk/LayoutTests/svg/css/clippath-with-shadow-expected.txt
r146455 r148049 2 2 RenderView at (0,0) size 800x600 3 3 layer at (0,0) size 800x600 4 RenderSVGRoot {svg} at (0,0) size 21 0x2004 RenderSVGRoot {svg} at (0,0) size 212x200 5 5 RenderSVGRect {rect} at (0,0) size 200x200 [fill={[type=SOLID] [color=#FF0000]}] [x=0.00] [y=0.00] [width=200.00] [height=200.00] 6 6 RenderSVGRect {rect} at (0,0) size 200x200 [transform={m=((1.00,0.00)(0.00,1.00)) t=(-200.00,0.00)}] [x=200.00] [y=0.00] [width=200.00] [height=200.00] 7 7 RenderSVGResourceClipper {clipPath} [id="clip"] [clipPathUnits=userSpaceOnUse] 8 RenderSVGContainer {use} at (0,0) size 22 0x2209 RenderSVGRect {rect} at (0,0) size 21 0x210[transform={m=((1.00,0.00)(0.00,1.00)) t=(-200.00,0.00)}] [x=200.00] [y=0.00] [width=200.00] [height=200.00]10 RenderSVGRect {rect} at (0,0) size 21 0x200 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=400.00] [height=200.00]11 [clipPath="clip"] RenderSVGResourceClipper {clipPath} at ( 0,0) size 210x2108 RenderSVGContainer {use} at (0,0) size 224x224 9 RenderSVGRect {rect} at (0,0) size 212x212 [transform={m=((1.00,0.00)(0.00,1.00)) t=(-200.00,0.00)}] [x=200.00] [y=0.00] [width=200.00] [height=200.00] 10 RenderSVGRect {rect} at (0,0) size 212x200 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=400.00] [height=200.00] 11 [clipPath="clip"] RenderSVGResourceClipper {clipPath} at (-2,-2) size 214x214 -
trunk/LayoutTests/svg/css/mask-with-shadow-expected.txt
r133834 r148049 2 2 RenderView at (0,0) size 800x600 3 3 layer at (0,0) size 450x500 4 RenderSVGRoot {svg} at ( 5,5) size 220x2205 RenderSVGContainer {g} at ( 5,5) size 220x2204 RenderSVGRoot {svg} at (3,3) size 224x224 5 RenderSVGContainer {g} at (3,3) size 224x224 6 6 RenderSVGHiddenContainer {defs} at (0,0) size 0x0 7 7 RenderSVGResourceLinearGradient {linearGradient} [id="maskedGradient"] [gradientUnits=objectBoundingBox] [start=(0,0)] [end=(1,1)] … … 10 10 RenderSVGRect {rect} at (0,0) size 300x300 [fill={[type=LINEAR-GRADIENT] [id="maskedGradient"]}] [x=0.00] [y=0.00] [width=300.00] [height=300.00] 11 11 RenderSVGResourceMasker {mask} [id="mask_1"] [maskUnits=objectBoundingBox] [maskContentUnits=userSpaceOnUse] 12 RenderSVGEllipse {circle} at ( 5,5) size 110x110[fill={[type=SOLID] [color=#FFFFFF]}] [cx=55.00] [cy=55.00] [r=50.00]13 RenderSVGEllipse {circle} at ( 5,115) size 110x110[fill={[type=SOLID] [color=#FFFFFF]}] [cx=55.00] [cy=165.00] [r=50.00]14 RenderSVGEllipse {circle} at (11 5,5) size 110x110[fill={[type=SOLID] [color=#FFFFFF]}] [cx=165.00] [cy=55.00] [r=50.00]15 RenderSVGEllipse {circle} at (11 5,115) size 110x110[fill={[type=SOLID] [color=#FFFFFF]}] [cx=165.00] [cy=165.00] [r=50.00]16 RenderSVGContainer {g} at ( 5,5) size 220x22017 RenderSVGContainer {use} at ( 5,5) size 220x22018 [masker="mask_1"] RenderSVGResourceMasker {mask} at ( 5,5) size 220x22012 RenderSVGEllipse {circle} at (3,3) size 114x114 [fill={[type=SOLID] [color=#FFFFFF]}] [cx=55.00] [cy=55.00] [r=50.00] 13 RenderSVGEllipse {circle} at (3,113) size 114x114 [fill={[type=SOLID] [color=#FFFFFF]}] [cx=55.00] [cy=165.00] [r=50.00] 14 RenderSVGEllipse {circle} at (113,3) size 114x114 [fill={[type=SOLID] [color=#FFFFFF]}] [cx=165.00] [cy=55.00] [r=50.00] 15 RenderSVGEllipse {circle} at (113,113) size 114x114 [fill={[type=SOLID] [color=#FFFFFF]}] [cx=165.00] [cy=165.00] [r=50.00] 16 RenderSVGContainer {g} at (3,3) size 224x224 17 RenderSVGContainer {use} at (3,3) size 224x224 18 [masker="mask_1"] RenderSVGResourceMasker {mask} at (3,3) size 224x224 19 19 RenderSVGRect {rect} at (0,0) size 300x300 [fill={[type=LINEAR-GRADIENT] [id="maskedGradient"]}] [x=0.00] [y=0.00] [width=300.00] [height=300.00] -
trunk/LayoutTests/svg/css/shadow-with-large-radius-expected.txt
r114393 r148049 2 2 RenderView at (0,0) size 800x600 3 3 layer at (0,0) size 800x600 4 RenderSVGRoot {svg} at ( 50,50) size 210x2105 RenderSVGPath {path} at ( 5,5) size 310x310[stroke={[type=SOLID] [color=#000000] [stroke width=10.00]}] [fill={[type=SOLID] [color=#999999]}] [data="M 100 100 L 200 100 L 200 200 L 100 200 Z"]4 RenderSVGRoot {svg} at (30,30) size 250x250 5 RenderSVGPath {path} at (0,0) size 355x355 [stroke={[type=SOLID] [color=#000000] [stroke width=10.00]}] [fill={[type=SOLID] [color=#999999]}] [data="M 100 100 L 200 100 L 200 200 L 100 200 Z"] -
trunk/LayoutTests/svg/css/shadow-with-negative-offset-expected.txt
r114393 r148049 2 2 RenderView at (0,0) size 800x600 3 3 layer at (0,0) size 800x600 4 RenderSVGRoot {svg} at ( 40,40) size 210x2105 RenderSVGPath {path} at (0,0) size 295x295 [stroke={[type=SOLID] [color=#000000] [stroke width=10.00]}] [fill={[type=SOLID] [color=#999999]}] [data="M 100 100 L 200 100 L 200 200 L 100 200 Z"]4 RenderSVGRoot {svg} at (20,20) size 250x250 5 RenderSVGPath {path} at (0,0) size 335x335 [stroke={[type=SOLID] [color=#000000] [stroke width=10.00]}] [fill={[type=SOLID] [color=#999999]}] [data="M 100 100 L 200 100 L 200 200 L 100 200 Z"] -
trunk/LayoutTests/svg/css/text-shadow-multiple-expected.txt
r140779 r148049 31 31 text run at (0,0) width 556: "The next two texts have subtle differences, as the stroke/fill is painted seperated in SVG." 32 32 RenderBlock (anonymous) at (0,238) size 800x154 33 RenderSVGRoot {svg} at (0,30 7) size 747x9033 RenderSVGRoot {svg} at (0,305) size 747x93 34 34 RenderSVGText {text} at (20,20) size 720x57 contains 1 chunk(s) 35 35 RenderSVGTSpan {tspan} at (0,0) size 95x56 -
trunk/LayoutTests/svg/custom/repaint-shadow-expected.txt
r107241 r148049 2 2 RenderView at (0,0) size 800x600 3 3 layer at (0,0) size 800x600 4 RenderSVGRoot {svg} at (20,20) size 40 6x2554 RenderSVGRoot {svg} at (20,20) size 408x257 5 5 RenderSVGText {text} at (20,20) size 50x50 contains 1 chunk(s) 6 6 RenderSVGInlineText {#text} at (0,0) size 50x50 -
trunk/LayoutTests/svg/filters/shadow-on-rect-with-filter-expected.txt
r114293 r148049 2 2 RenderView at (0,0) size 800x600 3 3 layer at (0,0) size 800x600 4 RenderSVGRoot {svg} at (3 7,37) size 493x4934 RenderSVGRoot {svg} at (35,35) size 495x495 5 5 RenderSVGHiddenContainer {defs} at (0,0) size 0x0 6 6 RenderSVGResourceFilter {filter} [id="filter"] [filterUnits=objectBoundingBox] [primitiveUnits=objectBoundingBox] … … 9 9 [feFlood flood-color="#FF0000" flood-opacity="1.00"] 10 10 [feFlood flood-color="#008000" flood-opacity="1.00"] 11 RenderSVGRect {rect} at (2 4,24) size 506x506[fill={[type=SOLID] [color=#008000]}] [x=200.00] [y=200.00] [width=300.00] [height=300.00]11 RenderSVGRect {rect} at (20,20) size 510x510 [fill={[type=SOLID] [color=#008000]}] [x=200.00] [y=200.00] [width=300.00] [height=300.00] 12 12 [filter="filter"] RenderSVGResourceFilter {filter} at (50,50) size 480x480 -
trunk/LayoutTests/svg/repaint/repaint-webkit-svg-shadow-container-expected.txt
r137393 r148049 1 1 (repaint rects 2 (rect 8 8 3 00 300)3 (rect 8 8 5 10 510)4 (rect 8 8 600 600)2 (rect 8 8 340 340) 3 (rect 8 8 594 594) 4 (rect 8 8 720 600) 5 5 ) 6 6 -
trunk/Source/WebCore/ChangeLog
r148048 r148049 1 2013-04-08 Simon Fraser <simon.fraser@apple.com> 2 3 Repaint rect too small on elements with shadows 4 https://bugs.webkit.org/show_bug.cgi?id=114225 5 6 Reviewed by Dain Adler. 7 8 We assumed that shadows (box-shadow, text-shadow, svg shadows) 9 only required inflating the repaint rect by the blur radius of 10 the shadow. However, this is incorrect; the shadow can extend 11 further, which resulted in clipped or incorrectly invalidated 12 shadows. 13 14 Fix by disambiguating the blur radius (which is 2x the standard 15 deviation of the Gaussian distribution used to generate the blur), 16 from the painting extent, which is how far the shadow visually 17 projects. Using a 1.4 multiplier of the blur radius is a good 18 approximation for the painting extent. 19 20 Renamed ShadowData::blur() to ShadowData::radius(), and added 21 ShadowData::paintingExtent(). Use the latter in all places 22 which relate to invalidation. 23 24 Test: fast/box-shadow/shadow-repaint.html 25 26 * css/CSSComputedStyleDeclaration.cpp: 27 (WebCore::CSSComputedStyleDeclaration::valueForShadow): 28 * editing/mac/EditorMac.mm: 29 (WebCore::Editor::fontAttributesForSelectionStart): 30 * page/animation/CSSPropertyAnimation.cpp: 31 (WebCore::blendFunc): 32 * rendering/EllipsisBox.cpp: 33 (WebCore::EllipsisBox::paint): 34 * rendering/InlineTextBox.cpp: 35 (WebCore::InlineTextBox::applyShadowToGraphicsContext): 36 (WebCore::InlineTextBox::paintDecoration): 37 * rendering/RenderBoxModelObject.cpp: 38 (WebCore::applyBoxShadowForBackground): 39 (WebCore::areaCastingShadowInHole): 40 (WebCore::RenderBoxModelObject::paintBoxShadow): 41 * rendering/style/RenderStyle.cpp: 42 (WebCore::RenderStyle::getShadowExtent): 43 (WebCore::RenderStyle::getShadowInsetExtent): 44 (WebCore::RenderStyle::getShadowHorizontalExtent): 45 (WebCore::RenderStyle::getShadowVerticalExtent): 46 * rendering/style/ShadowData.cpp: 47 (WebCore::ShadowData::ShadowData): 48 (WebCore::ShadowData::operator==): 49 (WebCore::calculateShadowExtent): 50 * rendering/style/ShadowData.h: 51 (WebCore::ShadowData::ShadowData): 52 (WebCore::ShadowData::radius): 53 (WebCore::ShadowData::paintingExtent): 54 * rendering/svg/SVGRenderingContext.cpp: 55 (WebCore::SVGRenderingContext::prepareToRenderSVGContent): 56 1 57 2013-04-08 Simon Fraser <simon.fraser@apple.com> 2 58 -
trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp
r147348 r148049 1273 1273 RefPtr<CSSPrimitiveValue> x = zoomAdjustedPixelValue(s->x(), style); 1274 1274 RefPtr<CSSPrimitiveValue> y = zoomAdjustedPixelValue(s->y(), style); 1275 RefPtr<CSSPrimitiveValue> blur = zoomAdjustedPixelValue(s-> blur(), style);1275 RefPtr<CSSPrimitiveValue> blur = zoomAdjustedPixelValue(s->radius(), style); 1276 1276 RefPtr<CSSPrimitiveValue> spread = propertyID == CSSPropertyTextShadow ? PassRefPtr<CSSPrimitiveValue>() : zoomAdjustedPixelValue(s->spread(), style); 1277 1277 RefPtr<CSSPrimitiveValue> style = propertyID == CSSPropertyTextShadow || s->style() == Normal ? PassRefPtr<CSSPrimitiveValue>() : cssValuePool().createIdentifierValue(CSSValueInset); -
trunk/Source/WebCore/editing/mac/EditorMac.mm
r146835 r148049 208 208 RetainPtr<NSShadow> s(AdoptNS, [[NSShadow alloc] init]); 209 209 [s.get() setShadowOffset:NSMakeSize(shadow->x(), shadow->y())]; 210 [s.get() setShadowBlurRadius:shadow-> blur()];210 [s.get() setShadowBlurRadius:shadow->radius()]; 211 211 [s.get() setShadowColor:nsColor(shadow->color())]; 212 212 [result setObject:s.get() forKey:NSShadowAttributeName]; -
trunk/Source/WebCore/page/animation/CSSPropertyAnimation.cpp
r144568 r148049 115 115 116 116 return adoptPtr(new ShadowData(blend(from->location(), to->location(), progress), 117 blend(from-> blur(), to->blur(), progress),117 blend(from->radius(), to->radius(), progress), 118 118 blend(from->spread(), to->spread(), progress), 119 119 blendFunc(anim, from->style(), to->style(), progress), -
trunk/Source/WebCore/rendering/EllipsisBox.cpp
r144542 r148049 43 43 if (style->textShadow()) { 44 44 context->setShadow(LayoutSize(style->textShadow()->x(), style->textShadow()->y()), 45 style->textShadow()-> blur(), style->textShadow()->color(), style->colorSpace());45 style->textShadow()->radius(), style->textShadow()->color(), style->colorSpace()); 46 46 setShadow = true; 47 47 } -
trunk/Source/WebCore/rendering/InlineTextBox.cpp
r147832 r148049 390 390 int shadowY = horizontal ? shadow->y() : -shadow->x(); 391 391 FloatSize shadowOffset(shadowX, shadowY); 392 int shadow Blur = shadow->blur();392 int shadowRadius = shadow->radius(); 393 393 const Color& shadowColor = shadow->color(); 394 394 395 395 if (shadow->next() || stroked || !opaque) { 396 396 FloatRect shadowRect(textRect); 397 shadowRect.inflate(shadow Blur);397 shadowRect.inflate(shadow->paintingExtent()); 398 398 shadowRect.move(shadowOffset); 399 399 context->save(); 400 400 context->clip(shadowRect); 401 401 402 extraOffset = FloatSize(0, 2 * textRect.height() + max(0.0f, shadowOffset.height()) + shadow Blur);402 extraOffset = FloatSize(0, 2 * textRect.height() + max(0.0f, shadowOffset.height()) + shadowRadius); 403 403 shadowOffset -= extraOffset; 404 404 } 405 405 406 context->setShadow(shadowOffset, shadow Blur, shadowColor, context->fillColorSpace());406 context->setShadow(shadowOffset, shadowRadius, shadowColor, context->fillColorSpace()); 407 407 return extraOffset; 408 408 } … … 1151 1151 FloatRect clipRect(localOrigin, FloatSize(width, baseline + 2)); 1152 1152 for (const ShadowData* s = shadow; s; s = s->next()) { 1153 int shadowExtent = s->paintingExtent(); 1153 1154 FloatRect shadowRect(localOrigin, FloatSize(width, baseline + 2)); 1154 shadowRect.inflate(s ->blur());1155 shadowRect.inflate(shadowExtent); 1155 1156 int shadowX = isHorizontal() ? s->x() : s->y(); 1156 1157 int shadowY = isHorizontal() ? s->y() : -s->x(); 1157 1158 shadowRect.move(shadowX, shadowY); 1158 1159 clipRect.unite(shadowRect); 1159 extraOffset = max(extraOffset, max(0, shadowY) + s ->blur());1160 extraOffset = max(extraOffset, max(0, shadowY) + shadowExtent); 1160 1161 } 1161 1162 context->save(); … … 1178 1179 int shadowX = isHorizontal() ? shadow->x() : shadow->y(); 1179 1180 int shadowY = isHorizontal() ? shadow->y() : -shadow->x(); 1180 context->setShadow(FloatSize(shadowX, shadowY - extraOffset), shadow-> blur(), shadow->color(), colorSpace);1181 context->setShadow(FloatSize(shadowX, shadowY - extraOffset), shadow->radius(), shadow->color(), colorSpace); 1181 1182 setShadow = true; 1182 1183 shadow = shadow->next(); -
trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp
r147638 r148049 718 718 FloatSize shadowOffset(boxShadow->x(), boxShadow->y()); 719 719 if (!boxShadow->isWebkitBoxShadow()) 720 context->setShadow(shadowOffset, boxShadow-> blur(), boxShadow->color(), style->colorSpace());720 context->setShadow(shadowOffset, boxShadow->radius(), boxShadow->color(), style->colorSpace()); 721 721 else 722 context->setLegacyShadow(shadowOffset, boxShadow-> blur(), boxShadow->color(), style->colorSpace());722 context->setLegacyShadow(shadowOffset, boxShadow->radius(), boxShadow->color(), style->colorSpace()); 723 723 } 724 724 … … 2527 2527 } 2528 2528 2529 static inline IntRect areaCastingShadowInHole(const IntRect& holeRect, int shadow Blur, int shadowSpread, const IntSize& shadowOffset)2529 static inline IntRect areaCastingShadowInHole(const IntRect& holeRect, int shadowExtent, int shadowSpread, const IntSize& shadowOffset) 2530 2530 { 2531 2531 IntRect bounds(holeRect); 2532 2532 2533 bounds.inflate(shadow Blur);2533 bounds.inflate(shadowExtent); 2534 2534 2535 2535 if (shadowSpread < 0) … … 2560 2560 2561 2561 IntSize shadowOffset(shadow->x(), shadow->y()); 2562 int shadowBlur = shadow->blur(); 2562 int shadowRadius = shadow->radius(); 2563 int shadowPaintingExtent = shadow->paintingExtent(); 2563 2564 int shadowSpread = shadow->spread(); 2564 2565 2565 if (shadowOffset.isZero() && !shadow Blur&& !shadowSpread)2566 if (shadowOffset.isZero() && !shadowRadius && !shadowSpread) 2566 2567 continue; 2567 2568 … … 2575 2576 2576 2577 IntRect shadowRect(border.rect()); 2577 shadowRect.inflate(shadow Blur+ shadowSpread);2578 shadowRect.inflate(shadowPaintingExtent + shadowSpread); 2578 2579 shadowRect.move(shadowOffset); 2579 2580 … … 2583 2584 // Move the fill just outside the clip, adding 1 pixel separation so that the fill does not 2584 2585 // bleed in (due to antialiasing) if the context is transformed. 2585 IntSize extraOffset(paintRect.pixelSnappedWidth() + max(0, shadowOffset.width()) + shadow Blur+ 2 * shadowSpread + 1, 0);2586 IntSize extraOffset(paintRect.pixelSnappedWidth() + max(0, shadowOffset.width()) + shadowPaintingExtent + 2 * shadowSpread + 1, 0); 2586 2587 shadowOffset -= extraOffset; 2587 2588 fillRect.move(extraOffset); 2588 2589 2589 2590 if (shadow->isWebkitBoxShadow()) 2590 context->setLegacyShadow(shadowOffset, shadow Blur, shadowColor, s->colorSpace());2591 context->setLegacyShadow(shadowOffset, shadowRadius, shadowColor, s->colorSpace()); 2591 2592 else 2592 context->setShadow(shadowOffset, shadow Blur, shadowColor, s->colorSpace());2593 context->setShadow(shadowOffset, shadowRadius, shadowColor, s->colorSpace()); 2593 2594 2594 2595 if (hasBorderRadius) { … … 2606 2607 2607 2608 RoundedRect influenceRect(shadowRect, border.radii()); 2608 influenceRect.expandRadii(2 * shadow Blur+ shadowSpread);2609 influenceRect.expandRadii(2 * shadowPaintingExtent + shadowSpread); 2609 2610 if (allCornersClippedOut(influenceRect, info.rect)) 2610 2611 context->fillRect(fillRect.rect(), Color::black, s->colorSpace()); … … 2649 2650 if (!includeLogicalLeftEdge) { 2650 2651 if (isHorizontal) { 2651 holeRect.move(-max(shadowOffset.width(), 0) - shadow Blur, 0);2652 holeRect.setWidth(holeRect.width() + max(shadowOffset.width(), 0) + shadow Blur);2652 holeRect.move(-max(shadowOffset.width(), 0) - shadowPaintingExtent, 0); 2653 holeRect.setWidth(holeRect.width() + max(shadowOffset.width(), 0) + shadowPaintingExtent); 2653 2654 } else { 2654 holeRect.move(0, -max(shadowOffset.height(), 0) - shadow Blur);2655 holeRect.setHeight(holeRect.height() + max(shadowOffset.height(), 0) + shadow Blur);2655 holeRect.move(0, -max(shadowOffset.height(), 0) - shadowPaintingExtent); 2656 holeRect.setHeight(holeRect.height() + max(shadowOffset.height(), 0) + shadowPaintingExtent); 2656 2657 } 2657 2658 } 2658 2659 if (!includeLogicalRightEdge) { 2659 2660 if (isHorizontal) 2660 holeRect.setWidth(holeRect.width() - min(shadowOffset.width(), 0) + shadow Blur);2661 holeRect.setWidth(holeRect.width() - min(shadowOffset.width(), 0) + shadowPaintingExtent); 2661 2662 else 2662 holeRect.setHeight(holeRect.height() - min(shadowOffset.height(), 0) + shadow Blur);2663 holeRect.setHeight(holeRect.height() - min(shadowOffset.height(), 0) + shadowPaintingExtent); 2663 2664 } 2664 2665 2665 2666 Color fillColor(shadowColor.red(), shadowColor.green(), shadowColor.blue(), 255); 2666 2667 2667 IntRect outerRect = areaCastingShadowInHole(border.rect(), shadow Blur, shadowSpread, shadowOffset);2668 IntRect outerRect = areaCastingShadowInHole(border.rect(), shadowPaintingExtent, shadowSpread, shadowOffset); 2668 2669 RoundedRect roundedHole(holeRect, border.radii()); 2669 2670 … … 2677 2678 context->clip(border.rect()); 2678 2679 2679 IntSize extraOffset(2 * paintRect.pixelSnappedWidth() + max(0, shadowOffset.width()) + shadow Blur- 2 * shadowSpread + 1, 0);2680 IntSize extraOffset(2 * paintRect.pixelSnappedWidth() + max(0, shadowOffset.width()) + shadowPaintingExtent - 2 * shadowSpread + 1, 0); 2680 2681 context->translate(extraOffset.width(), extraOffset.height()); 2681 2682 shadowOffset -= extraOffset; 2682 2683 2683 2684 if (shadow->isWebkitBoxShadow()) 2684 context->setLegacyShadow(shadowOffset, shadow Blur, shadowColor, s->colorSpace());2685 context->setLegacyShadow(shadowOffset, shadowRadius, shadowColor, s->colorSpace()); 2685 2686 else 2686 context->setShadow(shadowOffset, shadow Blur, shadowColor, s->colorSpace());2687 context->setShadow(shadowOffset, shadowRadius, shadowColor, s->colorSpace()); 2687 2688 2688 2689 context->fillRectWithRoundedHole(outerRect, roundedHole, fillColor, s->colorSpace()); -
trunk/Source/WebCore/rendering/style/RenderStyle.cpp
r146408 r148049 1346 1346 if (shadow->style() == Inset) 1347 1347 continue; 1348 int blurAndSpread = shadow->blur() + shadow->spread(); 1349 1350 top = min<LayoutUnit>(top, shadow->y() - blurAndSpread);1351 right = max<LayoutUnit>(right, shadow->x() + blurAndSpread);1352 bottom = max<LayoutUnit>(bottom, shadow->y() + blurAndSpread);1353 left = min<LayoutUnit>(left, shadow->x() - blurAndSpread);1348 1349 int extentAndSpread = shadow->paintingExtent() + shadow->spread(); 1350 top = min<LayoutUnit>(top, shadow->y() - extentAndSpread); 1351 right = max<LayoutUnit>(right, shadow->x() + extentAndSpread); 1352 bottom = max<LayoutUnit>(bottom, shadow->y() + extentAndSpread); 1353 left = min<LayoutUnit>(left, shadow->x() - extentAndSpread); 1354 1354 } 1355 1355 } … … 1365 1365 if (shadow->style() == Normal) 1366 1366 continue; 1367 int blurAndSpread = shadow->blur() + shadow->spread(); 1368 top = max<LayoutUnit>(top, shadow->y() + blurAndSpread); 1369 right = min<LayoutUnit>(right, shadow->x() - blurAndSpread); 1370 bottom = min<LayoutUnit>(bottom, shadow->y() - blurAndSpread); 1371 left = max<LayoutUnit>(left, shadow->x() + blurAndSpread); 1367 1368 int extentAndSpread = shadow->paintingExtent() + shadow->spread(); 1369 top = max<LayoutUnit>(top, shadow->y() + extentAndSpread); 1370 right = min<LayoutUnit>(right, shadow->x() - extentAndSpread); 1371 bottom = min<LayoutUnit>(bottom, shadow->y() - extentAndSpread); 1372 left = max<LayoutUnit>(left, shadow->x() + extentAndSpread); 1372 1373 } 1373 1374 … … 1383 1384 if (shadow->style() == Inset) 1384 1385 continue; 1385 int blurAndSpread = shadow->blur() + shadow->spread(); 1386 1387 left = min<LayoutUnit>(left, shadow->x() - blurAndSpread);1388 right = max<LayoutUnit>(right, shadow->x() + blurAndSpread);1386 1387 int extentAndSpread = shadow->paintingExtent() + shadow->spread(); 1388 left = min<LayoutUnit>(left, shadow->x() - extentAndSpread); 1389 right = max<LayoutUnit>(right, shadow->x() + extentAndSpread); 1389 1390 } 1390 1391 } … … 1398 1399 if (shadow->style() == Inset) 1399 1400 continue; 1400 int blurAndSpread = shadow->blur() + shadow->spread(); 1401 1402 top = min<LayoutUnit>(top, shadow->y() - blurAndSpread);1403 bottom = max<LayoutUnit>(bottom, shadow->y() + blurAndSpread);1401 1402 int extentAndSpread = shadow->paintingExtent() + shadow->spread(); 1403 top = min<LayoutUnit>(top, shadow->y() - extentAndSpread); 1404 bottom = max<LayoutUnit>(bottom, shadow->y() + extentAndSpread); 1404 1405 } 1405 1406 } -
trunk/Source/WebCore/rendering/style/ShadowData.cpp
r133779 r148049 31 31 ShadowData::ShadowData(const ShadowData& o) 32 32 : m_location(o.m_location) 33 , m_ blur(o.m_blur)33 , m_radius(o.m_radius) 34 34 , m_spread(o.m_spread) 35 35 , m_color(o.m_color) … … 47 47 48 48 return m_location == o.m_location 49 && m_ blur == o.m_blur49 && m_radius == o.m_radius 50 50 && m_spread == o.m_spread 51 51 && m_style == o.m_style … … 57 57 { 58 58 do { 59 int blurAndSpread = shadow->blur() + shadow->spread() + additionalOutlineSize;59 int extentAndSpread = shadow->paintingExtent() + shadow->spread() + additionalOutlineSize; 60 60 if (shadow->style() == Normal) { 61 shadowLeft = min(shadow->x() - blurAndSpread, shadowLeft);62 shadowRight = max(shadow->x() + blurAndSpread, shadowRight);63 shadowTop = min(shadow->y() - blurAndSpread, shadowTop);64 shadowBottom = max(shadow->y() + blurAndSpread, shadowBottom);61 shadowLeft = min(shadow->x() - extentAndSpread, shadowLeft); 62 shadowRight = max(shadow->x() + extentAndSpread, shadowRight); 63 shadowTop = min(shadow->y() - extentAndSpread, shadowTop); 64 shadowBottom = max(shadow->y() + extentAndSpread, shadowBottom); 65 65 } 66 66 -
trunk/Source/WebCore/rendering/style/ShadowData.h
r133779 r148049 42 42 public: 43 43 ShadowData() 44 : m_ blur(0)44 : m_radius(0) 45 45 , m_spread(0) 46 46 , m_style(Normal) … … 49 49 } 50 50 51 ShadowData(const IntPoint& location, int blur, int spread, ShadowStyle style, bool isWebkitBoxShadow, const Color& color)51 ShadowData(const IntPoint& location, int radius, int spread, ShadowStyle style, bool isWebkitBoxShadow, const Color& color) 52 52 : m_location(location) 53 , m_ blur(blur)53 , m_radius(radius) 54 54 , m_spread(spread) 55 55 , m_color(color) … … 70 70 int y() const { return m_location.y(); } 71 71 IntPoint location() const { return m_location; } 72 int blur() const { return m_blur; } 72 int radius() const { return m_radius; } 73 int paintingExtent() const 74 { 75 // Blurring uses a Gaussian function whose std. deviation is m_radius/2, and which in theory 76 // extends to infinity. In 8-bit contexts, however, rounding causes the effect to become 77 // undetectable at around 1.4x the radius. 78 const float radiusExtentMultiplier = 1.4; 79 return ceilf(m_radius * radiusExtentMultiplier); 80 } 73 81 int spread() const { return m_spread; } 74 82 ShadowStyle style() const { return m_style; } … … 84 92 private: 85 93 IntPoint m_location; 86 int m_ blur;94 int m_radius; // This is the "blur radius", or twice the standard deviation of the Gaussian blur. 87 95 int m_spread; 88 96 Color m_color; -
trunk/Source/WebCore/rendering/svg/SVGRenderingContext.cpp
r147348 r148049 121 121 if (shadow) { 122 122 m_paintInfo->context->clip(repaintRect); 123 m_paintInfo->context->setShadow(IntSize(roundToInt(shadow->x()), roundToInt(shadow->y())), shadow-> blur(), shadow->color(), style->colorSpace());123 m_paintInfo->context->setShadow(IntSize(roundToInt(shadow->x()), roundToInt(shadow->y())), shadow->radius(), shadow->color(), style->colorSpace()); 124 124 m_paintInfo->context->beginTransparencyLayer(1); 125 125 m_renderingFlags |= EndShadowLayer;
Note: See TracChangeset
for help on using the changeset viewer.