The WebKit Open Source Project

Portability

Overview

Welcome to the portability project page. In addition to making our code more portable, we are also interested in hosting ports of WebKit to other platforms. For example, WebCore has already been ported to GTK+ and we are interested in hosting this port in our repository. We are also interested in ports of WebKit to other platforms like Windows. This project is concerned with how to do the code refactoring necessary to improve portability, thus making life easier for those doing ports, as well as with the ports themselves.

Get Involved!

Move WebKit code into WebCore
Over time the WebKit framework has grown to contain a lot of code written in Objective-C that has no real business being in this framework. Now that both frameworks are open source, we would like to move as much of this code as possible from WebKit into WebCore. This means rewriting the code to be C++ instead of Objective-C to make the code more portable. Ultimately we would like WebKit to be nothing more than the embedding APIs for a given platform and infrastructure/glue code that is needed to tie into a specific platform. All of the remaining logic should move to WebCore.
Implement missing components
Not all platforms have code for handling cookies, authentication, SSL, caching, network loading, or image decoding. We would be interested in implementations of these capabilities that could optionally be used on platforms that do not have this support. On platforms that do, the implementation of the cross-platform abstraction could call into the system. One possibility for obtaining this missing functionality is to port Mozilla's image rendering and networking libraries to Qt (eliminating the XPCOM and converting the use of strings, etc. to QString).
Integrate the GTK+ port
One port of WebCore already exists, the GTK+ port. We are interested in integrating this into our source tree, and believe that doing so will help us to refactor our code to make future ports easier.
Help Porting!
Want to help with porting to Windows or some other platform? Contact us and start submitting patches!