Bug 20520 - GraphicsContext needs to support Gradients and Patterns part2
Summary: GraphicsContext needs to support Gradients and Patterns part2
Status: RESOLVED DUPLICATE of bug 20373
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit Misc. (show other bugs)
Version: 528+ (Nightly build)
Hardware: Mac OS X 10.5
: P2 Normal
Assignee: Eric Seidel (no email)
URL:
Keywords:
Depends on:
Blocks: 20373
  Show dependency treegraph
 
Reported: 2008-08-25 22:36 PDT by Eric Seidel (no email)
Modified: 2008-08-27 03:43 PDT (History)
1 user (show)

See Also:


Attachments
A bit further with the patch for krit (43.00 KB, patch)
2008-08-25 22:36 PDT, Eric Seidel (no email)
no flags Details | Formatted Diff | Diff
Update SVG to use new fill/stroke functions (4.25 KB, patch)
2008-08-25 22:36 PDT, Eric Seidel (no email)
no flags Details | Formatted Diff | Diff
Attempt to make SVG work with Gradient (29.53 KB, patch)
2008-08-25 22:36 PDT, Eric Seidel (no email)
no flags Details | Formatted Diff | Diff
Attempt to clean up SVG gradient code (10.78 KB, patch)
2008-08-25 22:36 PDT, Eric Seidel (no email)
no flags Details | Formatted Diff | Diff
Make Gradients not crash for <canvas> (671 bytes, patch)
2008-08-25 22:36 PDT, Eric Seidel (no email)
no flags Details | Formatted Diff | Diff
Fix SVG Gradients -- we only regress 3 tests now (3.42 KB, patch)
2008-08-26 17:58 PDT, Eric Seidel (no email)
no flags Details | Formatted Diff | Diff
Make more of the CG code cross-platform (11.97 KB, patch)
2008-08-26 17:58 PDT, Eric Seidel (no email)
no flags Details | Formatted Diff | Diff
Fix flipped fill and stroke for canvas (1.16 KB, patch)
2008-08-27 01:25 PDT, Eric Seidel (no email)
no flags Details | Formatted Diff | Diff
Fix SVG radial gradients to pass full-pservers-grad-13-b.html (1.68 KB, patch)
2008-08-27 01:26 PDT, Eric Seidel (no email)
no flags Details | Formatted Diff | Diff
Fix SVG gradients to pass full-pservers-grad-16-b.html (973 bytes, patch)
2008-08-27 01:26 PDT, Eric Seidel (no email)
no flags Details | Formatted Diff | Diff
Update a few copyright headers (7.12 KB, patch)
2008-08-27 03:43 PDT, Eric Seidel (no email)
no flags Details | Formatted Diff | Diff
Fix one more copy/paste error causing canvas tests to fail (3.25 KB, patch)
2008-08-27 03:43 PDT, Eric Seidel (no email)
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Eric Seidel (no email) 2008-08-25 22:36:03 PDT
This is just a place for me to post patches for 20373 without turning that bug into a bajillion patches long.
Comment 1 Eric Seidel (no email) 2008-08-25 22:36:37 PDT
Created attachment 22991 [details]
A bit further with the patch for krit

 WebCore/WebCore.xcodeproj/project.pbxproj          |    4 +
 .../js/JSCanvasRenderingContext2DCustom.cpp        |    4 +-
 WebCore/css/CSSGradientValue.cpp                   |   10 +-
 WebCore/css/CSSGradientValue.h                     |    2 +-
 WebCore/html/CanvasGradient.cpp                    |    4 +-
 WebCore/html/CanvasGradient.h                      |    8 +-
 WebCore/html/CanvasPattern.cpp                     |    2 +-
 WebCore/html/CanvasPattern.h                       |    6 +-
 WebCore/html/CanvasRenderingContext2D.cpp          |  195 +-------------------
 WebCore/html/CanvasRenderingContext2D.h            |    6 -
 WebCore/html/CanvasStyle.cpp                       |    6 +
 WebCore/html/CanvasStyle.h                         |    3 +-
 WebCore/platform/graphics/GeneratedImage.h         |   10 +-
 WebCore/platform/graphics/Generator.h              |    4 +-
 WebCore/platform/graphics/Gradient.h               |   14 ++-
 WebCore/platform/graphics/GraphicsContext.cpp      |   38 +++-
 WebCore/platform/graphics/GraphicsContext.h        |   38 +++--
 WebCore/platform/graphics/GraphicsContextPrivate.h |   33 +++-
 WebCore/platform/graphics/Path.h                   |    8 +-
 WebCore/platform/graphics/Pattern.h                |   15 +-
 .../graphics/cairo/GraphicsContextCairo.cpp        |   17 ++-
 WebCore/platform/graphics/cg/GraphicsContextCG.cpp |  107 ++++++++++--
 WebCore/platform/graphics/qt/GraphicsContextQt.cpp |   28 ++--
 WebCore/platform/graphics/wx/GraphicsContextWx.cpp |   16 +-
 24 files changed, 281 insertions(+), 297 deletions(-)
