PulkoMandy's blog

WebKit weekly report #49 - Screensavers, ports, and memory leaks.

Blog post by PulkoMandy on Fri, 2014-10-17 07:34

Hello world!

This has been a busy week with activity on all fronts.

WebKit weekly report #48 - More Locale Kit, buildbot and upstreaming efforts

Blog post by PulkoMandy on Fri, 2014-10-10 06:44

Hello world!

Localekit and ICU migration

Last week I wrote the report while I was debugging a deadlock in ICU 53.1. I spent some time debugging this and I found the issue. ICU calls native functions to handle some aspects of timezones (tzset, localtime, and a few others). However on Haiku we implement these functions using ICU. This didn't work too well as ICU tried to lock a lock it was already holding during the initialization of timezone data. Fortunately the calls can easily be disabled in ICU, and that was enough to fix the issue.

While I was working on this, ICU version 54 was released. So I reworked my patches on that new version (fortunately not too much work was needed), and I uploaded the ICU 54 packages to the repositories.

With this updated version, I could continue work on improving the Locale Kit. I added parsing support to BDateFormat and BTimeFormat, which I needed for the data/time picker in WebKit. I finished the implementation of the BMessageFormat class for a first version (this raised a few concerns about design choices in the Locale Kit which may need some rework wrt locking and thread safety). I started making use of BMessageFormat in some places, and soon the translations will provide correct plural support.

I also made some other changes to the APIs, such as the addition of a format generator to ICU. This allows applications to ask things like "I want to know the appropriate date format to show only hours, minutes, and day of week". The Deskbar clock makes use of this now, and should put the fields in the correct order in all locales.

WebKit buildbot and upstreaming effort

You may know that Haiku, Inc. is the owner of 15 Mac Minis donated by the Mozilla fundation and used as build and test bots. They power most of our buildbot infrastructure. One of them was assigned to the WebKit porting effort and this week I worked on setting it up. Since our port isn't upstreamed yet, I have set up my own build master for this, and you can visit it at http://build.pulkomandy.tk . Unfortunately, the build times out because the machine is too slow (we are running Haiku in a virtual machine on rather old hardware there). We will see if the build can be made faster, or a more powerful machine found.

The build bot was a requirement for considering upstreaming our WebKit port. So I started discussing this on the WebKit mailing lists. They decided that it is not time for a complete upstreaming yet, however they suggested we start sending patches to the core parts of WebKit we had to change to get it working on Haiku. There aren't many of those, but the goal is granting one or ideally, two Haiku developpers commit access on WebKit repositories. No one else could review the Haiku specific parts of our code.

I spent part of the week reviewing our changes and submiting the relevant ones. Two small patches were already upstreamed, a tird one is still being discussed, and I will continue this work next week.

Random debugging

Using Haiku as my main system is sometimes a bit of an adventure. I had to fix some annoying issues before I could get work done:

  • Bash was crashing when parsing haikuports recipes with utf-8 characters. This was tracked to a missing bounds check in our widechar type management (wctype).
  • Our buildbot slave package was badly rebuilt after the Python 2.7 update and failed to run. Now it works again.

Bonus material

Here are some tasks I did outside of my paid work time for Haiku this week. They deserve some public announcement.

  • fRiSS, the RSS and ATOM feed reader for Haiku, was fixed for the current network kit APIs and moved to http://github.com/pulkomandy/fRiSS . Fork it and improve it!
  • I started working on the slides for my talk about WebKit at BeGeistert. I hope to meet you all there.
  • I did some work on getting DocumentViewer to run with a current version of MuPDF.
  • I fixed a BeOS compatibility issue in unarchiving BMenuFields, to get VNC Viewer running on Haiku. It seems much slower than the Linux version, however.
  • I added an haikuports recipe for mksh. In these days of shellshock, it may be a good idea to use an actively developped shell with a clean codebase.

... and that closes the report for this week.

WebKit weekly report #47 - Trapped in Locale Kit!

Blog post by PulkoMandy on Fri, 2014-10-03 07:31

Hello world!

So, one of the changes made last week (the XMLHTTPRequest timeout support) led to an API breakage in the network kit. This made WebKit crash on starting WebPositive, and I had to make an "emergency" release during the weekend to fix this. While you can enjoy the new shiny features and the bugfixes, you will also notice it is rather slow and uses a lot of CPU. This is a known issue related to the fixes with redrawing frames, which needed to remove some optimizations. I'll try to reintroduce those in a way that doesn't involve drawing problems.

WebKit weekly report #46

Blog post by PulkoMandy on Fri, 2014-09-26 07:04

Hello everyone!

This week most of my work went into improving our HTML5 support in WebKit. A lot of small issues and relatively simple features had piled up on my TODO list, and there weren't too much new bug reports so I spent some time to fix those. Here is a quick review of the features I added support for this week.

WebKit weekly report #45

Blog post by PulkoMandy on Fri, 2014-09-19 07:02

Hello everyone!

As usual, after the 1.4.4 release there were some new bug reports for me to work on. So the first part of the week was spent investigating and fixing some of those.

  • Several problems were fixed in the video code, which are leading to deadlocks and/or crashes of WebKit after a video is done playing.
  • A problem with text not being drawn (seen for example on Trac) was fixed. This is apparently a new bug introduced on WebKit side, where small text with shadows ends up not being drawn at all. I'm not sure my fix is completely correct, but it seems to work.

WebKit weekly report #44

Blog post by PulkoMandy on Fri, 2014-09-12 07:26

Hello there!

Yesterday I released version 1.4.4 of HaikuWebKit. This version includes the latest fixes to the rendering code and should be completely useable again. There are still a few drawing issues but they shouldn't prevent you to browse the web anymore.

WebKit weekly report #43

Blog post by PulkoMandy on Fri, 2014-09-05 07:20

Hello there,

This week most of my time was spent on debugging. My new machine is running fine, and now building WebKit takes a little more than an hour, which is much better than the 4 hours I was getting on the old laptop. With a 4 thread CPU machine some concurrency and locking issues became much easier to reproduce. This led to identifying and fixing a bug in our BSecureSocket class, which was not properly setting up SSL for thread-safe operation. I think this will fix most of the remaining memory corruption problems.

Syndicate content