Title: [131974] trunk
Revision
131974
Author
[email protected]
Date
2012-10-19 19:51:00 -0700 (Fri, 19 Oct 2012)

Log Message

Incorrect pattern scaling
https://bugs.webkit.org/show_bug.cgi?id=99870

Reviewed by Dirk Schulze.

Source/WebCore:

The pattern space transform scale should reflect the tile_size(user space)
to tile_image_size ratio, instead of tile_size to absolute_tile_size.

Test: svg/custom/pattern-scaling.svg

* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::applyResource):

LayoutTests:

* platform/chromium-linux/svg/custom/js-late-pattern-creation-expected.png:
* platform/chromium-linux/svg/custom/pattern-scaling-expected.png: Added.
* platform/chromium-linux/svg/custom/pattern-scaling-expected.txt: Added.
* platform/chromium-linux/svg/custom/pattern-with-transformation-expected.png:
* platform/chromium-linux/svg/transforms/text-with-pattern-inside-transformed-html-expected.png:
* platform/chromium-win/svg/custom/pattern-skew-transformed-expected.png:
* platform/chromium/TestExpectations:
* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:
* platform/mac/TestExpectations:
* platform/qt/TestExpectations:
* svg/custom/pattern-scaling.svg: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (131973 => 131974)


--- trunk/LayoutTests/ChangeLog	2012-10-20 02:33:29 UTC (rev 131973)
+++ trunk/LayoutTests/ChangeLog	2012-10-20 02:51:00 UTC (rev 131974)
@@ -1,3 +1,23 @@
+2012-10-19  Florin Malita  <[email protected]>
+
+        Incorrect pattern scaling
+        https://bugs.webkit.org/show_bug.cgi?id=99870
+
+        Reviewed by Dirk Schulze.
+
+        * platform/chromium-linux/svg/custom/js-late-pattern-creation-expected.png:
+        * platform/chromium-linux/svg/custom/pattern-scaling-expected.png: Added.
+        * platform/chromium-linux/svg/custom/pattern-scaling-expected.txt: Added.
+        * platform/chromium-linux/svg/custom/pattern-with-transformation-expected.png:
+        * platform/chromium-linux/svg/transforms/text-with-pattern-inside-transformed-html-expected.png:
+        * platform/chromium-win/svg/custom/pattern-skew-transformed-expected.png:
+        * platform/chromium/TestExpectations:
+        * platform/efl/TestExpectations:
+        * platform/gtk/TestExpectations:
+        * platform/mac/TestExpectations:
+        * platform/qt/TestExpectations:
+        * svg/custom/pattern-scaling.svg: Added.
+
 2012-10-19  Levi Weintraub  <[email protected]>
 
         Unreviewed gardening. Marking platform/chromium/virtual/gpu/fast/canvas/webgl/array-bounds-clamping.html

Modified: trunk/LayoutTests/platform/chromium/TestExpectations (131973 => 131974)


--- trunk/LayoutTests/platform/chromium/TestExpectations	2012-10-20 02:33:29 UTC (rev 131973)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2012-10-20 02:51:00 UTC (rev 131974)
@@ -2797,6 +2797,13 @@
 crbug.com/83504 [ Win ] fast/css/custom-font-xheight.html [ Failure Pass Slow ]
 crbug.com/83504 [ Mac ] fast/css/custom-font-xheight.html [ Failure Pass ]
 
+# Need rebaselining after 99870
+webkit.org/b/99870 svg/custom/js-late-pattern-creation.svg [ Pass ImageOnlyFailure ]
+webkit.org/b/99870 svg/custom/pattern-skew-transformed.svg [ Pass ImageOnlyFailure ]
+webkit.org/b/99870 svg/custom/pattern-with-transformation.svg [ Pass ImageOnlyFailure ]
+webkit.org/b/99870 svg/transforms/text-with-pattern-inside-transformed-html.xhtml [ Pass ImageOnlyFailure ]
+webkit.org/b/99870 svg/custom/pattern-scaling.svg [ Pass ImageOnlyFailure Missing ]
+
 # Need rebaseline
 webkit.org/b/99818 fast/forms/month-multiple-fields/month-multiple-fields-appearance-l10n.html [ Pass ImageOnlyFailure Missing ]
 webkit.org/b/99818 fast/forms/month-multiple-fields/month-multiple-fields-appearance-basic.html [ Pass ImageOnlyFailure ] 

