Webkit Port

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.

What I want to achieve in this project is to get the WebKit components JavaScriptCore and WebCore building for Haiku, with the appropriate Haiku platform files created. Once these are building a very simple browser shell application will be written to test the 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.

Technical information:

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.)

3. Use one of the existing WebKit build systems to build JavaScriptCore using the Haiku cross-compilers. JavaScriptCore is mostly cross-platform so the main issues will just be related to sorting out build problems.

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.

5. Incrementally turn the stubs into real implementations of the the basic callbacks needed in the WebKit platform code. For example the callback for the JavaScript alert method would use a BAlert to show a message.

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:

1. Done.
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

Relevant information:info.png

Some links to relevant info:

Getting Started: Developing for Haiku
Haiku Networking Team
Haiku Applications Team
Webkit Homepage

Back to the bounties...


Search Files

Search For: 
Search File Titles: 
Search File Descriptions: 

The Largest BeOS/Haiku Software Repository