Comment 2 Eric Seidel (no email) 2008-08-25 22:36:40 PDT
Created attachment 22992 [details]
Update SVG to use new fill/stroke functions

 .../JavaScriptCore.xcodeproj/project.pbxproj       |    3 --
 WebCore/svg/graphics/SVGPaintServer.h              |    7 ----
 WebCore/svg/graphics/cg/SVGPaintServerCg.cpp       |   32 +------------------
 .../svg/graphics/cg/SVGPaintServerGradientCg.cpp   |   14 ++------
 4 files changed, 6 insertions(+), 50 deletions(-)
Comment 3 Eric Seidel (no email) 2008-08-25 22:36:43 PDT
Created attachment 22993 [details]
Attempt to make SVG work with Gradient

 WebCore/platform/graphics/Gradient.h               |    2 +-
 WebCore/platform/graphics/GraphicsContext.cpp      |   30 ++++
 WebCore/platform/graphics/GraphicsContext.h        |    1 +
 WebCore/platform/graphics/GraphicsTypes.h          |    2 +-
 WebCore/platform/graphics/cg/GraphicsContextCG.cpp |   78 +++++++---
 WebCore/rendering/SVGRenderTreeAsText.cpp          |    1 -
 WebCore/svg/GradientAttributes.h                   |   14 ++-
 WebCore/svg/LinearGradientAttributes.h             |   15 ++-
 WebCore/svg/RadialGradientAttributes.h             |   15 ++-
 WebCore/svg/SVGGradientElement.cpp                 |    2 +-
 WebCore/svg/SVGLinearGradientElement.cpp           |    9 +-
 WebCore/svg/SVGLinearGradientElement.h             |    2 -
 WebCore/svg/SVGRadialGradientElement.cpp           |    5 +-
 WebCore/svg/graphics/SVGPaintServer.h              |    2 +-
 WebCore/svg/graphics/SVGPaintServerGradient.cpp    |   17 +--
 WebCore/svg/graphics/SVGPaintServerGradient.h      |   39 +----
 .../svg/graphics/cg/SVGPaintServerGradientCg.cpp   |  163 ++------------------
 17 files changed, 156 insertions(+), 241 deletions(-)
Comment 4 Eric Seidel (no email) 2008-08-25 22:36:46 PDT
Created attachment 22994 [details]
Attempt to clean up SVG gradient code

 WebCore/platform/graphics/FloatSize.h              |    6 +
 WebCore/svg/graphics/SVGPaintServerGradient.h      |    3 -
 .../svg/graphics/cg/SVGPaintServerGradientCg.cpp   |  164 ++++++++++----------
 3 files changed, 90 insertions(+), 83 deletions(-)
Comment 5 Eric Seidel (no email) 2008-08-25 22:36:48 PDT
Created attachment 22995 [details]
Make Gradients not crash for <canvas>

 WebCore/platform/graphics/cg/GraphicsContextCG.cpp |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Comment 6 Dirk Schulze 2008-08-25 23:04:49 PDT

