Title: [87680] trunk
Revision
87680
Author
commit-qu...@webkit.org
Date
2011-05-30 01:30:17 -0700 (Mon, 30 May 2011)

Log Message

2011-05-30  Ryan Sleevi  <rsle...@chromium.org>

        Reviewed by Darin Adler.

        FEConvolveMatrix::getPixelValue() fails to properly check if y is within bounds, causing it to fail to correctly apply the kernel and edge mode to the first targetY pixels
        https://bugs.webkit.org/show_bug.cgi?id=61603

        * platform/mac/svg/filters/feConvolveFilter-y-bounds-expected.png: Added.
        * platform/mac/svg/filters/feConvolveFilter-y-bounds-expected.txt: Added.
        * svg/filters/feConvolveFilter-y-bounds.svg: Added.
2011-05-30  Ryan Sleevi  <rsle...@chromium.org>

        Reviewed by Darin Adler.

        FEConvolveMatrix::getPixelValue() fails to properly check if y is within bounds, causing it to fail to correctly apply the kernel and edge mode to the first targetY pixels
        https://bugs.webkit.org/show_bug.cgi?id=61603

        Test: svg/filters/feConvolveFilter-y-bounds.svg

        * platform/graphics/filters/FEConvolveMatrix.cpp:
        (WebCore::FEConvolveMatrix::getPixelValue):

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (87679 => 87680)


--- trunk/LayoutTests/ChangeLog	2011-05-30 07:45:41 UTC (rev 87679)
+++ trunk/LayoutTests/ChangeLog	2011-05-30 08:30:17 UTC (rev 87680)
@@ -1,3 +1,14 @@
+2011-05-30  Ryan Sleevi  <rsle...@chromium.org>
+
+        Reviewed by Darin Adler.
+
+        FEConvolveMatrix::getPixelValue() fails to properly check if y is within bounds, causing it to fail to correctly apply the kernel and edge mode to the first targetY pixels
+        https://bugs.webkit.org/show_bug.cgi?id=61603
+
+        * platform/mac/svg/filters/feConvolveFilter-y-bounds-expected.png: Added.
+        * platform/mac/svg/filters/feConvolveFilter-y-bounds-expected.txt: Added.
+        * svg/filters/feConvolveFilter-y-bounds.svg: Added.
+
 2011-05-30  Sheriff Bot  <webkit.review....@gmail.com>
 
         Unreviewed, rolling out r87618.

Added: trunk/LayoutTests/platform/mac/svg/filters/feConvolveFilter-y-bounds-expected.png (0 => 87680)


