Written by Karl vom Dorff Wednesday, 18 July 2007 00:00
Webkit Port - Status: Partially Completed
Developer: Ryan Leavengood
Deadline: November 15th, 2007
WebKit seems to be the ideal open source platform for building fast, standards compliant web browsers. It has already been ported to many systems beyond Mac OS X where it was first built from the KDE projects KHTML. The core WebKit team members continue to improve the architecture to make porting easier.
In addition, a WebKit port to the Syllable operating system was recently released. Syllable is probably the most BeOS-like system that WebKit has been ported to, and I have already browsed the code of the port and this has greatly increased my confidence in being able to achieve a Haiku port.
Eventually a Haiku-specific Web Kit will be created consisting of a BHTMLView class and possibly other components. This will be inspired by both the Apple WebKit API and the KDE KHTMLPart component. This could then be used in documentation browsers and email applications as well as standard browser applications.
Finally a fully featured browser will be implemented. I plan to keep this simple and light and will try to avoid putting in too many unnecessary whiz-bang features.
But I consider the Haiku Web Kit and new browser work to be outside the scope of the bounty project.
To complete this project, I plan to do the following:
1. Download the WebKit source code on Linux, build the Qt port and begin testing and browsing the code. (I have already done this.)
2. Get the GCC 4.x cross compilers set up on Linux for building Haiku, to be eventually used when compiling WebKit (I already have the Haiku
cross compiling going with GCC 2.95.)
4. Using the Syllable port as inspiration, start coding the Haiku platform files needed in WebCore. The first run will mostly be stub files simply needed to get a build going.
6. Once enough callbacks are implemented in WebCore, a basic Haiku browser shell application will be written. Inspired by the QtLauncher, this will primarily consist of a single window with a back, forward and stop button, and edit box for the URL, a simple progress bar and a status bar to show the locations of links when hovered over.
7. Using the browser shell I will thoroughly test the port, and probably offer some builds publically for others to test.
8. Once the port is looking good and the browser shell runs well, I will consider the work for this bounty completed.
Nonetheless I will continue to work on this project to produce a more fully functional browser, probably initially inspired by NetPositive, with other useful browser features added as needed. I'm tempted to just call this NetPositive, but will probably come up with a newer, slicker name.
In addition as I said above I would like to encapsulate the WebKit functionality into a class BHTMLView which can be used from other applications.
I propose the following deadlines for the above:
2. July 22, 2007
3. July 29, 2007
4. August 12, 2007
5. August 26, 2007
6. September 9, 2007
7. September 16, 2007
8. September 30, 2007
Some links to relevant info:
Getting Started: Developing for Haiku
Haiku Networking Team
Haiku Applications Team
Back to the bounties...