*** This bug has been marked as a duplicate of 20373 ***
Comment 7 Eric Seidel (no email) 2008-08-26 17:58:02 PDT
Created attachment 23011 [details]
Fix SVG Gradients -- we only regress 3 tests now

 WebCore/platform/graphics/cg/GraphicsContextCG.cpp |    2 +-
 WebCore/svg/RadialGradientAttributes.h             |    6 +++---
 .../svg/graphics/cg/SVGPaintServerGradientCg.cpp   |   20 +++++++++++++-------
 3 files changed, 17 insertions(+), 11 deletions(-)
Comment 8 Eric Seidel (no email) 2008-08-26 17:58:04 PDT
Created attachment 23012 [details]
Make more of the CG code cross-platform

 WebCore/svg/graphics/cg/CgSupport.cpp              |   93 +++++++++++---------
 WebCore/svg/graphics/cg/CgSupport.h                |   16 ++--
 WebCore/svg/graphics/cg/RenderPathCg.cpp           |   23 ++---
 .../svg/graphics/cg/SVGPaintServerGradientCg.cpp   |    5 +-
 WebCore/svg/graphics/cg/SVGResourceClipperCg.cpp   |   49 +++++------
 5 files changed, 90 insertions(+), 96 deletions(-)
Comment 9 Dirk Schulze 2008-08-26 23:26:56 PDT
Tested it on Cairo. Only copied the whole code of Cg to Cairo. Works great. I had to modify applyStrokeStyleToContext() a bit but thats all. applyStrokeStyleToContext(), makeMapBetweenRects(), handleBoundingBoxModeAndGradientTransformation() and renderPath() can be moved to a more global class.

Only problem: We have to reset the CTM after drawing a gradient with boundingbox, otherwise you get a very big stroke if you apply a stroke to the shape (At least in Cairo).
Comment 10 Eric Seidel (no email) 2008-08-27 01:25:59 PDT
Created attachment 23017 [details]
Fix flipped fill and stroke for canvas

 WebCore/html/CanvasStyle.cpp |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)
Comment 11 Eric Seidel (no email) 2008-08-27 01:26:01 PDT
Created attachment 23018 [details]
Fix SVG radial gradients to pass full-pservers-grad-13-b.html

 WebCore/svg/RadialGradientAttributes.h   |   17 ++++++++++++++++-
 WebCore/svg/SVGRadialGradientElement.cpp |    1 +
 2 files changed, 17 insertions(+), 1 deletions(-)
Comment 12 Eric Seidel (no email) 2008-08-27 01:26:04 PDT
Created attachment 23019 [details]
Fix SVG gradients to pass full-pservers-grad-16-b.html

 WebCore/svg/GradientAttributes.h |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)
Comment 13 Eric Seidel (no email) 2008-08-27 01:41:09 PDT
http://www.w3.org/Graphics/SVG/Test/20061213/htmlEmbedHarness/full-pservers-grad-17-b.html is still broken even with these patches.  I'm not sure why it's broken.  I'm also not sure I care.  As soon as I fix the <canvas> stuff to work with patterns, I plan to break out the <canvas> pieces of these patches into a coherent patch and post it for review.  The SVG stuff can come later.
Comment 14 Eric Seidel (no email) 2008-08-27 02:28:56 PDT
I ran this canvas test suite I found online:
http://philip.html5.org/tests/canvas/suite/tests/

http://philip.html5.org/tests/canvas/suite/tests/reportgen.html?10000,0

And this is the difference in test output result I get between Safari 4.0dp and Safari 4.0dp + my patched canvas:

I/we need to investigate each of the new fails needs to be investigated before I'm ready to post this patch for review.

I guess more interesting would be to compare before this patch and after this patch, instead of Safari 4.0dp vs. TOT + this patch.