--- trunk/LayoutTests/platform/mac/svg/filters/feConvolveFilter-y-bounds-expected.png	                        (rev 0)
+++ trunk/LayoutTests/platform/mac/svg/filters/feConvolveFilter-y-bounds-expected.png	2011-05-30 08:30:17 UTC (rev 87680)
@@ -0,0 +1,259 @@
+\x89PNG
+
+
+IHDR X\x9Av\x82p)tEXtchecksum4debc82e1c55809b09aa37abfbf649d2']H\xEEiCCPICC Profilex\x85T\xCFkA\xFE6n\xA9\xD0"Zk\xB2x\x90"IY\xABhE\xD46\xFDbk\xDB\xB6E\x90d3I\xD6n6\xEB\xEE&\xB5\xA5\x88\xE4\xE2\xD1*\xDEE\xED\xA1\xFF\x80z\xF0d/J\x85ZE(ޫ(b\xA1-\xF1\xCDnL\xB6\xA5\xEA\xC0\xCE~\xF3\xDE7\xEF}ov\xDF
+r\xD24\xF5\x80\xE4
+\xC7R\xA2il|Bj\xFC\x88\x8E\xA2	A4%U\xDB\xECN$A\x83s\xF9{\xE7\xD8z\x81[V\xC3{\xFBw\xB2w\xAD\x9AҶ\x9A\x84\xFD@\xE0G\x9A\xD9*\xB0\xEFq
+Y\x88<ߡ)\xC7t\xDF\xE3\xD8\xF2\xEC\x8F9Nyx\xC1\xB5+=\xC4Y"|@5-\xCEM\xB8S\xCD%\xD3@\x83H8\x94\xF5qR>\x9C׋\x94\xD7inf\xC6\xC8\xBDO\x90\xA6\xBB\xCC\xEE\xABb\xA1\x9CN\xF6\x90\xBD\x9D\xF4~N\xB3\xDE>\xC2!\xC2\xAD?F\xB8\x8D\x9E\xF5\x8C\xD5?\xE2a\xE1\xA4\xE6Ć=5\xF4\xF8`\xB7\xA9\xF85\xC2_M'\xA2Tq\xD9.
+\xF1\x98\xAE\xFDV\xF2J\x82p\x908\xCAda\x80sZHO\xD7Ln\xF8\xBA\x87}&\xD7\xAF\xE2wVQ\xE1y\x8Fg\xDE\xD4\xDD\xEFE\xDA\xAF0\x9A
+HPEa\x98\xB0P@\x86<14\xB2r?#\xAB\x93{2u$j\xBBtbD\xB1A{6\xDC=\xB7Q\xA4\xDD<\xFE("q\x94C\xB5\x92\xFCA\xFE*\xAF\xC9O\xE5y\xF9\xCB\\xB0\xD8V\x{1D4B5B}\x9A\xBA\xF2\xE0;\xC5噹\xD7\xD3\xC8\xE3sM^|\x95\xD4v\x93WG\x96\xACyz\xBC\x9A\xEC?\xECW\x971\xE6\x825\x8F\xC4s\xB0\xFB\xF1-_\x95̗)\x8C\xC5\xE3U\xF3\xEAK\x84uZ17ߟl;=\xE2.\xCF.\xB5\xD6s\xAD\x89\x8B7V\x9B\x97g\xFDjH\xFB\x93\xE6U\xF9O^\xF5\xF1\xFCg\xCD\xC4c\xE2)1&v\x8A\xE7!\x89\x97\xC5.\xF1\x92\xD8K\xAB\xE2`m\xC7\x9D\x95\x86)\xD2m\x91\xFA$\xD5``\x9A\xBC\xF5/]?[x\xBDF\xF5Q\x94\xCC\xD2T\x89\xF7\xC2*d4\x9D\xB9o\xFA\x8F\xDB\xC7\xFC\xE4\xF7\x8A\xE7\x9F(/l\xE0ș\xBAmSq\xEF\xA1e\xA5ns\xAE\xBF\xD1}\xF0\xB6nk\xA3~8\xFCX<\xAB\xADR5\x9F \xBCv\x87z\xE8)\x98Ӗ\x96\xCD9R\x87,\x9F\x93\xBA\xE9\xCAbR\xCCP\xDBCRR\xD7%\xD7eK\xB3\x99Ub\xE9vؙ\xD3n\xA19B\xF7ħJe\x93\xFA\xAF\xF1\xB0\xFD\xB0R\xF9\xF9\xACR\xD9~Nց\x97\xFAo\xC0\xBC\xFDE\xC0x\x8B\x89 IDATx\xED\xD9\xC1	\xC4@A\xED\xE1\xFCS֙u\xFD*;\x80\x81B\x9Ff\xCF\xCC\xEE\xF8 @\x80 \xFC\x82
+ @\x80\xB8\xC4! @\x80 \x90	\x90\x8C\xDA @\x80\xC4
+ @\x80 \x90	\x90\x8C\xDA @\x80\xC4
+ @\x80 \x90	\x90\x8C\xDA @\x80\xC4
+ @\x80 \x90	\x90\x8C\xDA @\x80\xC4
+ @\x80 \x90	\x90\x8C\xDA @\x80\xC4
+ @\x80 \x90	\x90\x8C\xDA @\x80\xC4
+ @\x80 \x90	\x90\x8C\xDA @\x80g\xF6\xFD} @\x80\xBC\x80\xC8& @\x80\xF8\x88K @\x80 @  \xB5! @\x80\x88 @\x80 @  \xB5! @\x80\x88 @\x80 @  \xB5! @\x80\x88 @\x80 @  \xB5! @\x80\x88 @\x80 @  \xB5! @\x80\x88 @\x80 @  \xB5! @\x80\x88 @\x80 @  \xB5! @\x80\xCE\xCC. @\x80^@
+e @\x80\\xE2 @\x80\xC8HFm\x88 @\x80\xE2 @\x80\xC8HFm\x88 @\x80\xE2 @\x80\xC8HFm\x88 @\x80\xE2 @\x80\xC8HFm\x88 @\x80\xE2 @\x80\xC8HFm\x88 @\x80\xE2 @\x80\xC8HFm\x88 @\x80\xE2 @\x80\xC8HFm\x88 @\x80\x81g @\x80/ \x8D\xB3 @\x80^\xE2 @\x80\xC8HFm\x88 @\x80\xE2 @\x80\xC8HFm\x88 @\x80\xE2 @\x80\xC8HFm\x88 @\x80\xE2 @\x80\xC8HFm\x88 @\x80\xE2 @\x80\xC8HFm\x88 @\x80\xE2 @\x80\xC8HFm\x88 @\x80\xE2 @\x80\xC8HFm\x88 @\x80\xE2 @\x80\xC8HFm\x88 @\x80\xE2 @\x80\xC8HFm\x88 @\x80\xE2 @\x80\xC8HFm\x88 @\x80\xE2 @\x80\xC8HFm\x88 @\x80\xE2 @\x80\xC8HFm\x88 @\x80\xE2 @\x80\xC8HFm\x88 @\x80\xE2 @\x80\xC8HFm\x88 @\x80\xE2 @\x80\xC8HFm\x88 @\x80\x813\xB3\x8B\x81 @\x80\x85\x80\x90B\xD9 @\x80W@\x808 @\x802\x92Q"@\x80 @@\x80\xB8 @\x802\x92Q"@\x80 @@\x80\xB8 @\x802\x92Q"@\x80 @@\x80\xB8 @\x802\x92Q"@\x80 @@\x80\xB8 @\x802\x92Q"@\x80 @@\x80\xB8 @\x802\x92Q"@\x80 @@\x80\xB8 @\x802\x92Q"@\x80 @\xE0̾\xBF\x8F @\x80\x81\x80\x90\xD9 @\x80\x9F\x80q	 @\x80d$\xA36D\x80 @\x80\x80q @\x80d$\xA36D\x80 @\x80\x80q @\x80d$\xA36D\x80 @\x80\x80q @\x80d$\xA36D\x80 @\x80\x80q @\x80d$\xA36D\x80 @\x80\x80q @\x80d$\xA36D\x80 @\x80\x80q @\x80d$\xA36D\x80 @\x80\xC0\x99\xD9\xC5@\x80 @\x80\x81B\xC0H\xA1l\x83 @\x80\x81+ @ @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80 \xF0\xECB @\x80 @\x80@#\xE0\xA4q\xB6B\x80 @\x80\xC0+ @\x9C @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC\xD6\xE2*\xC7\xBEIDAT @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80  @\xDC @\x80\x99\x80ɨ
+ @\x80 \xF0\xC1e\x9F*K\x96\x81IEND\xAEB`\x82
\ No newline at end of file

Added: trunk/LayoutTests/platform/mac/svg/filters/feConvolveFilter-y-bounds-expected.txt (0 => 87680)


--- trunk/LayoutTests/platform/mac/svg/filters/feConvolveFilter-y-bounds-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/mac/svg/filters/feConvolveFilter-y-bounds-expected.txt	2011-05-30 08:30:17 UTC (rev 87680)
@@ -0,0 +1,15 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x128
+  RenderSVGRoot {svg} at (0,0) size 800x128
+    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+      RenderSVGResourceFilter {filter} [id="testFilter"] [filterUnits=objectBoundingBox] [primitiveUnits=userSpaceOnUse]
+        [feConvolveMatrix order="width=3 height=8" kernelMatrix="[0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00, 0.00]" divisor="1.00" bias="0.00" target="(1,7)" edgeMode="DUPLICATE" kernelUnitLength="(0,0)" preserveAlpha="1"]
+          [SourceGraphic]
+    RenderSVGPath {rect} at (0,0) size 800x48 [fill={[type=SOLID] [color=#0000FF]}] [x=0.00] [y=0.00] [width=800.00] [height=48.00]
+    RenderSVGContainer {g} at (0,16) size 800x16
+      RenderSVGPath {rect} at (0,16) size 800x16 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=16.00] [width=800.00] [height=16.00]
+    RenderSVGPath {rect} at (0,80) size 800x48 [fill={[type=SOLID] [color=#0000FF]}] [x=0.00] [y=80.00] [width=800.00] [height=48.00]
+    RenderSVGContainer {g} at (0,96) size 800x16
+      [filter="testFilter"] RenderSVGResourceFilter {filter} at (0,96) size 800x16
+      RenderSVGPath {rect} at (0,96) size 800x16 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=96.00] [width=800.00] [height=16.00]

Added: trunk/LayoutTests/svg/filters/feConvolveFilter-y-bounds.svg (0 => 87680)


--- trunk/LayoutTests/svg/filters/feConvolveFilter-y-bounds.svg	                        (rev 0)
+++ trunk/LayoutTests/svg/filters/feConvolveFilter-y-bounds.svg	2011-05-30 08:30:17 UTC (rev 87680)
@@ -0,0 +1,21 @@
+<svg width="800" height="128" xmlns="http://www.w3.org/2000/svg">
+  <defs>
+  <filter id="testFilter" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%" >
+    <feConvolveMatrix order="3 8" kernelMatrix="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0" targetY="7" preserveAlpha="true" />
+  </filter>
+  </defs>
+
+ <!-- Both shapes should look identical -->
+ <!-- Expected -->
+ <rect x="0" y="0" width="800" height="48" fill="#0000FF" />
+ <g>
+  <rect x="0" y="16" width="800" height="16" fill="#00FF00" />
+ </g>
+
+ <!-- Actual -->
+ <rect x="0" y="80" width="800" height="48" fill="#0000FF" />
+ <g filter="url(#testFilter)">
+  <rect x="0" y="96" width="800" height="16" fill="#00FF00" />
+ </g>
+
+</svg>

Modified: trunk/Source/WebCore/ChangeLog (87679 => 87680)


--- trunk/Source/WebCore/ChangeLog	2011-05-30 07:45:41 UTC (rev 87679)
+++ trunk/Source/WebCore/ChangeLog	2011-05-30 08:30:17 UTC (rev 87680)
@@ -1,3 +1,15 @@
+2011-05-30  Ryan Sleevi  <rsle...@chromium.org>
+
+        Reviewed by Darin Adler.
+
+        FEConvolveMatrix::getPixelValue() fails to properly check if y is within bounds, causing it to fail to correctly apply the kernel and edge mode to the first targetY pixels
+        https://bugs.webkit.org/show_bug.cgi?id=61603
+
+        Test: svg/filters/feConvolveFilter-y-bounds.svg
+
+        * platform/graphics/filters/FEConvolveMatrix.cpp:
+        (WebCore::FEConvolveMatrix::getPixelValue):
+
 2011-05-30  Nate Chapin  <jap...@chromium.org>
 
         Reviewed by Antti Koivisto.

Modified: trunk/Source/WebCore/platform/graphics/filters/FEConvolveMatrix.cpp (87679 => 87680)


--- trunk/Source/WebCore/platform/graphics/filters/FEConvolveMatrix.cpp	2011-05-30 07:45:41 UTC (rev 87679)
+++ trunk/Source/WebCore/platform/graphics/filters/FEConvolveMatrix.cpp	2011-05-30 08:30:17 UTC (rev 87680)
@@ -290,7 +290,7 @@
 
 ALWAYS_INLINE int FEConvolveMatrix::getPixelValue(PaintingData& paintingData, int x, int y)
 {
-    if (x >= 0 && x < paintingData.width && x >= 0 && y < paintingData.height)
+    if (x >= 0 && x < paintingData.width && y >= 0 && y < paintingData.height)
         return (y * paintingData.width + x) << 2;
 
     switch (m_edgeMode) {
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to