Bug 5391 - Need to merge with a more recent KSVG2 from kde
Summary: Need to merge with a more recent KSVG2 from kde
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: SVG (show other bugs)
Version: 420+
Hardware: Mac OS X 10.4
: P4 Normal
Assignee: Eric Seidel (no email)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-10-15 15:46 PDT by Eric Seidel (no email)
Modified: 2005-11-21 01:45 PST (History)
0 users

See Also:


Attachments
Shared is now a Template class (2.09 KB, patch)
2005-10-17 10:43 PDT, Julien Palmas
eric: review-
Details | Formatted Diff | Diff
Shared is now a Template class (94.42 KB, patch)
2005-10-17 17:48 PDT, Julien Palmas
no flags Details | Formatted Diff | Diff
Patch for ksvg2 svn r470231 (62.48 KB, patch)
2005-10-29 14:54 PDT, Julien Palmas
eric: review+
Details | Formatted Diff | Diff
Pulls many changes from kcanvas svn r475806 (32.22 KB, patch)
2005-11-04 14:54 PST, Julien Palmas
eric: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Eric Seidel (no email) 2005-10-15 15:46:01 PDT
Need to merge with a more recent KSVG2 from kde

Basically this just involves checking out both trees (WebCore and kde's) and using FileMerge to go through 
each one of the differences and pull changes into WebCore, or push them into KDE.  You would do one or 
the other at a time.  I generally start by pushing to KDE (since that's a smaller set).  Eventually I bottle up 
those patches and send them off to rwlbuis and WildFox or just commit them myself.

The second stage (and what this bug is about) is to pull changes from KDE to WebCore.  Small patches are 
best.  Pull a set of related changes, recompile, test, and then post a patch here for review.
Comment 1 Eric Seidel (no email) 2005-10-15 15:49:37 PDT
Getting source from KDE is easy:
http://developer.kde.org/source/anonsvn.html

Specifically you would just do this:
svn co svn://anonsvn.kde.org/home/kde/trunk/kdenonbeta/kdom
svn co svn://anonsvn.kde.org/home/kde/trunk/kdenonbeta/kcanvas
svn co svn://anonsvn.kde.org/home/kde/trunk/kdenonbeta/ksvg2
Comment 2 Julien Palmas 2005-10-17 10:43:12 PDT
Created attachment 4382 [details]
Shared is now a Template class

Modifies Shared.h and TreeShared.h
Comment 3 Eric Seidel (no email) 2005-10-17 10:45:44 PDT
Comment on attachment 4382 [details]
Shared is now a Template class

This will need to be pulled over along with all the header changes which change
from:

class Foo : public Shared;

to:

class Foo : public Shared<Foo>;

Make sure you test the compile, and run-webkit-tests --svg.
Comment 4 Julien Palmas 2005-10-17 17:48:59 PDT
Created attachment 4390 [details]
Shared is now a Template class

This patch modifies all the files that subclass or use the KDOM::Shared class.
It also creates kdom/SharedPtr.h.
It adds kdom/SharedPtr.h to the WebCore+SVG target and removes kdom/Shared.cpp
from the target

Run this patch from the kdom dir with `patch -p0`, it will handle the
WebCore.xcodeproj modifs as well.
Comment 5 Eric Seidel (no email) 2005-10-17 17:56:06 PDT
Comment on attachment 4390 [details]
Shared is now a Template class

Assuming this was regression and leak tested, this looks great!  Thanks ever so
much for taking the time to make this merge patch!
Comment 6 Eric Seidel (no email) 2005-10-23 23:33:43 PDT
Comment on attachment 4390 [details]
Shared is now a Template class

Commited.  Removing review flag now, as we're not quite caught up with KDE...
Comment 7 Julien Palmas 2005-10-29 14:54:01 PDT
Created attachment 4531 [details]
Patch for ksvg2 svn r470231

Form svn log in ksvg2 :

r470231 | wildfox | 2005-10-13 13:56:19 +0200 (Thu, 13 Oct 2005) | 16 lines

Part 2/2:
* Commit Rob's patch aiming at killing SVGStyledElementImpl <->
SVGTransformableImpl,
  and SVGStyledElementImpl <-> SVGLocatableImpl 'this' ptr dynamic_casts.

run-webkit-tests --svg --leaks reports no regression in svg rendering and a
shift from 370 to 342 leaks in DumpKCanvasTree
Comment 8 Julien Palmas 2005-10-29 14:55:14 PDT
Patch for ksvg2 svn r470231 creates 4 new files :

SVGStyledTransformableElementImpl.*
SVGStyledLocatableElementImpl.*

These files need to be added to the webcore+svg target
Comment 9 Julien Palmas 2005-11-04 14:54:43 PST
Created attachment 4602 [details]
Pulls many changes from kcanvas svn r475806

Patch for kcanvas svn r475806

Form svn log in kcanvas :

r475806 | buis | 2005-10-30 18:12:14 +0100 (Sun, 30 Oct 2005) | 12 lines

Important kcanvas changes:

- have a seperate item for images, KCanvasImageItem.)
not included in this patch

- use relative transforms in kcanvas but offer a way to compute the whole ctm
(getComputedTransform). This should have big benefits, next to nicer code it
should make having svg markers in OS X easier.
Porting is still needed to support markers, but we already see a change in :
    W3C-SVG-1.1/painting-marker-01-f
    W3C-SVG-1.1/painting-marker-02-f
Like rob said, now it should not be hard to finalize the porting

- to give better control add viewBox and preserveAspectRatio abilities into
KCanvasContainer.
- KCanvasContainer sets up its own viewport clip, not in SVGSVGElementImpl
anymore.

I also added a mapRect() method to KWQWMatrix

After this patch, webcore cvs get much closer to ksvg2 svn and will make easier
further merging.
Comment 10 Eric Seidel (no email) 2005-11-09 01:57:52 PST
Comment on attachment 4531 [details]
Patch for ksvg2 svn r470231

Great patch.  This will need some tweaks as it lands (due to the DOM changes
I'm soon to land), but I'll take care of those.
Comment 11 Eric Seidel (no email) 2005-11-09 02:01:55 PST
Comment on attachment 4602 [details]
Pulls many changes from kcanvas svn r475806

So there are some good ideas in this patch.  I think that we need to talk about
it a bit more after my DOM merger lands however.
Comment 12 Eric Seidel (no email) 2005-11-20 15:48:40 PST
Comment on attachment 4602 [details]
Pulls many changes from kcanvas svn r475806

Looks good.  Rolling in with my massive changes (as it gets rid of one last
remaining dynamic_cast for me).
Comment 13 Eric Seidel (no email) 2005-11-21 01:45:06 PST
Ok, this bug has served it's purpose well.  Both of Julien's patches are now landed.  Time to close.  Further 
mergers from kde should use separate bugs.