WebKit port status update.

Blog post by maxime.simon on Tue, 2009-08-11 10:20

We want news!

… or at least I suppose that some people want to know the progresses made on the WebKit port.
I think that we can split this work in two parts:

  • Improvements made on the port.
  • Landing in the official WebKit tree.

Ryan and I thought that the first part would have been a bit easier, but in fact since the previous port (by himself), many code in WebKit has changed. It is still a work-in-progress but I made some good advances.

As for the second part, it is also something that we are still working on. I can say that it is in great shape to be complete before the end of summer. ( The summer ends on the 21th of September… ;)

Improvements made on the port.

 Screenshot of the first start of HaikuLauncherHaikuLauncher:
First start.

I do not know if you remember, but in my last blog post I just finished building WebKit. And in fact it was just the beginning of the beginning.
To test WebKit we have a “browser-shell” named HaikuLauncher that Ryan did 2 years ago. So my first step was to make this working. And it was not as simple as it sounds. As I said many parts of the WebKit code changed, so I had to adapt these parts of our port just to run HaikuLauncher.
As a great optimist, I assumed that, once HaikuLauncher started, the work was completed. Actually I was a bit too optimist. Near is a screenshot of what I got with a really simple html page (a h1, a hr and an image). With some little enhancements on the content size I got the hr to display correctly. But I did not finish my sentences.

The great story of the font handling.

WebKit font handling, at last something correct.Font handling:
At last something correct.

My first task was to understand what I did not get any text (even texts in a paragraph tag did not displayed).
During the correction process I got some overlapping, some great issues with the font width etc… In short, it was not a funny task to correct this problem.
I finally succeed, and now our port displays the text without any problem ( in fact any problem we know for the moment ). As you may notice on the screenshot, the css was in good shape. And indeed I never ran into trouble with it.

Flying with the bitmaps.

As you could have seen in the previous screenshot, images were not correctly displayed. This was the next battle.
I would like to thanks François who helped me on this issue. It was mostly a conversion problem between different bitmap formats. For the record, I got a sympathic headache: pictures were displayed “italic”. ( Here is a screenshot of it: Italic bitmap.) Of course we avoid it! ( Even if some people thought it could be cool to have all images displayed like that when surfing the internet. )

And then?

Extract of the BeBook.Extract of the BeBook.
In the current state, our port can be used to navigate the web, but with some restrictions:

  • We have an issue with javascript, or rather, with pages which contains javascript. It is impossible to navigate these pages.
  • The scrolling is not correctly handled. Even if you can see the scroll bars in the screenshots, they do not work properly.
  • No JPEG images support, but who uses JPEG? Erm… Actually we should use Haiku translators to manage images, but that is not the case for the moment. And as there is no libjpeg in Haiku, there is no JPEG support.

Of course we are working on these issues to provide, as soon as possible, a fully working version of WebKit.

Landing in the official WebKit tree.

As part of our project, we wanted the port to be integrated in the official WebKit repository. The WebKit team is opened to new ports, as soon as they are maintained. And I would like to thanks them for accepting us.

Of course it could not be possible to enter the whole code in the tree as simply. All parts of our code need to be reviewed to be sure there is no coding style violation ( Hopefully they provide a tool to check the style of a given code. ), and to be sure that the code is clean of hacks or bugs.
And even if I cursed heavily against this reviewing system, I must say that this is a very good thing for the healthiness of the repository.

But, but… and the web-browser?

Indeed I did not talk about the native web-browser.
As you may know, the renderer is an important part ( if not the most important part ) of a web-browser. So I think ( and I am pretty sure that Ryan will agree with me ) that we cannot incorporate WebKit in our brand new browser until it is stable enough. That is why Ryan and I did not make any enhancement on the web-browser.

There is still a week left before the end of the GSoC. Regarding to the status of the browser I would say that yet it would require some work. Of course I will continue this job with Ryan!

Comments

Re: WebKit port status update.

It is very impressive, I enjoy reading your updates and I'm looking forward to the results over the coming weeks.

Re: WebKit port status update.

Wow, I think the bebook webpage looks very slick already. Nice rendering! Good luck on getting Javascript to work properly. Hey, jpgs are indeed overrated :) Keep up the good work, great to hear you two will continue working on this!

Re: WebKit port status update.

Impressive piece of work, thanks already for that !
I eagerly waiting for that project, whatever it will be called ;)

Re: WebKit port status update.

BTW, there is libjpeg in haiku. Check src/add-ons/translators/jpeg/libjpeg.

Re: WebKit port status update.

jackburton wrote:

BTW, there is libjpeg in haiku. Check src/add-ons/translators/jpeg/libjpeg.

Yeah, That's what Ryan told me too.
But what about the headers? And that's for cross-compiling, we are compiling WebKit natively on Haiku. However, thanks for the tips. ;)

Re: WebKit port status update.

Is Haiku's libjpeg compiled as a shared lib? I thought it was statically compiled into the jpeg translator or something...

In any case, no ported software ever seems to find it, so perhaps that's missing headers or something.

We should fix this, it's pretty obnoxious having to install the jpeg package from haikuports just to get the dependency for other ported software :/

Re: WebKit port status update.

umccullough wrote:

Is Haiku's libjpeg compiled as a shared lib? I thought it was statically compiled into the jpeg translator or something...

In any case, no ported software ever seems to find it, so perhaps that's missing headers or something.

We should fix this, it's pretty obnoxious having to install the jpeg package from haikuports just to get the dependency for other ported software :/

When using the "Development" optional package, most of the headers from the default install are included. That's not the case for jpeg, as it's only a part of the jpeg translator.

As you guessed, the library is statically compiled into the jpeg translator.

Re: WebKit port status update.

I just started using Haiku yesterday and a WebKit port was one of the first things I looked for. I'm glad to hear you guys are working on it. I'm ready and willing to test it out when you get it to testable state.