development

Webkit port: talking to Andrea "xeD" Anzani

Blog post by koki on Sat, 2007-12-22 01:19

Webkit rendering bebits.comWebkit rendering bebits.comIt looks like the Haiku Webkit port initiated by Ryan Leavengood has entered a productive second stage of development, and thanks to the recent work by one of the new project team members, Andrea "xeD" Anzani, tangible progress has been made as shown by the recent screenshot showing the HaikuLauncher application rendering bebits.com (shown to the right). I was curious about his work, so I went directly to the source and asked a few questions to Andrea; here are his answers.

Andrea: From the questions you wrote, it looks like you think we have a working browser here. Well, we don't. I'm sorry to tell you but what you see it's just a proof that the webkit is working. Still incomplete and with a lot of bugs. The webkit is, in short words, a framework for loading, parsing and drawing an html page (including net connections and javascript interpreter). We are working on fixing and finishing it. When we are done with porting the webkit, then we can speak about the development of a web browser.

Our first decent WebKit rendering!

Blog post by leavengood on Wed, 2007-12-19 00:04

The WebKit Haiku port team has seen some nice progress lately in the form of our first decent rendering. Read more to see it...

WebCore Now Compiles for Haiku

Blog post by leavengood on Mon, 2007-11-12 05:40

I know I have been very quiet for a while in regards to my Haiku WebKit port, but that is because I've been in a long session of coding. I am happy to report that this weekend I finally got WebCore compiling for Haiku:

Link ../../../generated/objects/haiku/x86/release/WebKit/WebCore/libwebcore.so 
Chmod1 ../../../generated/objects/haiku/x86/release/WebKit/WebCore/libwebcore.so 
SetType1 ../../../generated/objects/haiku/x86/release/WebKit/WebCore/libwebcore.so 
MimeSet1 ../../../generated/objects/haiku/x86/release/WebKit/WebCore/libwebcore.so 
SetVersion1 ../../../generated/objects/haiku/x86/release/WebKit/WebCore/libwebcore.so 

So what does this mean? Does it mean the port is now complete? Unfortunately, no it doesn't.

There are still some "stubbed out" classes in the Haiku platform code in WebCore, which means they don't do anything and just exist to make the code compile. Fortunately I have coded a lot of the needed platform files, but the ones which are stubbed out are some of the more complicated ones.

But I am very eager to finally get a simple web launcher running on Haiku to test the port, so I plan to work on this project after work this next week. For those not aware my (self-assigned) deadline for the WebKit Port Bounty on Haikuware is November 15th, which is this next Thursday. I think this deadline was a good motivator so I am glad I have it, but I don't think the port will be rock solid and "complete" by then. Keep in mind that the Qt port of WebKit is also missing a lot and has been worked on by many developers for more than a year. In addition WebKit originally came from KHTML which was a Qt-based HTML engine, so they have another advantage in that the design is Qt-friendly. Even the Windows port which is done by Apple employees who are experts on WebKit is still missing things that the main Mac OS X port has.

I don't say all this as some big excuse. I just want people to realize this is quite a big project and involves my learning the design of WebKit as well as aspects of the Haiku API I am not aware of. Plus as I have discussed before I have had to set up a new cross-compiler environment, port and then build four external libraries WebKit needs (CURL, ICU, SQLite, and libxml2), and write new Jamfiles for JavaScriptCore and WebCore so they can be built with the Haiku build system. I have also added missing features to Haiku that WebKit needed. In the end I think I will be a much better developer after doing all this, but it does involve a lot of work. I expect that once I get over this first hump of the main work for the port, other people will be able (and hopefully willing) to help. I do know at least one Haiku developer who has interest in helping a bit.

So what do I plan to deliver to satisfy the bounty? Well I have started working on "HaikuLauncher", inspired by the QtLauncher, which will be a very basic browser shell to drive the WebKit engine. I would like this to be able to load a web page and render it properly. Beyond that I'm not guaranteeing anything, at least for another few months until I can write a full browser (which is outside the scope of the bounty.)

Given this I hope the folks who contributed to the bounty can feel satisfied that their money was well spent.

JavaScriptCore Runs on Haiku! (mostly)

Blog post by leavengood on Wed, 2007-09-05 04:27
testkjs working

So after a few frustrating weeks of very little progress on my WebKit port, I have finally gotten JavaScriptCore running on Haiku!

WebKit Port Complications

Blog post by leavengood on Mon, 2007-08-20 23:31