Bug 6620

Summary: SVG shows up blank in WebKit+SVG
Product: WebKit Reporter: Eric Seidel (no email) <eric>
Component: SVGAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: gavin.sharp
Priority: P2 Keywords: HasReduction
Version: 420+   
Hardware: Mac   
OS: OS X 10.4   
URL: http://www.theculture.org/rich/sharpblue/images/firsttransmission.svg
Bug Depends on:    
Bug Blocks: 6774    
Attachments:
Description Flags
Simple Test Case none

Description Eric Seidel (no email) 2006-01-17 14:57:01 PST
SVG shows up blank in WebKit+SVG

http://www.theculture.org/rich/sharpblue/images/firsttransmission.svg
Comment 1 Eric Seidel (no email) 2006-01-17 15:03:55 PST
There are lots of these in the console:

CGAffineTransformInvert: singular matrix.
CGAffineTransformInvert: singular matrix.
CGAffineTransformInvert: singular matrix.
CGAffineTransformInvert: singular matrix.

I expect that the width/height of the outermost <svg> are being improperly calculated in the default case.  
This could lead to the ViewBox being invalid, thus producing an invalid viewbox to viewport trasnform.
Comment 2 Eric Seidel (no email) 2006-01-22 02:30:12 PST
*** Bug 6579 has been marked as a duplicate of this bug. ***
Comment 3 Eric Seidel (no email) 2006-01-25 10:46:58 PST
This bug also affects google.
http://code.google.com/webstats/2005-12/pages.html
Comment 4 Eric Seidel (no email) 2006-01-25 10:58:53 PST
Created attachment 5950 [details]
Simple Test Case
Comment 5 Eric Seidel (no email) 2006-01-25 10:59:35 PST
I would argue this is our highest priority SVG bug at this point.  Many many SVGs fail because of this simple bug.
Comment 6 Eric Seidel (no email) 2006-01-26 02:37:52 PST
No code changes required :)

Index: css/svg.css
===================================================================
--- css/svg.css (revision 12385)
+++ css/svg.css (working copy)
@@ -37,6 +37,11 @@
     overflow: visible !important
 }
 
+svg {
+    width: 100%;
+    height: 100%;
+}
+
 svg, symbol, marker, pattern, foreignObject {
     overflow: hidden
 }