--- old_canvas_status.txt	2008-08-27 02:22:54.000000000 -0700
+++ new_canvas_status.txt	2008-08-27 02:21:52.000000000 -0700
@@ -1,4 +1,4 @@
-- ua: "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_4; en-us) AppleWebKit/526.11 (KHTML, like Gecko) Version/4.0dp1 Safari/526.11.2"
+- ua: "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_4; en-us) AppleWebKit/528.2+ (KHTML, like Gecko) Version/4.0dp1 Safari/526.11.2"
   results:
   - id: fallback.basic
     status: PASS
@@ -20,7 +20,7 @@
     notes: '%3Cli%3EPassed%3C/li%3E'
   - id: type.prototype
     status: FAIL
-    notes: '%3Cli%3EFailed%20assertion%3A%20window.HTMLCanvasElement.prototype%3C/li%3E%3Cli%3EFailed%20assertion%3A%20window.HTMLCanvasElement.prototype%3C/li%3E%3Cli%3EAborted%20with%20exception%3A%20Undefined%20value%3C/li%3E'
+    notes: '%3Cli%3EFailed%20assertion%3A%20window.HTMLCanvasElement.prototype%3C/li%3E%3Cli%3EFailed%20assertion%3A%20window.HTMLCanvasElement.prototype%3C/li%3E%3Cli%3EAborted%20with%20exception%3A%20Result%20of%20expression%20%27window.HTMLCanvasElement.prototype%27%20%5Bundefined%5D%20is%20not%20an%20object.%3C/li%3E'
   - id: type.replace
     status: PASS
     notes: '%3Cli%3EPassed%3C/li%3E'
@@ -118,8 +118,8 @@
     status: PASS
     notes: '%3Cli%3EPassed%3C/li%3E'
   - id: initial.reset.gradient
-    status: PASS
-    notes: '%3Cli%3EPassed%3C/li%3E'
+    status: FAIL
+    notes: '%3Cli%3EFailed%20assertion%3A%20got%20pixel%20%5B255%2C0%2C0%2C255%5D%20at%20%2850%2C25%29%2C%20expected%20%5B0%2C255%2C0%2C255%5D%3C/li%3E'
   - id: initial.reset.pattern
     status: PASS
     notes: '%3Cli%3EPassed%3C/li%3E'
@@ -175,38 +175,38 @@
     status: PASS
     notes: '%3Cli%3EPassed%3C/li%3E'
   - id: security.drawImage.image
-    status: PASS
-    notes: '%3Cli%3EPassed%3C/li%3E'
+    status: FAIL
+    notes: '%3Cli%3EFailed%20assertion%3A%20should%20throw%20exception%3A%20canvas.toDataURL%28%29%3C/li%3E%3Cli%3EFailed%20assertion%3A%20should%20throw%20exception%3A%20ctx.getImageData%280%2C%200%2C%201%2C%201%29%3C/li%3E'
   - id: security.drawImage.canvas
-    status: PASS
-    notes: '%3Cli%3EPassed%3C/li%3E'
+    status: FAIL
+    notes: '%3Cli%3EFailed%20assertion%3A%20should%20throw%20exception%3A%20canvas.toDataURL%28%29%3C/li%3E%3Cli%3EFailed%20assertion%3A%20should%20throw%20exception%3A%20ctx.getImageData%280%2C%200%2C%201%2C%201%29%3C/li%3E'
   - id: security.pattern.create
     status: PASS
     notes: '%3Cli%3EPassed%3C/li%3E'
   - id: security.pattern.cross
-    status: PASS
-    notes: '%3Cli%3EPassed%3C/li%3E'
+    status: FAIL
+    notes: '%3Cli%3EAborted%20with%20exception%3A%20INVALID_STATE_ERR%3A%20DOM%20Exception%2011%3C/li%3E'
   - id: security.pattern.canvas.timing
     status: PASS
     notes: '%3Cli%3EPassed%3C/li%3E'
   - id: security.pattern.image.fillStyle
