[webkit-dev] Large Source Reorganizations By External WebKit Ports

Brent Fulgham bfulgham at webkit.org
Wed May 18 12:36:38 PDT 2011

I've recently been spending some time reviewing some of the WebKit
port that are not part of the core WebKit archive.  Electronic Arts,
for example, has been very good about making source dumps of their
build of WebKit available (wow -- WebKit on the PS3! :), Playo has
released their sources, and Valve was kind enough to point me at the
version of Chromium they use for their own work.

While this transparency is fantastic, I find it depressing that in
most cases these porters chose to significantly rearrange the source
archive.  This makes it difficult to evaluate the changes made to
support various custom features, as well as drastically increasing the
effort required to integrate these ports into WebKit proper.  Google
used this same approach with their Chromium port, the side effects of
which find us in year two (or three?) of the effort to merge those
changes back into the core WebKit archive.

This phenomenon makes me wonder if we have some sort of deficiency in
the layout of the WebKit sources, or the way we specify and link with
various external dependencies, that lead new porters to embark on
these large reorganizations?

I did not find it difficult to work with the existing WebKit layout --
in fact, I find it logical and easy to understand.  And certainly
several other ports (such as the Windows CE, wxWidgets, Haiku, BEOS,
etc.) were able to easily integrate with the existing layout.
However, the existence of these several source variations is a clear
indication that not everyone finds the source base so easy to work

Perhaps if we understood the reasoning behind that led to these
external source reorganizations we could do a better job presenting
suitable API's for porters so that they would not feel the need to
take these drastic steps.

Can any of you external users share the reasons behind your
reorganization efforts?



More information about the webkit-dev mailing list