Modified: trunk/LayoutTests/platform/chromium-linux/svg/custom/js-late-pattern-creation-expected.png


(Binary files differ)

Added: trunk/LayoutTests/platform/chromium-linux/svg/custom/pattern-scaling-expected.png (0 => 131974)


--- trunk/LayoutTests/platform/chromium-linux/svg/custom/pattern-scaling-expected.png	                        (rev 0)
+++ trunk/LayoutTests/platform/chromium-linux/svg/custom/pattern-scaling-expected.png	2012-10-20 02:51:00 UTC (rev 131974)
@@ -0,0 +1,21 @@
+\x89PNG
+
+
+IHDR X')tEXtchecksum60195a80562f99a97414b562a5c6ea10\x89
+\xCBrIDATx\x9C\xED\xDDOh\xDF\xF5\xC7\xF1O\xFE\xB4\xBF\xB4\xBF\x92\xC6?\x99\x95\x85\xADÊ\x851\xABQ\\x91Aè\xAEl\x97ܼ\x9D\xE8ɋ\x84\x82\xD8"\xDBP&\xF5hwxH@ЊP\x83\x97ZL\xD0bp\xBBUJ5IMͿ\xD2\x9Blׯ/\xBFߤ\xBF\xC7\xE3>\x9F\xF7\xFB\x97K\x9F\xE4\x9B~\xD3s\xE9ҥ@No\xD3\xDCh@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2\xFA\xAF\xFE垃=W\xF9\xEA\xA5\xE7\xAE~\xF6j_\xBD\xFA\xD9R\xBC_X\xAB\xFC L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa\xD7x\xD1\xE8
+\xE6o\xFFy\xE6\xA33\xEFU8\xB8\xAE\xB7wh`]\xB5\xA1\x9D\xA5\x8B痖+ܴ\xBEC_\x85\x83\xB7n\xFC\xF1#\xAFT8D\#\xB0\xBE\xBBw\xB5\xBB\xF7\xBCW\xF4љ\xF7~=q\xBC\xC2\xC1\xB1\xAD\xE5\xE8\xDE*\x8F\x9D*\x9A,oMU9\xFB\xE2\x9E\xF2\xD4O\xAB<25W\xE5\xE2!@\x98\xC0Xa L`\x84	,\x80\xB0\xEEz\xDFޟ\xFF\xF1\xF3O\xBC\xF0\x9E\xDBڣ\xB7\xB7\x83\x9E\x9E[|sj&x\xE1\xFA\xBE\x9EG2\xBC\xB0\x9422\xF8\xEAp{4{'\xAB\x87\xC0\xE2\xFA|x\xFA㗏\xBC\xF0\xC0Xy<Z\xE7N\x96\x97\xAB\xBC\xEC\xEC
+
+\x94?<|:yc)\x9FM\x9FNV%\xAB\x8BG\x84a\xD7\xF8	֚{W;@\xE3\xFC L`\x84	,\x800\xFF\x8B\xBA\xC2\xE2\xF2\)S5\xEA,͟9\xFFU
+\x83[\xED\x9B7l\xAEa\xD0\xD9\xCE\xCC\xDCb\xA7\x86Aw\xDC<\xD6׻\xB1\x86A@
+t\x89\xA9\xD6\xEF\xEE\xADa\xCC\xF8\xF6\xF2\xFA#5\xCC)/\xBD_\xF6\xBDUǠ\xC3\xE3e\xEF\x8E:}\xFA\xE5w\xDE\xF2\xAB:&\xDF=\x8F\xC2@Xw="\\xD7\xDB;\xB6\xB5\xCA\xC1\xADCe\xF2d\x95\x83\xA7Ε\x91\xC1Rm\xE8\xFCrš\xE7/V9\x84tW`
+
+\xAC;\xBA\xB7\xCA\xC1ɓe\xECp\x95\x83;G\xCAs\xBBʞmU\xCE>}\xA4\xE2\xD0v_\xA8r\xB9F`}w\xEFj\xF7\x9Ew\xE0F\xE5w\xB0\xC2@\x98\xC0Xa L`\x84	,\x80\xB0\xEEz\xD1(@\x97{\xF5\xEF\xBB><\xFDI\xD3[\v\xEF\x96\xF6\xE8\xED\x{D9B7}\xB8\xEC\xE4\xCC\xC2;\xFF\x9Amz\x8B\xCBZ}\xBD\x8F\xDE}k\xD3[\\xE1GC\xBDi\xC3]Mo\xB1,\x80.\xF2\xE1\xE9O}p\xA6\xE9-.;0V\x9Emz\x89>?W}\xD0\xF4+
+\x94?\xFE⋦\xB7\xB8©ٙ\x9B64\xBD\xC4Zp\xCD\xC0\xBAt\xB5\xAF}\x8B\xF7\xAD{W;p\xA3\xF2;Xa L`\x84\xF9%w\xAE\xCF=\xB7\xB5\x8C\x85\xEF<8\xBEp\xF5o\xF8\xE4\xFD\xAB\xE8\xBFM'\xB0\xB8>\xA3\xB7\xB7\x8F\xFE\x97\x9F\x83\x93\xE5\xC0\xBB\xC9Ƕ\x96\xA3{\x93\xCE.\x94\xA1\xE7\x93\x96R\xF6?(\xB0nd\x84u\xDDO\xB0\x8E\x9D\xAAr\xEAԹ\xB2s\xA4\xCA\xC1;n*g;\x87\xB6\xFA*l\xF5U9\x84tW`u\x96.\xFE\xA9\xD2/ӌ\x96\xE7vU9x\xB6S\x8E\xFF\xBB\xFC\xE5\x9FU\xCE\xEE\xFAaš\x8B˭*\xC7\x80\x90\xEE
+\xAC\xF3K\xCBoMU98\xB6\xB5\xEC\xD9V\xE5\xE0\xB1S\xE5/\xFF,Ն\xEE\xD9Vq\xE8\x91)O~\xA0I\xFE%Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0\xEB\xAE7\xB9C\xD7\xEA,͏o\xAFc\xD06\x97\x89u\xEA,\x95z>\xD1\xD9NM\x9F\xE8\xBE-\xFE\xC8\xDC8t\x853\xE7\xBFz\xFD\x91:M\x9C(\xE3\xAF\xD51h\xDF\xCER\xCF'zl\xA2<\xF3v\x83:\xCF\xD51\xA8\x85G\x84a L`\x84	,\x800\x81&\xB0º\xEB5
+\x9B\xD6\x{1FFE27}\xCA\xC1\xF9\xE5\xF2\xF4\x91*[}e\xD7˞mU\xCE~u\xA1\xE2\xD0\xB7-T9\x84tW`m\xE8\xEF{\xEA\xA7UN\x9E,c\x87\xAB\xDC9R\x9E\xDBU1\xB0\x9E>R^<V\xE5\xE0\xBB\x97\xAAB<"Xa\xDD\xF5\x88\x90o\xEF\xF4\xDC⹓\xE1;Ƕ&o\xDB:T&\xA3\xCE/\x877,\xA5,\\X\xBE\x80\xD5C`q}ޜ\x9Ay\xF9x\xF2\xC2c\xE5\xE8\xDE䅕a\xEE\x9B
+\x94\xE9\xFD\xC9K)\x9FM\xCFl\xDF	\xC0\xEA\xE1!@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84\xF57\xBD@\xADn\xDD\xF8\xE3#Ss\x9E_\xBC\xF8\xC2\xEE\xB6\xFA\x97[G\xA6\xAA\x84\xEC\x8E\xDB^ؽT\xE1\xE0\xE8\x96\xFB*\x9C\xBA\xC1\xBD[\xDAƚ^\xE2J'\x9B\xDE\xE0J\xBE?W\xF7\xD4\x9B^am\xE8\xAE\xC0z`䕦Wh\xD2\xE8\xED\xED'F\x9B^b\x85\x83\x93\xE5\xC0\xBBM/\xB1\xC2\xF8\xF6\xF2\xFA#M/\xB1\xC2\xECBz\xBE\xE9%\xAE\x{11B7F5}\x9B^am\xF0\x88 L`\x84	,\x800\x81&\xB0\xC2@Xw\xBD\xA6\xBA\xD6`\xAB\xFD\xD2\xFBu\xEA,\x95};\xEB4\xD8*\xF5|\xA2\x91\xC1\x9A>\xD1\xDCbgú:5X\xD0nްy\xDF[u\xAA\xED5B/\xBD_\xEA\xF9D\x87\xC7\xCB\xDEu\xFA\xF4˯\x87\xBD`n\x84	,\x800\x8F\xB9>\xEB\xFBz\x86\xC2w\xCE.$o\x9B_.\xD9
+[\xE1
+K)=\xA5'|#\xAB\x89\xC0\xE2\xFA<\xFA\x93\xE1?<|:x\xE1\xC1\xC9\xF0_\xDA\xDBZ\xA6\xF7'/\xFC.\xFE؅g\x87\xC37\xB0\x9AxD&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2\xFA\x9B^\x805fd\xF0\xD5Ϧ\xCF/|\xF2\xFE\xF6\xFE\xDB\xC1..~6=\xBC\xB0\xA7\xF4\xv8xa)\xA5\xAF\xF7\xCE\xEC\x85\xAC*\x8B\xEB3\xDCN\xE6P\xDE\xC0\xBA\xB2y\xA0\xE9%\xE8n\x84\xF9	t\x85\xB3\x9D\x99\xC3\xE3\xF5*\x8FM\xD41hd\xB0\xD4\xF3\x89>9[\xD3'\xFA\xFDC\x9B\xEB\xD4B`AW\x98[\xEC\xEC\xDDQǠ\x89噷\xEB\xB4og\xA9\xE7=6Q\xFF\xA3\x8EA\x87~\xE9\xD96\xDC8<"Xa \xCC\xEF`t\x91\x933\x9F\x9Fkz\x89+\x8Dooz\x83~\xB0\xB9L\x9Chz\x89/\xAE\xAE\xEFO)e~yaS_\xD3K\xAC\xA0\x8B\xBC\xF3\xAF\xD9C4\xBD\xC4
+\xC6\xCA\xEB\x8F4\xBD\xC4
+'\xCA\xF8kM/\xB1\xC2\xD0@\x99\xDE\xDF\xF4W:5{nS\xAB\xE9%\xD6\x8F\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa\xFDM/\xD4᎛\xC7>\xFD\xF2\x8Dݷ\xA5\xD5yv\xA8\x86As\x8B\x9DO\xBF\xFC\xBA\x86A\xBFh\xF3\xA1_\xD40\xA8\xAF\xE7\xAE\xA6\xF5X\xD0\xFAz7\xDEy˯\x9A\xDE"iú2\xDCnz	\x80o\xE0!@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2\xFA\x9B^\x80\xFA\xB4\xFAz\x87\x9A^\xE2J\xB3Mo\xB0\xC2\xE2Ų\xAA\xBE?\x83\xAD\xD5\xF5\xFD)\xA5\xF4\xF6\xF8\xD1\xCC\xFFE`t\x91G\xEF\xBE\xF5\x8F\xBF\xF8\xA2\xE9-.;8Y\x86\x9Eoz\x89Ʒ\x97\xE9\xFDM/\xB1\xC2\xEC\xC2\xEA\xFA\xFE\x94R\x96~{K\xD3+\xAC
+: L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0\xEB\xB9t\xE9R\xD3;P\x93\xE9'\xCE/\xCE4\xBD\xC5e\x9B\xD6oܴ\xBE\xDD\xF4\x97\xCD//\xCC̟kz\x8B\xCBz{z\xBF׾\xA5\xE9-\xFE\xC7\xF7\xFB\xFBZM\xEF\xB0,\x800\x8F\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa L`\x84	,\x800\x81&\xB0\xC2@\x98\xC0Xa \xEC\xBF⎸\xCF	f\xC0IEND\xAEB`\x82
\ No newline at end of file

Added: trunk/LayoutTests/platform/chromium-linux/svg/custom/pattern-scaling-expected.txt (0 => 131974)


--- trunk/LayoutTests/platform/chromium-linux/svg/custom/pattern-scaling-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/chromium-linux/svg/custom/pattern-scaling-expected.txt	2012-10-20 02:51:00 UTC (rev 131974)
@@ -0,0 +1,36 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderSVGRoot {svg} at (10,10) size 692x232
+    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+      RenderSVGResourcePattern {pattern} [id="pattern"] [patternUnits=userSpaceOnUse] [patternContentUnits=userSpaceOnUse]
+        RenderSVGRect {rect} at (0,0) size 10x10 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=10.00] [height=10.00]
+        RenderSVGRect {rect} at (10,10) size 10x10 [fill={[type=SOLID] [color=#008000]}] [x=10.00] [y=10.00] [width=10.00] [height=10.00]
+      RenderSVGContainer {g} at (10,10) size 40x40
+        RenderSVGRect {rect} at (10,10) size 40x40 [fill={[type=SOLID] [color=#FFFF00]}] [x=10.00] [y=10.00] [width=40.00] [height=40.00]
+        RenderSVGRect {rect} at (10,10) size 40x40 [fill={[type=PATTERN] [id="pattern"]}] [x=10.00] [y=10.00] [width=40.00] [height=40.00]
+    RenderSVGContainer {g} at (10,10) size 40x40
+      RenderSVGContainer {use} at (10,10) size 40x40
+        RenderSVGContainer {g} at (10,10) size 40x40
+          RenderSVGRect {rect} at (10,10) size 40x40 [fill={[type=SOLID] [color=#FFFF00]}] [x=10.00] [y=10.00] [width=40.00] [height=40.00]
+          RenderSVGRect {rect} at (10,10) size 40x40 [fill={[type=PATTERN] [id="pattern"]}] [x=10.00] [y=10.00] [width=40.00] [height=40.00]
+    RenderSVGContainer {g} at (79,19) size 78x78 [transform={m=((1.93,0.00)(0.00,1.93)) t=(60.00,0.00)}]
+      RenderSVGContainer {use} at (79,19) size 78x78
+        RenderSVGContainer {g} at (79,19) size 78x78
+          RenderSVGRect {rect} at (79,19) size 78x78 [fill={[type=SOLID] [color=#FFFF00]}] [x=10.00] [y=10.00] [width=40.00] [height=40.00]
+          RenderSVGRect {rect} at (79,19) size 78x78 [fill={[type=PATTERN] [id="pattern"]}] [x=10.00] [y=10.00] [width=40.00] [height=40.00]
+    RenderSVGContainer {g} at (187,27) size 110x110 [transform={m=((2.72,0.00)(0.00,2.72)) t=(160.00,0.00)}]
+      RenderSVGContainer {use} at (187,27) size 110x110
+        RenderSVGContainer {g} at (187,27) size 110x110
+          RenderSVGRect {rect} at (187,27) size 110x110 [fill={[type=SOLID] [color=#FFFF00]}] [x=10.00] [y=10.00] [width=40.00] [height=40.00]
+          RenderSVGRect {rect} at (187,27) size 110x110 [fill={[type=PATTERN] [id="pattern"]}] [x=10.00] [y=10.00] [width=40.00] [height=40.00]
+    RenderSVGContainer {g} at (334,34) size 141x141 [transform={m=((3.48,0.00)(0.00,3.48)) t=(300.00,0.00)}]
+      RenderSVGContainer {use} at (334,34) size 141x141
+        RenderSVGContainer {g} at (334,34) size 141x141
+          RenderSVGRect {rect} at (334,34) size 141x141 [fill={[type=SOLID] [color=#FFFF00]}] [x=10.00] [y=10.00] [width=40.00] [height=40.00]
+          RenderSVGRect {rect} at (334,34) size 141x141 [fill={[type=PATTERN] [id="pattern"]}] [x=10.00] [y=10.00] [width=40.00] [height=40.00]
+    RenderSVGContainer {g} at (508,48) size 194x194 [transform={m=((4.82,0.00)(0.00,4.82)) t=(460.00,0.00)}]
+      RenderSVGContainer {use} at (508,48) size 194x194
+        RenderSVGContainer {g} at (508,48) size 194x194
+          RenderSVGRect {rect} at (508,48) size 194x194 [fill={[type=SOLID] [color=#FFFF00]}] [x=10.00] [y=10.00] [width=40.00] [height=40.00]
+          RenderSVGRect {rect} at (508,48) size 194x194 [fill={[type=PATTERN] [id="pattern"]}] [x=10.00] [y=10.00] [width=40.00] [height=40.00]

Modified: trunk/LayoutTests/platform/chromium-linux/svg/custom/pattern-with-transformation-expected.png


(Binary files differ)

Modified: trunk/LayoutTests/platform/chromium-linux/svg/transforms/text-with-pattern-inside-transformed-html-expected.png


(Binary files differ)

Modified: trunk/LayoutTests/platform/chromium-win/svg/custom/pattern-skew-transformed-expected.png


(Binary files differ)

Modified: trunk/LayoutTests/platform/efl/TestExpectations (131973 => 131974)


--- trunk/LayoutTests/platform/efl/TestExpectations	2012-10-20 02:33:29 UTC (rev 131973)
+++ trunk/LayoutTests/platform/efl/TestExpectations	2012-10-20 02:51:00 UTC (rev 131974)
@@ -1978,6 +1978,13 @@
 # css3-conditionals support is not yet enabled.
 webkit.org/b/86146 css3/supports.html
 
+# Need rebaselining after 99870
+webkit.org/b/99870 svg/custom/js-late-pattern-creation.svg [ Pass ImageOnlyFailure ]
+webkit.org/b/99870 svg/custom/pattern-skew-transformed.svg [ Pass ImageOnlyFailure ]
+webkit.org/b/99870 svg/custom/pattern-with-transformation.svg [ Pass ImageOnlyFailure ]
+webkit.org/b/99870 svg/transforms/text-with-pattern-inside-transformed-html.xhtml [ Pass ImageOnlyFailure ]
+webkit.org/b/99870 svg/custom/pattern-scaling.svg [ Pass ImageOnlyFailure Missing ]
+
 # Occasionally fails if run after right after
 # fast/selectors/unqualified-hover-quirks.html or itself.
 webkit.org/b/10890 fast/selectors/unqualified-hover-strict.html [ Failure Pass ]

Modified: trunk/LayoutTests/platform/gtk/TestExpectations (131973 => 131974)


--- trunk/LayoutTests/platform/gtk/TestExpectations	2012-10-20 02:33:29 UTC (rev 131973)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2012-10-20 02:51:00 UTC (rev 131974)
@@ -81,6 +81,13 @@
 inspector/styles/vendor-prefixes.html [ WontFix ]
 fast/css/apple-prefix.html [ WontFix ]
 
+# Need rebaselining after 99870
+webkit.org/b/99870 svg/custom/js-late-pattern-creation.svg [ Pass ImageOnlyFailure ]
+webkit.org/b/99870 svg/custom/pattern-skew-transformed.svg [ Pass ImageOnlyFailure ]
+webkit.org/b/99870 svg/custom/pattern-with-transformation.svg [ Pass ImageOnlyFailure ]
+webkit.org/b/99870 svg/transforms/text-with-pattern-inside-transformed-html.xhtml [ Pass ImageOnlyFailure ]
+webkit.org/b/99870 svg/custom/pattern-scaling.svg [ Pass ImageOnlyFailure Missing ]
+
 # This port doesn't support detecting slow unload handlers.
 fast/dom/Window/slow-unload-handler.html [ WontFix ]
 fast/dom/Window/slow-unload-handler-only-frame-is-stopped.html [ WontFix ]

Modified: trunk/LayoutTests/platform/mac/TestExpectations (131973 => 131974)


--- trunk/LayoutTests/platform/mac/TestExpectations	2012-10-20 02:33:29 UTC (rev 131973)
+++ trunk/LayoutTests/platform/mac/TestExpectations	2012-10-20 02:51:00 UTC (rev 131974)
@@ -1000,6 +1000,13 @@
 webkit.org/b/58192 fast/frames/flattening/iframe-flattening-offscreen.html [ Failure Pass ]
 webkit.org/b/58192 svg/dom/SVGScriptElement/script-set-href.svg [ Failure Pass ]
 
+# Need rebaselining after 99870
+webkit.org/b/99870 svg/custom/js-late-pattern-creation.svg [ Pass ImageOnlyFailure ]
+webkit.org/b/99870 svg/custom/pattern-skew-transformed.svg [ Pass ImageOnlyFailure ]
+webkit.org/b/99870 svg/custom/pattern-with-transformation.svg [ Pass ImageOnlyFailure ]
+webkit.org/b/99870 svg/transforms/text-with-pattern-inside-transformed-html.xhtml [ Pass ImageOnlyFailure ]
+webkit.org/b/99870 svg/custom/pattern-scaling.svg [ Pass ImageOnlyFailure Missing ]
+
 # Flakey cookies tests
 webkit.org/b/73694 http/tests/cookies/simple-cookies-expired.html [ Failure Pass ]
 webkit.org/b/73695 http/tests/cookies/simple-cookies-max-age.html [ Failure Pass ]

Modified: trunk/LayoutTests/platform/qt/TestExpectations (131973 => 131974)


--- trunk/LayoutTests/platform/qt/TestExpectations	2012-10-20 02:33:29 UTC (rev 131973)
+++ trunk/LayoutTests/platform/qt/TestExpectations	2012-10-20 02:51:00 UTC (rev 131974)
@@ -2405,6 +2405,13 @@
 # Paletted PNG with ICC color profiles not working.
 webkit.org/b/86722 fast/images/paletted-png-with-color-profile.html
 
+# Need rebaselining after 99870
+webkit.org/b/99870 svg/custom/js-late-pattern-creation.svg [ Pass ImageOnlyFailure ]
+webkit.org/b/99870 svg/custom/pattern-skew-transformed.svg [ Pass ImageOnlyFailure ]
+webkit.org/b/99870 svg/custom/pattern-with-transformation.svg [ Pass ImageOnlyFailure ]
+webkit.org/b/99870 svg/transforms/text-with-pattern-inside-transformed-html.xhtml [ Pass ImageOnlyFailure ]
+webkit.org/b/99870 svg/custom/pattern-scaling.svg [ Pass ImageOnlyFailure Missing ]
+
 # Disable webaudio codec tests, including proprietary codecs.
 webkit.org/b/88794 webaudio/codec-tests
 

Added: trunk/LayoutTests/svg/custom/pattern-scaling.svg (0 => 131974)


--- trunk/LayoutTests/svg/custom/pattern-scaling.svg	                        (rev 0)
+++ trunk/LayoutTests/svg/custom/pattern-scaling.svg	2012-10-20 02:51:00 UTC (rev 131974)
@@ -0,0 +1,31 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="800" height="600">
+  <!-- Test for https://bugs.webkit.org/show_bug.cgi?id=99870 -->
+  <defs>
+    <pattern id="pattern" width="20" height="20" patternUnits="userSpaceOnUse">
+      <rect width="10" height="10" fill="green"/>
+      <rect x="10" y="10" width="10" height="10" fill="green"/>
+    </pattern>
+
+    <g id="grp">
+      <rect x="10" y="10" width="40" height="40" fill="yellow"/>
+      <rect x="10" y="10" width="40" height="40" fill="url(#pattern)"/>
+    </g>
+  </defs>
+
+  <g>
+    <use xlink:href=""
+  </g>
+  <g transform="translate(60,0) scale(1.93453)">
+    <use xlink:href=""
+  </g>
+  <g transform="translate(160,0) scale(2.72323)">
+    <use xlink:href=""
+  </g>
+  <g transform="translate(300,0) scale(3.483432)">
+    <use xlink:href=""
+  </g>
+  <g transform="translate(460,0) scale(4.8223434)">
+    <use xlink:href=""
+  </g>
+</svg>
+

Modified: trunk/Source/WebCore/ChangeLog (131973 => 131974)


--- trunk/Source/WebCore/ChangeLog	2012-10-20 02:33:29 UTC (rev 131973)
+++ trunk/Source/WebCore/ChangeLog	2012-10-20 02:51:00 UTC (rev 131974)
@@ -1,3 +1,18 @@
+2012-10-19  Florin Malita  <[email protected]>
+
+        Incorrect pattern scaling
+        https://bugs.webkit.org/show_bug.cgi?id=99870
+
+        Reviewed by Dirk Schulze.
+
+        The pattern space transform scale should reflect the tile_size(user space)
+        to tile_image_size ratio, instead of tile_size to absolute_tile_size.
+
+        Test: svg/custom/pattern-scaling.svg
+
+        * rendering/svg/RenderSVGResourcePattern.cpp:
+        (WebCore::RenderSVGResourcePattern::applyResource):
+
 2012-10-19  Tony Chang  <[email protected]>
 
         RenderFlexibleBox::preferredMainAxisContentExtentForChild can return a negative value

Modified: trunk/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp (131973 => 131974)


--- trunk/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp	2012-10-20 02:33:29 UTC (rev 131973)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp	2012-10-20 02:51:00 UTC (rev 131974)
@@ -126,8 +126,9 @@
             return false;
 
         // Compute pattern space transformation.
+        const IntSize tileImageSize = tileImage->logicalSize();
         patternData->transform.translate(tileBoundaries.x(), tileBoundaries.y());
-        patternData->transform.scale(tileBoundaries.width() / clampedAbsoluteTileBoundaries.width(), tileBoundaries.height() / clampedAbsoluteTileBoundaries.height());
+        patternData->transform.scale(tileBoundaries.width() / tileImageSize.width(), tileBoundaries.height() / tileImageSize.height());
 
         AffineTransform patternTransform = m_attributes.patternTransform();
         if (!patternTransform.isIdentity())
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to