Bug 15280

Summary: SVG Subresources will not be saved when creating WebArchives
Product: WebKit Reporter: Eric Seidel (no email) <eric>
Component: SVGAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: ddkilzer
Priority: P3    
Version: 523.x (Safari 3)   
Hardware: Mac   
OS: OS X 10.4   
Attachments:
Description Flags
the fix oliver: review+

Description Eric Seidel (no email) 2007-09-25 12:32:23 PDT
SVG Subresources will not be saved when creating WebArchives

SVG elements (actually the Obj-C DOM wrappers for the elements) do not implement the _subresources, internal method to expose the urls of their subresources.  I had to implement this for SVGImageElement, but I have not done so for any of the other SVG Elements.  Mostly because the first two other elements I looked at (foreignObject and script) did not expose their xlink:href attribute via a binding method in their idls.  So there is some piping which would need to be put in place in order to get the actual href values from each of these SVG Elements and made available to the _subresources call.

See:
http://trac.webkit.org/projects/webkit/browser/trunk/WebKit/DOM/WebDOMOperations.mm

for examples of the _subresources code necessary.

see:
http://www.w3.org/TR/SVG/attindex.html
for a list of elements which use the xlink:href property (as well as any other property which might make reference to an external file).
Comment 1 Eric Seidel (no email) 2007-09-29 09:09:37 PDT
Created attachment 16455 [details]
the fix
Comment 2 Alexey Proskuryakov 2007-09-29 09:36:04 PDT
Comment on attachment 16455 [details]
the fix

r=me
Comment 3 Eric Seidel (no email) 2007-09-29 09:39:50 PDT
I should note that this patch does not implement *all* of the _subresources methods that SVG might ever need.  If we ever support external references with <use> or <tref>, etc. those will all need _subresources methods in order to be correctly archived.  But I believe all of the SVGElement subclasses which do support external references now have proper _subresources methods.

Landed on feature-branch as r25809.
Comment 4 Oliver Hunt 2007-10-01 19:17:25 PDT
This was skipped when rebasing and will need to be updated for the new featurebranch
Comment 5 Eric Seidel (no email) 2007-10-01 22:45:46 PDT
relanded (same patch) as r25908.