Add temporary "KDOM/KCanvas" Wrapper solution for SVG Add a DOM KDOM node wrapper and a RenderTree KCanvasItem wrapper to WebCore to allow us to render SVG in safari prior to the true DOM/RenderTree integration.
Created attachment 3909 [details] New files necessary for "wrapper" solution. (Incomplete patch) This patch does not include the (very minimal) necessary changes to WebCore and WebKit. I need to make the WebKit changes a bit more elegant first before we land this.
Created attachment 3933 [details] New files for "wrapper" solution.
Comment on attachment 3933 [details] New files for "wrapper" solution. Hyatt is probably the best reviewer for this (as he knows the render tree best). Mjs or Darin might also have opinions.
Comment on attachment 3933 [details] New files for "wrapper" solution. Gave comments in person, but will re-summarize here: (1) NodeTreeWrapper could be folded in to the DocumentImpl subclass. (2) Check leaks... looks like some objects might be leaking here. (3) Use QPainter in the paint() method instead of raw CG. (4) paint() method will paint twice. Make sure to only paint during the foreground phase and not during other phases like the outline phase. (5) Where are scripts handled? Looks like they aren't.
Created attachment 3979 [details] Final patch (fixed leaks, uses QPainter, paints less, etc.) With this patch, (many) SVGs now "just work" in Safari. This fixes the previously mentioned canvas leak, a overdrawing due to paint() misunderstanding, and moved off of CG and onto QPainter methods.
Comment on attachment 3979 [details] Final patch (fixed leaks, uses QPainter, paints less, etc.) Addressed hyatt's issues. Either hyatt or mjs should be able to review.
Created attachment 4002 [details] Consolidate tools and update to match WebCore+SVG -> WebCore product name.
Comment on attachment 4002 [details] Consolidate tools and update to match WebCore+SVG -> WebCore product name. This patch gets rid of two (previously separate) SVG scripts, rolling them back into the original script with a new --svg option. This patch also updates all of the SVG tools to use WebCore.framework instead of WebCore+SVG.framework, and explicity check for SVG symbols in WebCore. Any of a number of folks could review this one. Darin may have the strongest opinions as he wrote most of these tools.
Created attachment 4003 [details] Consolidate tools and update to match WebCore+SVG -> WebCore product name. Better tools additions, now includes the ability to automatically re-link JavaScriptCore and WebCore when running build-webkit w/ or w/o the --svg option, and they've previously been built with the opposite option.
Comment on attachment 4003 [details] Consolidate tools and update to match WebCore+SVG -> WebCore product name. A better patch for review.
Comment on attachment 4002 [details] Consolidate tools and update to match WebCore+SVG -> WebCore product name. Looks like the code to pass -target All when building JavaScriptCore is gone. I believe this will cause problems because the testkjs program won't get built. Otherwise, looks good.
Created attachment 4013 [details] Updated patch which builds testkjs when necessary.
Comment on attachment 4013 [details] Updated patch which builds testkjs when necessary. Fixes build-webkit to make sure that testkjs is built when needed. I'm still (intentionally) ignoring the "All" build target, as this solution make for a cleaner script which handles both JSC and JSC+SVG. Once JSC+SVG goes away, this could move back to an equally clean solution using the "All" target if desired. Really anyone could review this, darin reviewed the first iteration of this patch.
Comment on attachment 4013 [details] Updated patch which builds testkjs when necessary. r=me on the tools patch
Sweet. It is now possible w/ TOT to run Safari w/ SVG support!