-    status: PASS
-    notes: '%3Cli%3EPassed%3C/li%3E'
+    status: FAIL
+    notes: '%3Cli%3EAborted%20with%20exception%3A%20INVALID_STATE_ERR%3A%20DOM%20Exception%2011%3C/li%3E'
   - id: security.pattern.canvas.fillStyle
     status: FAIL
     notes: '%3Cli%3EFailed%20assertion%3A%20should%20throw%20exception%3A%20canvas.toDataURL%28%29%3C/li%3E%3Cli%3EFailed%20assertion%3A%20should%20throw%20exception%3A%20ctx.getImageData%280%2C%200%2C%201%2C%201%29%3C/li%3E'
   - id: security.pattern.image.strokeStyle
-    status: PASS
-    notes: '%3Cli%3EPassed%3C/li%3E'
+    status: FAIL
+    notes: '%3Cli%3EAborted%20with%20exception%3A%20INVALID_STATE_ERR%3A%20DOM%20Exception%2011%3C/li%3E'
   - id: security.pattern.canvas.strokeStyle
-    status: PASS
-    notes: '%3Cli%3EPassed%3C/li%3E'
+    status: FAIL
+    notes: '%3Cli%3EFailed%20assertion%3A%20should%20throw%20exception%3A%20canvas.toDataURL%28%29%3C/li%3E%3Cli%3EFailed%20assertion%3A%20should%20throw%20exception%3A%20ctx.getImageData%280%2C%200%2C%201%2C%201%29%3C/li%3E'
   - id: security.dataURI
     status: FAIL
     notes: '%3Cli%3EAborted%20with%20exception%3A%20SECURITY_ERR%3A%20DOM%20Exception%2018%3C/li%3E'
   - id: security.reset
-    status: PASS
-    notes: '%3Cli%3EPassed%3C/li%3E'
+    status: FAIL
+    notes: '%3Cli%3EFailed%20assertion%3A%20should%20throw%20exception%3A%20canvas.toDataURL%28%29%3C/li%3E%3Cli%3EFailed%20assertion%3A%20should%20throw%20exception%3A%20canvas.toDataURL%28%29%3C/li%3E'
   - id: 2d.getcontext.exists
     status: PASS
     notes: '%3Cli%3EPassed%3C/li%3E'
@@ -218,7 +218,7 @@
     notes: '%3Cli%3EPassed%3C/li%3E'
   - id: 2d.type.prototype
     status: FAIL
-    notes: '%3Cli%3EFailed%20assertion%3A%20window.CanvasRenderingContext2D.prototype%3C/li%3E%3Cli%3EFailed%20assertion%3A%20window.CanvasRenderingContext2D.prototype%3C/li%3E%3Cli%3EAborted%20with%20exception%3A%20Undefined%20value%3C/li%3E'
+    notes: '%3Cli%3EFailed%20assertion%3A%20window.CanvasRenderingContext2D.prototype%3C/li%3E%3Cli%3EFailed%20assertion%3A%20window.CanvasRenderingContext2D.prototype%3C/li%3E%3Cli%3EAborted%20with%20exception%3A%20Result%20of%20expression%20%27window.CanvasRenderingContext2D.prototype%27%20%5Bundefined%5D%20is%20not%20an%20object.%3C/li%3E'
   - id: 2d.type.replace
     status: PASS
     notes: '%3Cli%3EPassed%3C/li%3E'
@@ -362,13 +362,13 @@
     notes: '%3Cli%3EPassed%3C/li%3E'
   - id: 2d.transformation.setTransform.skewed
     status: FAIL
-    notes: '%3Cli%3EAborted%20with%20exception%3A%20Value%20undefined%20does%20not%20allow%20function%20calls.%3C/li%3E'
+    notes: '%3Cli%3EAborted%20with%20exception%3A%20Result%20of%20expression%20%27ctx.setTransform%27%20%5Bundefined%5D%20is%20not%20a%20function.%3C/li%3E'
   - id: 2d.transformation.setTransform.multiple
     status: FAIL
