Diff
Modified: trunk/LayoutTests/ChangeLog (93358 => 93359)
--- trunk/LayoutTests/ChangeLog 2011-08-18 22:19:23 UTC (rev 93358)
+++ trunk/LayoutTests/ChangeLog 2011-08-18 22:23:08 UTC (rev 93359)
@@ -1,3 +1,20 @@
+2011-08-18 Sheriff Bot <[email protected]>
+
+ Unreviewed, rolling out r93354.
+ http://trac.webkit.org/changeset/93354
+ https://bugs.webkit.org/show_bug.cgi?id=66503
+
+ "consensus was not reached" (Requested by senorblanco on
+ #webkit).
+
+ * fast/canvas/drawImage-clipped-source-expected.txt: Removed.
+ * fast/canvas/drawImage-clipped-source.html: Removed.
+ * fast/canvas/drawImage-clipped-source.js: Removed.
+ * fast/canvas/drawImage-with-invalid-args-expected.txt:
+ * fast/canvas/drawImage-with-invalid-args.html:
+ * platform/chromium/test_expectations.txt:
+ * platform/mac/Skipped:
+
2011-08-18 Ryosuke Niwa <[email protected]>
Fix r93349.
Deleted: trunk/LayoutTests/fast/canvas/drawImage-clipped-source-expected.txt (93358 => 93359)
--- trunk/LayoutTests/fast/canvas/drawImage-clipped-source-expected.txt 2011-08-18 22:19:23 UTC (rev 93358)
+++ trunk/LayoutTests/fast/canvas/drawImage-clipped-source-expected.txt 2011-08-18 22:23:08 UTC (rev 93359)
@@ -1,867 +0,0 @@
-Series of tests to ensure correct behaviour of drawImage with partially out of bounds source rectangles
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-Canvas to canvas draw
-- clipped by left edge
--- red square, x = 0, y = 0, w = 30, h = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 30, y = 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-- clipped by right edge
--- red square, x = 90, y = 0, w = 30, h = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 60, y = 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-- clipped by top edge
--- red square, x = 0, y = 30, w = 30, h = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 0, y = 60
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-- clipped by bottom edge
--- red square, x = 30, y = 60, w = 30, h = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 30, y = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-- clipped by all edges
--- red square, x = 60, y = 30, w = 60, h = 60
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- red square, x = 74, y = 44, w = 32, h = 32
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 75, y = 45
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-Canvas to canvas draw with negative source dimensions
-- clipped by left edge
--- red square, x = 0, y = 0, w = 30, h = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 30, y = 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-- clipped by right edge
--- red square, x = 90, y = 0, w = 30, h = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 60, y = 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-- clipped by top edge
--- red square, x = 0, y = 30, w = 30, h = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 0, y = 60
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-- clipped by bottom edge
--- red square, x = 30, y = 60, w = 30, h = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 30, y = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-- clipped by all edges
--- red square, x = 60, y = 30, w = 60, h = 60
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- red square, x = 74, y = 44, w = 32, h = 32
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 75, y = 45
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-Image to canvas draw
-- clipped by left edge
--- red square, x = 0, y = 0, w = 30, h = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 30, y = 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-- clipped by right edge
--- red square, x = 90, y = 0, w = 30, h = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 60, y = 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-- clipped by top edge
--- red square, x = 0, y = 30, w = 30, h = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 0, y = 60
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-- clipped by bottom edge
--- red square, x = 30, y = 60, w = 30, h = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 30, y = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-- clipped by all edges
--- red square, x = 60, y = 30, w = 60, h = 60
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- red square, x = 74, y = 44, w = 32, h = 32
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 75, y = 45
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-Image to canvas draw with negative source dimensions
-- clipped by left edge
--- red square, x = 0, y = 0, w = 30, h = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 30, y = 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-- clipped by right edge
--- red square, x = 90, y = 0, w = 30, h = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 60, y = 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-- clipped by top edge
--- red square, x = 0, y = 30, w = 30, h = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 0, y = 60
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-- clipped by bottom edge
--- red square, x = 30, y = 60, w = 30, h = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 30, y = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-- clipped by all edges
--- red square, x = 60, y = 30, w = 60, h = 60
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- red square, x = 74, y = 44, w = 32, h = 32
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 75, y = 45
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-Image to canvas draw with 2x scale
-- clipped by left edge
--- red square, x = 0, y = 0, w = 30, h = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 30, y = 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-- clipped by right edge
--- red square, x = 90, y = 0, w = 30, h = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 60, y = 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-- clipped by top edge
--- red square, x = 0, y = 30, w = 30, h = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 0, y = 60
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-- clipped by bottom edge
--- red square, x = 30, y = 60, w = 30, h = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 30, y = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-- clipped by all edges
--- red square, x = 60, y = 30, w = 60, h = 60
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- red square, x = 74, y = 44, w = 32, h = 32
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 75, y = 45
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-Image to canvas draw with negative source dimensions and 2x scale
-- clipped by left edge
--- red square, x = 0, y = 0, w = 30, h = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 30, y = 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-- clipped by right edge
--- red square, x = 90, y = 0, w = 30, h = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 60, y = 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-- clipped by top edge
--- red square, x = 0, y = 30, w = 30, h = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 0, y = 60
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-- clipped by bottom edge
--- red square, x = 30, y = 60, w = 30, h = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 30, y = 30
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-- clipped by all edges
--- red square, x = 60, y = 30, w = 60, h = 60
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- red square, x = 74, y = 44, w = 32, h = 32
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 0
--- test pattern, x = 75, y = 45
-PASS imgdata[0] is 255
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 255
-PASS imgdata[0] is 255
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 255
-PASS imgdata[2] is 0
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS imgdata[0] is 0
-PASS imgdata[1] is 0
-PASS imgdata[2] is 255
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
Deleted: trunk/LayoutTests/fast/canvas/drawImage-clipped-source.html (93358 => 93359)
--- trunk/LayoutTests/fast/canvas/drawImage-clipped-source.html 2011-08-18 22:19:23 UTC (rev 93358)
+++ trunk/LayoutTests/fast/canvas/drawImage-clipped-source.html 2011-08-18 22:23:08 UTC (rev 93359)
@@ -1,16 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<!-- Test that verified the correct clipping of of the drawn rectangle when the source rectangle is out of bounds
- -->
-<html>
-<head>
-<link rel="stylesheet" href=""
-<script src=""
-</head>
-<body>
-<p id="description"></p>
-<div id="console"></div>
-<canvas id="canvas" width="240" height="540"></canvas>
-<script src=""
-<script src=""
-</body>
-</html>
Deleted: trunk/LayoutTests/fast/canvas/drawImage-clipped-source.js (93358 => 93359)
--- trunk/LayoutTests/fast/canvas/drawImage-clipped-source.js 2011-08-18 22:19:23 UTC (rev 93358)
+++ trunk/LayoutTests/fast/canvas/drawImage-clipped-source.js 2011-08-18 22:23:08 UTC (rev 93359)
@@ -1,131 +0,0 @@
-description("Series of tests to ensure correct behaviour of drawImage with partially out of bounds source rectangles");
-var canvas2 = document.createElement('canvas');
-canvas2.width = 30;
-canvas2.height = 30;
-var ctx2 = canvas2.getContext('2d');
-
-function patternTest(canvas) {
-
- this.testPixel = function(x, y, color) {
- var imageData = this.canvas.getImageData(this.xOffset + x * this.scale, this.yOffset + y * this.scale, 1, 1);
- imgdata = imageData.data;
- shouldBe("imgdata[0]", color[0].toString());
- shouldBe("imgdata[1]", color[1].toString());
- shouldBe("imgdata[2]", color[2].toString());
- }
-
- this.testRedSquare = function(x, y, w, h) {
- var red = new Array(255, 0, 0);
- debug("-- red square, x = " + x + ", y = " + y + ", w = " + w + ", h = " + h);
- this.testPixel(x, y, red);
- this.testPixel(x + w - 1, y + h - 1, red);
- }
-
- this.testPattern = function(x, y, filterPadding) {
- var yellow = new Array(255, 255, 0);
- var cyan = new Array(0, 255, 255);
- var magenta = new Array(255, 0, 255);
- var green = new Array(0, 255, 0);
- var blue = new Array(0, 0, 255);
- debug("-- test pattern, x = " + x + ", y = " + y);
- this.testPixel(x + 9, y + 9, yellow);
- this.testPixel(x + 20 + filterPadding, y + 9, cyan);
- this.testPixel(x + 9, y + 20 + filterPadding, magenta);
- this.testPixel(x + 20 + filterPadding, y + 20 + filterPadding, green);
- this.testPixel(x + 10 + filterPadding, y + 10 + filterPadding, blue);
- this.testPixel(x + 19, y + 19, blue);
- }
-
- this.testAggregatePattern = function(x, y, scale, filterPadding){
- this.scale = scale;
- this.xOffset = x;
- this.yOffset = y;
- debug("- clipped by left edge");
- this.testRedSquare(0, 0, 30, 30);
- this.testPattern(30, 0, filterPadding);
- debug("- clipped by right edge");
- this.testRedSquare(90, 0, 30, 30);
- this.testPattern(60, 0, filterPadding);
- debug("- clipped by top edge");
- this.testRedSquare(0, 30, 30, 30);
- this.testPattern(0, 60, filterPadding);
- debug("- clipped by bottom edge");
- this.testRedSquare(30, 60, 30, 30);
- this.testPattern(30, 30, filterPadding);
- debug("- clipped by all edges");
- this.testRedSquare(60, 30, 60, 60);
- this.testRedSquare(74, 44, 32, 32);
- this.testPattern(75, 45, filterPadding);
- }
-
- this.canvas = canvas;
-}
-
-var drawTestPattern = function(canvas, srcImage) {
- canvas.drawImage(srcImage, -30, 0, 60, 30, 0, 0, 60, 30); // left edge clip
- canvas.drawImage(srcImage, 0, 0, 60, 30, 60, 0, 60, 30); // right edge clip
- canvas.drawImage(srcImage, 0, -30, 30, 60, 0, 30, 30, 60); // top edge clip
- canvas.drawImage(srcImage, 0, 0, 30, 60, 30, 30, 30, 60); // bottom edge clip
- canvas.drawImage(srcImage, -15, -15, 60, 60, 60, 30, 60, 60); // all edge clip
- // repeat with negative source dimensions
- canvas.drawImage(srcImage, 30, 30, -60, -30, 0, 90, 60, 30); // left edge clip
- canvas.drawImage(srcImage, 60, 30, -60, -30, 60, 90, 60, 30); // right edge clip
- canvas.drawImage(srcImage, 30, 30, -30, -60, 0, 120, 30, 60); // top edge clip
- canvas.drawImage(srcImage, 30, 60, -30, -60, 30, 120, 30, 60); // bottom edge clip
- canvas.drawImage(srcImage, 45, 45, -60, -60, 60, 120, 60, 60); // all edge clip
-}
-
-var executeTest = function() {
- var canvas = document.getElementById('canvas').getContext('2d');
- canvas.fillStyle = '#f00';
- canvas.fillRect(0, 0, 240, 540);
-
- try {
- canvas.save();
- drawTestPattern(canvas, canvas2);
- canvas.translate(120, 0);
- drawTestPattern(canvas, imageSource);
- canvas.restore();
- canvas.scale(2, 2);
- canvas.translate(0, 90);
- drawTestPattern(canvas, imageSource);
- } catch(err) {
- testFailed("Unexpected Exception: " + err.message);
- }
-
- var test = new patternTest(canvas);
- debug("Canvas to canvas draw")
- test.testAggregatePattern(0, 0, 1, 0);
- debug("Canvas to canvas draw with negative source dimensions");
- test.testAggregatePattern(0, 90, 1, 0);
- debug("Image to canvas draw");
- test.testAggregatePattern(120, 0, 1, 0);
- debug("Image to canvas draw with negative source dimensions");
- test.testAggregatePattern(120, 90, 1, 0);
- debug("Image to canvas draw with 2x scale");
- test.testAggregatePattern(0, 180, 2, 1);
- debug("Image to canvas draw with negative source dimensions and 2x scale");
- test.testAggregatePattern(0, 360, 2, 1);
- finishJSTest();
-}
-
-// The following test pattern is designed to make it easy to verify
-// scale, position and orientation
-ctx2.fillStyle = '#ff0';
-ctx2.fillRect(0, 0, 15, 15);
-ctx2.fillStyle = '#f0f';
-ctx2.fillRect(0, 15, 15, 15);
-ctx2.fillStyle = '#0ff';
-ctx2.fillRect(15, 0, 15, 15);
-ctx2.fillStyle = '#0f0';
-ctx2.fillRect(15, 15, 15, 15);
-ctx2.fillStyle = '#00f';
-ctx2.fillRect(10, 10, 10, 10);
-
-var imageSource = new Image();
-imageSource._onload_ = executeTest;
-imageSource.src = ""
-
-jsTestIsAsync = true;
-
-var successfullyParsed = true;
Modified: trunk/LayoutTests/fast/canvas/drawImage-with-invalid-args-expected.txt (93358 => 93359)
--- trunk/LayoutTests/fast/canvas/drawImage-with-invalid-args-expected.txt 2011-08-18 22:19:23 UTC (rev 93358)
+++ trunk/LayoutTests/fast/canvas/drawImage-with-invalid-args-expected.txt 2011-08-18 22:23:08 UTC (rev 93359)
@@ -15,16 +15,16 @@
PASS: null image, got exception as expected
PASS: null image, got exception as expected
PASS: null image, got exception as expected
-PASS: imageRect does not contain sourceRect on the left side
-PASS: imageRect does not contain sourceRect on the right side
-PASS: imageRect does not contain sourceRect on top
-PASS: imageRect does not contain sourceRect on bottom
-PASS: sourceRect is bigger than imageSource on every side
-PASS: negative size of source, imageRect does not contain sourceRect on the left side
-PASS: negative size of source, imageRect does not contain sourceRect on the right side
-PASS: negative size of source, imageRect does not contain sourceRect on top
-PASS: negative size of source, imageRect does not contain sourceRect on bottom
-PASS: negative size of source, imageRect does not contain sourceRect on every side
+PASS: imageRect does not contain sourceRect on the left side, got exception as expected
+PASS: imageRect does not contain sourceRect on the right side, got exception as expected
+PASS: imageRect does not contain sourceRect on top, got exception as expected
+PASS: imageRect does not contain sourceRect on bottom, got exception as expected
+PASS: sourceRect is bigger than imageSource on every side, got exception as expected
+PASS: negative size of source, imageRect does not contain sourceRect on the left side, got exception as expected
+PASS: negative size of source, imageRect does not contain sourceRect on the right side, got exception as expected
+PASS: negative size of source, imageRect does not contain sourceRect on top, got exception as expected
+PASS: negative size of source, imageRect does not contain sourceRect on bottom, got exception as expected
+PASS: negative size of source, imageRect does not contain sourceRect on every side, got exception as expected
Test complete.
Modified: trunk/LayoutTests/fast/canvas/drawImage-with-invalid-args.html (93358 => 93359)
--- trunk/LayoutTests/fast/canvas/drawImage-with-invalid-args.html 2011-08-18 22:19:23 UTC (rev 93358)
+++ trunk/LayoutTests/fast/canvas/drawImage-with-invalid-args.html 2011-08-18 22:23:08 UTC (rev 93359)
@@ -114,63 +114,63 @@
}
try{
ctx.drawImage(myImage, -10, 0, 52, 64, 0, 0, 20, 20);
- print("PASS: imageRect does not contain sourceRect on the left side");
+ print("FAIL");
} catch (e) {
- print("FAIL");
+ print("PASS: imageRect does not contain sourceRect on the left side, got exception as expected");
}
try{
ctx.drawImage(myImage, 10, 0, 52, 64, 0, 0, 20, 20);
- print("PASS: imageRect does not contain sourceRect on the right side");
+ print("FAIL");
} catch (e) {
- print("FAIL");
+ print("PASS: imageRect does not contain sourceRect on the right side, got exception as expected");
}
try{
ctx.drawImage(myImage, 0, -10, 52, 64, 0, 0, 20, 20);
- print("PASS: imageRect does not contain sourceRect on top");
+ print("FAIL");
} catch (e) {
- print("FAIL");
+ print("PASS: imageRect does not contain sourceRect on top, got exception as expected");
}
try{
ctx.drawImage(myImage, 0, 10, 52, 64, 0, 0, 20, 20);
- print("PASS: imageRect does not contain sourceRect on bottom");
+ print("FAIL");
} catch (e) {
- print("FAIL");
+ print("PASS: imageRect does not contain sourceRect on bottom, got exception as expected");
}
try{
ctx.drawImage(myImage, -10, -10, 72, 84, 0, 0, 20, 20);
- print("PASS: sourceRect is bigger than imageSource on every side");
+ print("FAIL");
} catch (e) {
- print("FAIL");
+ print("PASS: sourceRect is bigger than imageSource on every side, got exception as expected");
}
try{
ctx.drawImage(myImage, 42, 64, -52, -64, 0, 0, 20, 20);
- print("PASS: negative size of source, imageRect does not contain sourceRect on the left side");
+ print("FAIL");
} catch (e) {
- print("FAIL");
+ print("PASS: negative size of source, imageRect does not contain sourceRect on the left side, got exception as expected");
}
try{
ctx.drawImage(myImage, 62, 64, -52, -64, 0, 0, 20, 20);
- print("PASS: negative size of source, imageRect does not contain sourceRect on the right side");
+ print("FAIL");
} catch (e) {
- print("FAIL");
+ print("PASS: negative size of source, imageRect does not contain sourceRect on the right side, got exception as expected");
}
try{
ctx.drawImage(myImage, 52, 54, -52, -64, 0, 0, 20, 20);
- print("PASS: negative size of source, imageRect does not contain sourceRect on top");
+ print("FAIL");
} catch (e) {
- print("FAIL");
+ print("PASS: negative size of source, imageRect does not contain sourceRect on top, got exception as expected");
}
try{
ctx.drawImage(myImage, 52, 74, -52, -64, 0, 0, 20, 20);
- print("PASS: negative size of source, imageRect does not contain sourceRect on bottom");
+ print("FAIL");
} catch (e) {
- print("FAIL");
+ print("PASS: negative size of source, imageRect does not contain sourceRect on bottom, got exception as expected");
}
try{
ctx.drawImage(myImage, 62, 74, -72, -84, 0, 0, 20, 20);
- print("PASS: negative size of source, imageRect does not contain sourceRect on every side");
+ print("FAIL");
} catch (e) {
- print("FAIL");
+ print("PASS: negative size of source, imageRect does not contain sourceRect on every side, got exception as expected");
}
ctx.fillStyle = 'green';
ctx.fillRect(0,0,150,150);
Modified: trunk/LayoutTests/platform/chromium/test_expectations.txt (93358 => 93359)
--- trunk/LayoutTests/platform/chromium/test_expectations.txt 2011-08-18 22:19:23 UTC (rev 93358)
+++ trunk/LayoutTests/platform/chromium/test_expectations.txt 2011-08-18 22:23:08 UTC (rev 93359)
@@ -222,11 +222,6 @@
// We don't let anyone set status in the browser.
WONTFIX : plugins/set-status.html = TEXT
-// This test is out of date with respect to the latest version of the HTML5 spec
-// Test had to be decommissioned to fix https://bugs.webkit.org/show_bug.cgi?id=65709
-// We can re-enable the test when it gets changed upstream to become spec-compliant
-WONTFIX : canvas/philip/tests/2d.drawImage.outsidesource.html = TEXT
-
// We don't care about dashboard compatibility mode.
WONTFIX SKIP : http/tests/xmlhttprequest/default-content-type-dashboard.html = FAIL
WONTFIX SKIP : http/tests/xmlhttprequest/svg-created-by-xhr-disallowed-in-dashboard.html = FAIL
Modified: trunk/LayoutTests/platform/mac/Skipped (93358 => 93359)
--- trunk/LayoutTests/platform/mac/Skipped 2011-08-18 22:19:23 UTC (rev 93358)
+++ trunk/LayoutTests/platform/mac/Skipped 2011-08-18 22:23:08 UTC (rev 93359)
@@ -166,12 +166,6 @@
canvas/philip/tests/2d.imageData.object.round.html
canvas/philip/tests/2d.imageData.object.wrap.html
-# This canvas test is skipped because it is out of date with respect to
-# the current spec, and the fix for https://bugs.webkit.org/show_bug.cgi?id=65709
-# which complies with the current spec, makes this test fail by no longer throwing
-# exceptions that were previously expected
-canvas/philip/tests/2d.drawImage.outsidesource.html
-
# IndexedDB is not yet enabled.
storage/indexeddb
Modified: trunk/Source/WebCore/ChangeLog (93358 => 93359)
--- trunk/Source/WebCore/ChangeLog 2011-08-18 22:19:23 UTC (rev 93358)
+++ trunk/Source/WebCore/ChangeLog 2011-08-18 22:23:08 UTC (rev 93359)
@@ -1,3 +1,17 @@
+2011-08-18 Sheriff Bot <[email protected]>
+
+ Unreviewed, rolling out r93354.
+ http://trac.webkit.org/changeset/93354
+ https://bugs.webkit.org/show_bug.cgi?id=66503
+
+ "consensus was not reached" (Requested by senorblanco on
+ #webkit).
+
+ * html/canvas/CanvasRenderingContext2D.cpp:
+ (WebCore::CanvasRenderingContext2D::drawImage):
+ * platform/graphics/cg/GraphicsContextCG.cpp:
+ (WebCore::GraphicsContext::drawNativeImage):
+
2011-08-18 Sadrul Habib Chowdhury <[email protected]>
GestureRecognizer: Update how gesture-scroll works.
Modified: trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp (93358 => 93359)
--- trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp 2011-08-18 22:19:23 UTC (rev 93358)
+++ trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp 2011-08-18 22:23:08 UTC (rev 93359)
@@ -1269,12 +1269,10 @@
FloatRect normalizedDstRect = normalizeRect(dstRect);
FloatRect imageRect = FloatRect(FloatPoint(), size(image));
- if (!srcRect.width() || !srcRect.height()) {
+ if (!imageRect.contains(normalizedSrcRect) || !srcRect.width() || !srcRect.height()) {
ec = INDEX_SIZE_ERR;
return;
}
- if (!imageRect.intersects(normalizedSrcRect))
- return;
GraphicsContext* c = drawingContext();
if (!c)
@@ -1333,15 +1331,14 @@
return;
}
- if (!srcRect.width() || !srcRect.height()) {
+ if (!srcCanvasRect.contains(normalizeRect(srcRect)) || !srcRect.width() || !srcRect.height()) {
ec = INDEX_SIZE_ERR;
return;
}
ec = 0;
- FloatRect normalizedSrcRect = normalizeRect(srcRect);
- if (!srcCanvasRect.intersects(normalizedSrcRect) || !dstRect.width() || !dstRect.height())
+ if (!dstRect.width() || !dstRect.height())
return;
GraphicsContext* c = drawingContext();
@@ -1368,7 +1365,7 @@
sourceCanvas->makeRenderingResultsAvailable();
#endif
- c->drawImageBuffer(buffer, ColorSpaceDeviceRGB, normalizeRect(dstRect), normalizedSrcRect, state().m_globalComposite);
+ c->drawImageBuffer(buffer, ColorSpaceDeviceRGB, dstRect, srcRect, state().m_globalComposite);
didDraw(dstRect);
}
@@ -1415,14 +1412,12 @@
return;
FloatRect videoRect = FloatRect(FloatPoint(), size(video));
- if (!srcRect.width() || !srcRect.height()) {
+ if (!videoRect.contains(normalizeRect(srcRect)) || !srcRect.width() || !srcRect.height()) {
ec = INDEX_SIZE_ERR;
return;
}
- FloatRect normalizedSrcRect = normalizeRect(srcRect);
- FloatRect normalizedDstRect = normalizeRect(dstRect);
- if (!videoRect.intersects(normalizedSrcRect) || !dstRect.width() || !dstRect.height())
+ if (!dstRect.width() || !dstRect.height())
return;
GraphicsContext* c = drawingContext();
@@ -1434,13 +1429,13 @@
checkOrigin(video);
GraphicsContextStateSaver stateSaver(*c);
- c->clip(normalizedDstRect);
- c->translate(normalizedDstRect.x(), normalizedDstRect.y());
- c->scale(FloatSize(normalizedDstRect.width() / normalizedSrcRect.width(), normalizedDstRect.height() / normalizedSrcRect.height()));
- c->translate(-normalizedSrcRect.x(), -normalizedSrcRect.y());
+ c->clip(dstRect);
+ c->translate(dstRect.x(), dstRect.y());
+ c->scale(FloatSize(dstRect.width() / srcRect.width(), dstRect.height() / srcRect.height()));
+ c->translate(-srcRect.x(), -srcRect.y());
video->paintCurrentFrameInContext(c, IntRect(IntPoint(), size(video)));
stateSaver.restore();
- didDraw(normalizedDstRect);
+ didDraw(dstRect);
}
#endif
Modified: trunk/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp (93358 => 93359)
--- trunk/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp 2011-08-18 22:19:23 UTC (rev 93358)
+++ trunk/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp 2011-08-18 22:23:08 UTC (rev 93359)
@@ -180,20 +180,23 @@
float yScale = srcRect.height() / destRect.height();
if (shouldUseSubimage) {
FloatRect subimageRect = srcRect;
- float leftPadding = (srcRect.x() >= 0) ? (srcRect.x() - floorf(srcRect.x())) : srcRect.x();
- float topPadding = (srcRect.y() >= 0) ? (srcRect.y() - floorf(srcRect.y())) : srcRect.y();
+ float leftPadding = srcRect.x() - floorf(srcRect.x());
+ float topPadding = srcRect.y() - floorf(srcRect.y());
subimageRect.move(-leftPadding, -topPadding);
adjustedDestRect.move(-leftPadding / xScale, -topPadding / yScale);
- subimageRect.setWidth(min(ceilf(subimageRect.width() + leftPadding), CGImageGetWidth(image.get()) - subimageRect.x()));
+ subimageRect.setWidth(ceilf(subimageRect.width() + leftPadding));
adjustedDestRect.setWidth(subimageRect.width() / xScale);
- subimageRect.setHeight(min(ceilf(subimageRect.height() + topPadding), currHeight - subimageRect.y() ));
+ subimageRect.setHeight(ceilf(subimageRect.height() + topPadding));
adjustedDestRect.setHeight(subimageRect.height() / yScale);
- ASSERT(CGRectContainsRect(CGRectMake(0, 0, CGImageGetWidth(image.get()), currHeight), subimageRect));
image.adoptCF(CGImageCreateWithImageInRect(image.get(), subimageRect));
+ if (currHeight < srcRect.maxY()) {
+ ASSERT(CGImageGetHeight(image.get()) == currHeight - CGRectIntegral(srcRect).origin.y);
+ adjustedDestRect.setHeight(CGImageGetHeight(image.get()) / yScale);
+ }
} else {
adjustedDestRect.setLocation(FloatPoint(destRect.x() - srcRect.x() / xScale, destRect.y() - srcRect.y() / yScale));
adjustedDestRect.setSize(FloatSize(imageSize.width() / xScale, imageSize.height() / yScale));