Work on WebKit continued this week. In the previous report, I mentioned several issues with the new tiled rendering. Most of them turned out to be either problems in app_server or misuse of the APIs in the WebKit code. The most important part was that WebKit used region clipping and expected the region to be transformed when using SetTransform; however, with the current design, region clipping isn't affected by the view transform.
Work on the new drawing code for WebKit continues this week. We have scrolling support again (this was a bug in app_server, which stippi helped to fix), the scrollbars are drawn in the view thread (we are still using the fake scrollbars from WebKit), and the screen is updating as it should, so we get animations to work much better (for example the 2048 game plays with animations now).
I spent most of the week working on the texture mapper drawing code. I spent a lot of time tweaking the options (each change requires a complete build of Web+, so this added up to a lot of time...), and today I got the texture mapper to display something in a BWindow.
Well, just got confirmation from Haiku, Inc. that I can continue working on this during May. Thanks to everyone who donated money to Haiku, Inc. for making this possible!
As mentioned last week, I'm working on fixing the flickering and missing rendering on some pages. I didn't get very good results yet, but I can at least give you an overview of the different ways WebKit can render things on screen.
Not so much exciting things this week...
Well, good news first, on wednesday I uploaded HaikuWebkit 1.3.1 packages. It should be more stable than the previous releases, and includes work from the last 3 weeks including some more bugfixes for audio/video support, working web socket support, and many smaller fixes.
Work continues on the testsuite: I found one bug in the testsuite system that greatly improved the results. Things are now properly reset between each test, which avoids many of the issues I was having. The last test run breaks down as follows:
- 2 unexpected crashes
- 2300 unexected failures
- 400 unexpected successes
- 5000 tests have no reference
- And the remaining 30000 or so tests are now properly tagged
I will continue marking the failing tests as expected to fail, and review them in case I find one that's easy to fix. The 5000 "no references" tests are easily fixed, we just need to generate a reference rendering of the page. This is because these tests have platform-specific results, so there is no common reference for all platforms, and we need a haiku-specific one.
Slow progress on the code this week...
I fixed two small issues in the video decoding code: a useless notification was sent, leading to very high cpu usage on jamendo.com (and possibly other places). And, the video drawing was not always using B_OP_COPY. This led to CPU waste as the mode used could be slower (B_OP_OVER has to scan each pixel to see if it is transparent), and created some drawing glitches on some videos.