-    notes: '%3Cli%3EAborted%20with%20exception%3A%20Value%20undefined%20does%20not%20allow%20function%20calls.%3C/li%3E'
+    notes: '%3Cli%3EAborted%20with%20exception%3A%20Result%20of%20expression%20%27ctx.setTransform%27%20%5Bundefined%5D%20is%20not%20a%20function.%3C/li%3E'
   - id: 2d.transformation.setTransform.nonfinite
     status: FAIL
-    notes: '%3Cli%3EAborted%20with%20exception%3A%20Value%20undefined%20does%20not%20allow%20function%20calls.%3C/li%3E'
+    notes: '%3Cli%3EAborted%20with%20exception%3A%20Result%20of%20expression%20%27ctx.setTransform%27%20%5Bundefined%5D%20is%20not%20a%20function.%3C/li%3E'
   - id: 2d.composite.globalAlpha.range
     status: PASS
     notes: '%3Cli%3EPassed%3C/li%3E'
@@ -460,17 +460,17 @@
     status: PASS
     notes: '%3Cli%3EPassed%3C/li%3E'
   - id: 2d.composite.image.source-over
-    status: PASS
-    notes: '%3Cli%3EPassed%3C/li%3E'
+    status: FAIL
+    notes: '%3Cli%3EFailed%20assertion%3A%20got%20pixel%20%5B0%2C255%2C255%2C127%5D%20at%20%2850%2C25%29%2C%20expected%20%5B218%2C255%2C36%2C223%5D%20+/-%205%3C/li%3E'
   - id: 2d.composite.image.destination-over
-    status: PASS
-    notes: '%3Cli%3EPassed%3C/li%3E'
+    status: FAIL
+    notes: '%3Cli%3EFailed%20assertion%3A%20got%20pixel%20%5B0%2C255%2C255%2C127%5D%20at%20%2850%2C25%29%2C%20expected%20%5B109%2C255%2C145%2C223%5D%20+/-%205%3C/li%3E'
   - id: 2d.composite.image.source-in
     status: PASS
     notes: '%3Cli%3EPassed%3C/li%3E'
   - id: 2d.composite.image.destination-in
-    status: PASS
-    notes: '%3Cli%3EPassed%3C/li%3E'
+    status: FAIL
+    notes: '%3Cli%3EFailed%20assertion%3A%20got%20pixel%20%5B0%2C255%2C255%2C127%5D%20at%20%2850%2C25%29%2C%20expected%20%5B0%2C255%2C255%2C95%5D%20+/-%205%3C/li%3E'
   - id: 2d.composite.image.source-out
     status: PASS
     notes: '%3Cli%3EPassed%3C/li%3E'
@@ -478,38 +478,38 @@
     status: PASS
     notes: '%3Cli%3EPassed%3C/li%3E'
   - id: 2d.composite.image.source-atop
-    status: PASS
-    notes: '%3Cli%3EPassed%3C/li%3E'
+    status: FAIL
+    notes: '%3Cli%3EFailed%20assertion%3A%20got%20pixel%20%5B0%2C255%2C255%2C127%5D%20at%20%2850%2C25%29%2C%20expected%20%5B191%2C255%2C63%2C127%5D%20+/-%205%3C/li%3E'
   - id: 2d.composite.image.destination-atop
-    status: PASS
-    notes: '%3Cli%3EPassed%3C/li%3E'
+    status: FAIL
+    notes: '%3Cli%3EFailed%20assertion%3A%20got%20pixel%20%5B0%2C255%2C255%2C127%5D%20at%20%2850%2C25%29%2C%20expected%20%5B127%2C255%2C127%2C191%5D%20+/-%205%3C/li%3E'
   - id: 2d.composite.image.xor
     status: PASS
     notes: '%3Cli%3EPassed%3C/li%3E'
   - id: 2d.composite.image.copy
-    status: PASS
-    notes: '%3Cli%3EPassed%3C/li%3E'
+    status: FAIL
+    notes: '%3Cli%3EFailed%20assertion%3A%20got%20pixel%20%5B0%2C255%2C255%2C127%5D%20at%20%2850%2C25%29%2C%20expected%20%5B255%2C255%2C0%2C191%5D%20+/-%205%3C/li%3E'
   - id: 2d.composite.image.lighter
