WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED WONTFIX
5246
WebKit can't load svgz files from disk
https://bugs.webkit.org/show_bug.cgi?id=5246
Summary
WebKit can't load svgz files from disk
Eric Seidel (no email)
Reported
2005-10-03 01:09:57 PDT
WebKit+SVG does not handle svgz properly
http://www.svgmaker.com/examples.htm
has several examples of SVGZ content. Somehow we need to detect that the content is gzip'd and stick a decoder in place to decode it. I'm not sure how we'll do this, perhaps recognize the gzip header...
Attachments
First pass at svgz support
(11.64 KB, patch)
2005-10-10 14:04 PDT
,
Eric Seidel (no email)
darin
: review-
Details
Formatted Diff
Diff
A test case for LayoutTests
(216 bytes, image/svg+xml)
2009-06-03 14:28 PDT
,
Eric Seidel (no email)
no flags
Details
View All
Add attachment
proposed patch, testcase, etc.
Eric Seidel (no email)
Comment 1
2005-10-03 01:26:39 PDT
Another example:
http://www.pandimaniacs.com/index.php?mode=svg&lang=en
this one uses an object tag...
Eric Seidel (no email)
Comment 2
2005-10-08 03:06:57 PDT
So my first look at this leads me to believe that this is likely best done down in Foundation in NSURL. NSURL already knows how to decode gzip streams before passing them on to the client, it just would need to be made aware of SVG. However, that's not a very good option for the open source community, so we may need to find some sort of temporary solution until foundation can be enhanced and an updated foundation can be made available.
Eric Seidel (no email)
Comment 3
2005-10-10 14:04:31 PDT
Created
attachment 4300
[details]
First pass at svgz support This still seems to have some sort of race condition, which often causes the load to fail. I'm not yet sure why.
Eric Seidel (no email)
Comment 4
2005-10-10 14:50:06 PDT
Comment on
attachment 4300
[details]
First pass at svgz support A patch from this weekend.... Basically this hacks the KHTMLPart to try to decode any data in the main resource that looks like gzip. I'm not sure this is the "best" way to do this, but it works, and is a starting point for discussion. There seems to also still be a race condition with the load, wherby sometimes the document parse fails. I'm probably getting an early 0 length write, and should likely be keying my idea of "this is the first write" and thus GZipInflater construction off of something other than the presence or absense of d->m_decoder
Darin Adler
Comment 5
2005-10-11 08:42:46 PDT
Comment on
attachment 4300
[details]
First pass at svgz support I think this should be done in the decoder, not in the part.
Eric Seidel (no email)
Comment 6
2005-10-12 02:21:12 PDT
(In reply to
comment #5
)
> (From update of
attachment 4300
[details]
[edit]) > I think this should be done in the decoder, not in the part. >
My concern with making this part of the Decoder had been "inheritance", since Decoders are shared between parts (child parts inherit their parent's Decoders sometimes). I also had concerns about write() calls being passed through the decoder and gunziped unexpectedly. It's possible for me to make the code part of the Decoder class, but not have the execution part of the decode() method... This solution would still require nearly identical changes to KHTMLPart, however instead of creating a GZipInflater object, I would set a bool somewhere, and call "inflate" on the decoder, before passing the inflated string back to the decoder (a second time) for decoding (in decode ()). So given those concerns, would you still like this to be part of Decoder? And if so, would you be OK with it being a separate method "inflate()" on Decoder, or were you suggesting I make this part of "decode()"?
Nicholas Shanks
Comment 7
2005-10-12 07:51:54 PDT
The error is actually on the website, not here. It is not sending the correct Content-Encoding header. See
http://wiki.mozilla.org/SVG:MIMEType
for info, see
http://web.nickshanks.com/safari/tiger.svgz
for an example that works fine in Safari. The non gzipped version is at tiger.svg in the same directory. Now another bug is that DrawTest and Safari don't accept gzipped svg documents dragged onto their icons or make them selectable from the open dialog.
Nicholas Shanks
Comment 8
2005-10-12 08:14:40 PDT
I just want to clarify: I recommend NOT 'fixing' this. Safari is a significant browser for people who care about standards (and thus are using SVG). When Safari ships with SVG support, SVG authors will test against it. Because that number is so small at the moment it is best to force them into the correct practice of specifying a Content-Encoding header for gzipped documents. If you do the wrong thing here, by accepting mis‐specified encodings and trying to work around it, you are HURTING the future of the web. Safari in it's current state handles gzipped SVG just fine when the document is sent with the correct HTTP headers. There is nothing that needs fixing.
Eric Seidel (no email)
Comment 9
2005-10-14 13:14:13 PDT
Darin and I discussed this. WinIE already allows this for the local html case... we think that although it might be a bit "non-standard" it makes sense to support this remote image/svg+xml sent as gzip case. Even if they don't specify the correct ContentEncoding. I'll move my logic into Decoder and resubmit.
Eric Seidel (no email)
Comment 10
2005-12-13 00:20:55 PST
Actually, we do handle it "properly". FireFox has made an active choice not to support svgz w/o the correct Content Ecoding header either. There still remains a question about supporting local svgz however.
Eric Seidel (no email)
Comment 11
2007-02-05 16:52:50 PST
It's really bad that we don't support local SVGZ files.
Eric Seidel (no email)
Comment 12
2007-09-30 11:07:36 PDT
This may be automagically supported in Leopard if LaunchServices provides us with proper mime type and fake headers. At least when I last talked to the UTI guy at Apple he seemed to suggest such was possible. I believe this bug has a corresponding Radar which may even be assigned to the launch services team. Adding the "NeedsRadar" keyword for someone to find and associate said Radar.
David Kilzer (:ddkilzer)
Comment 13
2007-12-18 09:54:40 PST
(In reply to
comment #12
)
> This may be automagically supported in Leopard if LaunchServices provides us > with proper mime type and fake headers. At least when I last talked to the UTI > guy at Apple he seemed to suggest such was possible. I believe this bug has a > corresponding Radar which may even be assigned to the launch services team. > Adding the "NeedsRadar" keyword for someone to find and associate said Radar.
Does this work in Leopard now?
Alexey Proskuryakov
Comment 14
2008-02-26 04:25:49 PST
It does not. Filed <
rdar://problem/5765475
>.
Eric Seidel (no email)
Comment 15
2008-02-26 10:38:06 PST
(In reply to
comment #14
)
> It does not. Filed <
rdar://problem/5765475
>. >
There is another radar, asking for launch services to send us the headers/mimetype? (not even sure how that would work) correctly when opening an svgz file. It was in the CoreTypes component long ago.
Alexey Proskuryakov
Comment 16
2008-02-26 11:00:58 PST
I couldn't find it.
Eric Seidel (no email)
Comment 17
2009-06-03 14:27:52 PDT
Chromium fixed this. I guess this still needs support from Mac OS X for Safari to work here? Adding a test case.
Eric Seidel (no email)
Comment 18
2009-06-03 14:28:16 PDT
Created
attachment 30925
[details]
A test case for LayoutTests
Eric Seidel (no email)
Comment 19
2009-06-03 14:29:36 PDT
Bugzilla doesn't send the "right" headers for svgz files, so the test fails in bugzilla (and will always fail). It passes on disk for Chromium now, but not Safari.
http://code.google.com/p/chromium/issues/detail?id=9936
Charles Pritchard
Comment 20
2011-08-19 11:50:38 PDT
SVGZ support is still mixed. The issue seems to be that SVGZ files are occasionally passed through XML parsing before sniffing the first bytes. The first bytes should -always- be sniffed. Chromium cross-link:
http://code.google.com/p/chromium/issues/detail?id=76968
Eric Seidel (no email)
Comment 21
2011-08-19 12:40:40 PDT
SVGZ files work fine on the web, when the site is configured correctly:
https://jwatt.org/svg/authoring/
SVGZ files could work fine on disk if LaunchServices provided the right information. It's unclear if radar 5765475 has been solved.
Charles Pritchard
Comment 22
2011-08-19 13:30:39 PDT
(In reply to
comment #21
)
> SVGZ files work fine on the web, when the site is configured correctly: >
https://jwatt.org/svg/authoring/
Yes, but the specification dictates mime magic. And this corresponds well with blob and data URIs, do not need to specify the svgz content-type in order to work (per spec). I realize that svgz works well when the content type is specified on a server. If proper mime handling were in place, it'd work in all cases.
Eric Seidel (no email)
Comment 23
2011-08-19 13:37:54 PDT
It sounds like what you're asking for is content sniffing. .svgz is a file extension which requires the server to be set up correctly. Similarly to serving a .html.gz file and expecting it to render correctly. :) I assume you wouldn't argue that when a server hands us a .html file with something that looks like a gzip header we should try decoding it and rendering it "just in case". :) .svgz files on local disk are a slightly different since there isn't really a server in place to set-up correctly. Which is what this bug is about. On Mac OS X, local .svgz handling should be fixable in the OS.
Charles Pritchard
Comment 24
2011-10-31 11:04:24 PDT
(In reply to
comment #23
)
> It sounds like what you're asking for is content sniffing. > .svgz files on local disk are a slightly different since there isn't really a server in place to set-up correctly. Which is what this bug is about. On Mac OS X, local .svgz handling should be fixable in the OS.
The issue also appears with blob and data uris.
Karl Dubost
Comment 25
2024-07-24 21:46:54 PDT
Tested in A local SVG file file:///Users/karlcow/Downloads/svg_logo.svgz All of them failed with Safari, Chrome This page contains the following errors: error on line 1 at column 1: Encoding error Below is a rendering of the page up to the first error. Firefox XML Parsing Error: not well-formed Location: file:///Users/karlcow/Downloads/svg_logo.svgz Line Number 1, Column 1: file:///Users/karlcow/Downloads/svg_logo.svg is working correctly. Should we close this?
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug