Bug 25403

Summary: Gradient Fill of text not positioned properly
Product: WebKit Reporter: Jeff Schiller <jeffschiller>
Component: SVGAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: gsherloc, krit
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Mac   
OS: OS X 10.5   
Bug Depends on: 23881, 25431    
Bug Blocks:    
Attachments:
Description Flags
Test Case showing the problem
none
Add text gradient test to cover simon.fraser: review+

Description Jeff Schiller 2009-04-25 20:01:27 PDT
The attached test case shows a bug in WebKit:  The green text should almost completely obscure the red text.  However, the red text is visible in Safari 4 at a different size and position than the green text.

Note that the red text is actually a gradient.  If the gradient was replaced with a solid color (fill="red"), then this problem is no longer present.

This may be related to Bug 25402.
Comment 1 Jeff Schiller 2009-04-25 20:01:59 PDT
Created attachment 29795 [details]
Test Case showing the problem
Comment 2 Gavin Sherlock 2009-04-26 12:44:44 PDT
I don't see a problem with the test case in r42858
Comment 3 Dirk Schulze 2009-04-26 23:05:13 PDT
*** Bug 25402 has been marked as a duplicate of this bug. ***
Comment 4 Dirk Schulze 2009-04-26 23:08:55 PDT
The wrong behavior is caused by wrong values of the drawing rect. eseidel improved boundingBox's in the last days. It should work now. Can you test it again with the latest nightly please?
Comment 5 Eric Seidel (no email) 2009-04-28 15:03:02 PDT
Wow.  This is much better after http://trac.webkit.org/changeset/42950.

Would you consider this fixed, Jeff?  Or do we have more work to do here?

Our rendering looks as good (or better) than FF and Opera.
Comment 6 Eric Seidel (no email) 2009-04-28 15:10:12 PDT
Created attachment 29866 [details]
Add text gradient test to cover

 5 files changed, 43 insertions(+), 0 deletions(-)
Comment 7 Eric Seidel (no email) 2009-04-28 15:14:06 PDT
Thanks for the awesome test case.

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	A	LayoutTests/platform/mac/svg/text/text-gradient-positioning-expected.checksum
	A	LayoutTests/platform/mac/svg/text/text-gradient-positioning-expected.png
	A	LayoutTests/platform/mac/svg/text/text-gradient-positioning-expected.txt
	A	LayoutTests/svg/text/text-gradient-positioning.svg
Committed r42966

We might still be using repaintRectInLocalCoordinates() in a few places where we should be using objectBoundingBox(), so related test cases could fail.  But this nice test case you provided "passes" now, as far as I can tell.

Thanks for the great test case!  (You'll see that I changed the text a little to make it more self-documenting, but otherwise landed it as-is.)
Comment 8 Jeff Schiller 2009-04-28 16:10:06 PDT
Looks great to me in nightly from 4/25.  Thanks!