-    status: PASS
-    notes: '%3Cli%3EPassed%3C/li%3E'
+    status: FAIL
+    notes: '%3Cli%3EFailed%20assertion%3A%20got%20pixel%20%5B0%2C255%2C255%2C127%5D%20at%20%2850%2C25%29%2C%20expected%20%5B191%2C255%2C127%2C255%5D%20+/-%205%3C/li%3E'
   - id: 2d.composite.canvas.source-over
-    status: PASS
-    notes: '%3Cli%3EPassed%3C/li%3E'
+    status: FAIL
+    notes: '%3Cli%3EFailed%20assertion%3A%20got%20pixel%20%5B0%2C255%2C255%2C127%5D%20at%20%2850%2C25%29%2C%20expected%20%5B218%2C255%2C36%2C223%5D%20+/-%205%3C/li%3E'
   - id: 2d.composite.canvas.destination-over
     status: FAIL
     notes: '%3Cli%3EFailed%20assertion%3A%20got%20pixel%20%5B219%2C255%2C35%2C222%5D%20at%20%2850%2C25%29%2C%20expected%20%5B109%2C255%2C145%2C223%5D%20+/-%205%3C/li%3E'
   - id: 2d.composite.canvas.source-in
     status: FAIL
-    notes: '%3Cli%3EFailed%20assertion%3A%20got%20pixel%20%5B219%2C255%2C35%2C222%5D%20at%20%2850%2C25%29%2C%20expected%20%5B255%2C255%2C0%2C95%5D%20+/-%205%3C/li%3E'
+    notes: '%3Cli%3EFailed%20assertion%3A%20got%20pixel%20%5B0%2C255%2C255%2C127%5D%20at%20%2850%2C25%29%2C%20expected%20%5B255%2C255%2C0%2C95%5D%20+/-%205%3C/li%3E'
   - id: 2d.composite.canvas.destination-in
     status: FAIL
-    notes: '%3Cli%3EFailed%20assertion%3A%20got%20pixel%20%5B219%2C255%2C35%2C222%5D%20at%20%2850%2C25%29%2C%20expected%20%5B0%2C255%2C255%2C95%5D%20+/-%205%3C/li%3E'
+    notes: '%3Cli%3EFailed%20assertion%3A%20got%20pixel%20%5B0%2C255%2C255%2C127%5D%20at%20%2850%2C25%29%2C%20expected%20%5B0%2C255%2C255%2C95%5D%20+/-%205%3C/li%3E'
   - id: 2d.composite.canvas.source-out
     status: FAIL
     notes: '%3Cli%3EFailed%20assertion%3A%20got%20pixel%20%5B219%2C255%2C35%2C222%5D%20at%20%2850%2C25%29%2C%20expected%20%5B255%2C255%2C0%2C95%5D%20+/-%205%3C/li%3E'
   - id: 2d.composite.canvas.destination-out
     status: FAIL
-    notes: '%3Cli%3EFailed%20assertion%3A%20got%20pixel%20%5B219%2C255%2C35%2C222%5D%20at%20%2850%2C25%29%2C%20expected%20%5B0%2C255%2C255%2C31%5D%20+/-%205%3C/li%3E'
+    notes: '%3Cli%3EFailed%20assertion%3A%20got%20pixel%20%5B0%2C255%2C255%2C127%5D%20at%20%2850%2C25%29%2C%20expected%20%5B0%2C255%2C255%2C31%5D%20+/-%205%3C/li%3E'
   - id: 2d.composite.canvas.source-atop
     status: FAIL
     notes: '%3Cli%3EFailed%20assertion%3A%20got%20pixel%20%5B219%2C255%2C35%2C222%5D%20at%20%2850%2C25%29%2C%20expected%20%5B191%2C255%2C63%2C127%5D%20+/-%205%3C/li%3E'
