Summary
Dirk Mueller
mueller@kde.org
Wed, 19 Feb 2003 21:49:17 +0100
Hi,
below some random bits I remember, please add or correct parts. its going to
be huge, but please take a minute to skim through it, thanks.
- Common codebase: My impression was that we're not going to work on this
goal before Safari 1.0 (or even Safari 1.0.1 / 1.1). This is what
we feared but expected. Many things have to be sorted out, like extracting
bits in _darwin.cpp and _x11.cpp files that are plain unportable.
(The biggest change seems to be the misc/decoder and rendering/font to
me, everything else should disappear in the near or middle future anyway).
re: rendering/font.cpp: its clear that we never reach a common codebase
here. I'll just rename our file to font_x11.cpp soon in CVS, Safari
can just fork the complete file and name it font_darwin.cpp or whatever.
re: misc/decoder.cpp: Our code is crap basically, as we don't do
automatic encoding guessing properly and are by far wrong in many cases.
Question: How does Safari handle this? It seems the encoding conversion
is done on a different layer, as you made decoder basically a noop wrapper
as far as I can see? How are you guessing the encoding? Any code we can
share here, or is it OS / proprietary code base level?
Plan was to do patch-wars till we have time to sit together and figure
out the political details of a common CVS repository etc.
It was suggested to sync up safari codebase with the latest stable
release, which is KDE 3.1 (3.1.1 soon). Should Konqueror backport the
new CSS parser for 3.1.1 ? Its definitely still hardly tested. Also
I'm personally unsure about the performance impact of the new CSS parser,
I've heard that bison generated code is quite slow (gcc developers
are bitching about that). IMHO it requires profiling first.
It was suggested to meet in person when the Safari team has less time
pressure and sit together to finally establish a common codebase. My
impression was that both sides agreed that this is a good idea.
- Testsuite: The "No regression" topic was discussed, and both sides
expressed interest in achieving an automated regression testing before
commit. Safari codebase apparently has automated testing already for
rendering quality, stability, memory impact and performance (Mozilla
development style comes to my mind..).
The common testsuite bit was hairy. Safari uses testsuites that are not
public and not shareable under any open source compatible license.
However IIRC it was suggested that we receive a tarball of tests
that Apple can share with us. It was recommended to set those tests
up in the KDE CVS module khtmltests. Probably a more automated regression
testsuite is needed here. We should discuss here how to make sure
we don't introduce regressions for each others code bases.
It wasn't noted IIRC is that we maybe should try to aim at a common
testsuite with Mozilla as well in the (far) future.
- Commit policy: Safari's internal policy is at least one review of the
patch before commit. The commit has to include a changelog entry and
a testsuite testcase.
KDE's policy is.. lets say currently less than that ;-)
Safari developer will get access to KDE CVS, to commit changes directly.
IIRC it was accepted that bigger changes are discussed at least
briefly before commit.
The topic of disagreement over the further direction of KHTML/KJS
development was brought up. We didn't see it as a problem so far.
Hopefully cooperation, coordination and early exchange of ideas and
patches will avoid that.
- User agent string: Safari developers explained their choice for
a Mozilla like UA string. No consensus on that topic AFAIK, and
as we need UA spoofing for a lot of braindead real world websites
anyway there is not much to decide. I'll write a separate mail
about some of my ideas about this topic.
- Common user agent string: It was accepted to share a common
part in the user agent string to allow sites that want to
create a khtml-specific version of their webpage to recognize
Safari and Konqueror to be the same browser, essentially.
This way linux-centric sites (which do optimize for Konqueror
sometimes) and mac-centric sites (which will obviously optimize
for Safari) can still be equally browsed with both browsers.
In an ideal world we could share a String with Mozilla
(to be recognizeable as "DOM-browser") though..
Maybe we have the power to establish a better browser detection
sheme now, in the hope that at least some web designers use
the "right" code. Both sides have probably already experienced
the frustration about web sites that simply send the wrong
page to the browser just because it is not named MSIE or Netscape.
Ok, I'm dreaming here..
- Patch wars: It was suggested to put up the source code of the
weekly internal Safari releases for us to peek at, to be able
to track changes in smaller steps.
It was also suggested to share "change-sets", so that we can
easily apply changes to both trees. Safari developers explained
that they cannot share their CVS / CVS commit logs with us, as
it may contain references to proprietary code or internal issue
tracking systems or otherwise contain stuff that could cause legal
trouble for Apple/Safari.
However, we might be able to manually or semi-automatically post
"change-set" diffs to this mailing list to make merging easier. It
was recommended that both sides look into this and work something out.
- CVS logs: Konqueror developers suggested to CC all khtml/kjs related
commit logs from the mailing list kde-cvs to khtml-devel for easier
tracking / merging automatically. It was explained that the Safari
developers don't need this, as they read kde-cvs anyway.
<fill in the rest>
--
Dirk (received 578 mails today)