@@ -521,10 +521,10 @@
     notes: '%3Cli%3EFailed%20assertion%3A%20got%20pixel%20%5B219%2C255%2C35%2C222%5D%20at%20%2850%2C25%29%2C%20expected%20%5B191%2C255%2C63%2C127%5D%20+/-%205%3C/li%3E'
   - id: 2d.composite.canvas.copy
     status: FAIL
-    notes: '%3Cli%3EFailed%20assertion%3A%20got%20pixel%20%5B219%2C255%2C35%2C222%5D%20at%20%2850%2C25%29%2C%20expected%20%5B255%2C255%2C0%2C191%5D%20+/-%205%3C/li%3E'
+    notes: '%3Cli%3EFailed%20assertion%3A%20got%20pixel%20%5B0%2C255%2C255%2C127%5D%20at%20%2850%2C25%29%2C%20expected%20%5B255%2C255%2C0%2C191%5D%20+/-%205%3C/li%3E'
   - id: 2d.composite.canvas.lighter
     status: FAIL
-    notes: '%3Cli%3EFailed%20assertion%3A%20got%20pixel%20%5B219%2C255%2C35%2C222%5D%20at%20%2850%2C25%29%2C%20expected%20%5B191%2C255%2C127%2C255%5D%20+/-%205%3C/li%3E'
+    notes: '%3Cli%3EFailed%20assertion%3A%20got%20pixel%20%5B0%2C255%2C255%2C127%5D%20at%20%2850%2C25%29%2C%20expected%20%5B191%2C255%2C127%2C255%5D%20+/-%205%3C/li%3E'
   - id: 2d.composite.uncovered.fill.source-in
     status: FAIL
     notes: '%3Cli%3EFailed%20assertion%3A%20got%20pixel%20%5B0%2C255%2C0%2C127%5D%20at%20%2850%2C25%29%2C%20expected%20%5B0%2C0%2C0%2C0%5D%20+/-%205%3C/li%3E'
Comment 15 Eric Seidel (no email) 2008-08-27 03:40:18 PDT
Hot!  I've fixed the issues in an upcoming patch.  We now supposedly pass 3 more tests than the last nightly did.  Although security.reset fails.  Investigating still.

http://philip.html5.org/tests/canvas/suite/tests/
Comment 16 Eric Seidel (no email) 2008-08-27 03:41:11 PDT
security.reset actually passes when run individually.  I think it's a timing issue.
http://philip.html5.org/tests/canvas/suite/tests/security.reset.html
Comment 17 Eric Seidel (no email) 2008-08-27 03:43:16 PDT
Created attachment 23020 [details]
Update a few copyright headers

 WebCore/html/CanvasRenderingContext2D.cpp          |    1 +
 WebCore/html/CanvasStyle.cpp                       |    1 +
 WebCore/platform/graphics/FloatSize.h              |    1 +
 WebCore/platform/graphics/cg/GraphicsContextCG.cpp |    1 +
 WebCore/svg/GradientAttributes.h                   |    3 +--
 WebCore/svg/LinearGradientAttributes.h             |    1 +
 WebCore/svg/RadialGradientAttributes.h             |    3 +--
 WebCore/svg/SVGLinearGradientElement.cpp           |    3 +--
 WebCore/svg/SVGRadialGradientElement.cpp           |    3 +--
 WebCore/svg/graphics/cg/CgSupport.cpp              |    1 +
 WebCore/svg/graphics/cg/CgSupport.h                |    1 +
 WebCore/svg/graphics/cg/SVGPaintServerCg.cpp       |    3 +--
 .../svg/graphics/cg/SVGPaintServerGradientCg.cpp   |    3 +--
 13 files changed, 13 insertions(+), 12 deletions(-)
Comment 18 Eric Seidel (no email) 2008-08-27 03:43:18 PDT
Created attachment 23021 [details]
Fix one more copy/paste error causing canvas tests to fail

 WebCore/platform/graphics/cg/GraphicsContextCG.cpp |   36 +++++++++----------
 1 files changed, 17 insertions(+), 19 deletions(-)