Category Archives: WebKit

Page groups, page icons and pretty quick reviews

I updated [https://bugs.webkit.org/show_bug.cgi?id=32789 a patch adding WebKitWebGroup API], which is going to let applications inject scripts and styles into views or, as the name indicates, groups of pages with a common name. The methods to add and clear scripts are in a separate patch, discussion is needed on what the exact API should look like. The page group will also be the way to control visited links and DOM storage privileges, those are implicitly global currently with no way of changing it.

With my latest patches I encountered a lot of false positives on automated coding style checks. I was happy to see that the issues with WebKitGTK+ API headers were fixed very quickly after I reported them.
I also noticed and fixed [https://bugs.webkit.org/show_bug.cgi?id=54393 a regression with missing default menu items] and again review happened in no time. This is how it should be.

At the moment the access to page icons, or favicons, consists of a function to obtain the URI for a web view. [https://bugs.webkit.org/show_bug.cgi?id=32510 The new WebKitIconDatabase object] is there to make it more flexible. Icons can be loaded into pixbufs, it is possible to globally listen to icon changes, which is essential for bookmark icons or history display and the location on disk can be changed, including unset to disable icons if so desired.

Thanks again to [http://www.lanedo.com my employer Lanedo] for letting me hack on WebKit.

File choosing, passwords and translations

So I started to get back to WebKitGTK+ hacking after being inactive for a while, [http://www.lanedo.com Lanedo kindly sponsors some time for me me to work on WebKit]. I spent some time to get an overview of the bug load while doing test builds, which still require patience and a lot of tea, despite the two 2 2.5GHz cores I have.

So I updated and improved the proposed patch for [https://bugs.webkit.org/show_bug.cgi?id=32163 WebKitFileChooser API], which should allow applications to provide their own file chooser, preset the right folder and keep track of uploaded files, including support for multiple files.

A seemingly simple issue is [https://bugs.webkit.org/show_bug.cgi?id=34285 support for input methods in password fields] which is basically unconditionally disabled right now. By extension virtual keyboards can’t be used. What stalled this in the first place is that the Mac port has completely different code for it and understandably reviewers are hesitant to continue working around the inconsistency.

I noticed prominently a number of translations slumbering in bugzilla, so I actually went ahead and committed all I found except one (waiting for reply from the translator). And it may be possible to add these to the next stable release as well.

[https://bugs.webkit.org/show_bug.cgi?id=50561 Pan Scrolling] is a popular feature. You may have never heard of the name, at least I didn’t know that term before I found out WebKit calls it that. Middle click on a page, and a four-directional mouse pointer appears, allowing you to scroll by moving the mouse. The featues is right now disables by default in WebKitGTK+ and depends on a build-time option. I updated a patch to add a runtime setting, and I am also proposing to make it unconditional. Waiting for feedback.

I also fixed [https://bugs.webkit.org/show_bug.cgi?id=54087 too many spelling suggestions] and [https://bugs.webkit.org/show_bug.cgi?id=54092 a redundant separator in context menus]. Small but very noticible bugs.

Back from the WebKitGTK+ hackfest

I have been very busy during the last week, during the [http://live.gnome.org/action/edit/WebKitGtk/Hackfest2009 WebKitGTK+ Hackfest] in A Coruña kindly made possible by [http://www.igalia.com/ Igalia], [http://www.collabora.co.uk/ Collabora] and the [http://foundation.gnome.org/ GNOME Foundation]. The Igalia Office is a very nice place to be productive and relaxed. It was an exciting time and it was nice to be able to discuss and exchange ideas in-between lots of hacking.
I had the chance to see [http://blogs.gnome.org/xan/2009/12/21/webkitgtk-hackfest-day-g_maxint/ Xan], [http://blog.kov.eti.br/ Gustavo], [http://blogs.gnome.org/otte/ Benjamin] and [http://vanschouwen.info/nerdynotes/?p=398 Reinout] again while having the chance to meet Alejandro, [http://base-art.net/Articles/112/ Philippe], [http://mces.blogspot.com/2009/12/europe-here-i-come.html Behdad], [http://community.livejournal.com/evan_tech Evan] and [https://appcelerator.lighthouseapp.com/users/60086 Martin].
Special thanks to [http://blogs.igalia.com/xrcalvar/ Xabier] who picked me up from the airport and brought me back on the way home.

Now to the actual work on WebKitGTK+ that I’ve been doing.
- [https://bugs.webkit.org/show_bug.cgi?id=32359 Asynchronous downloading] with WebKitDownload. It was possible before but mostly coincidentally, and I updated a unit test to take it into account.
- [https://bugs.webkit.org/show_bug.cgi?id=25263 Proxy handling] is up to applications. After a discussion with Dan and others I filed [https://bugzilla.gnome.org/show_bug.cgi?id=605048]a bug in libsoup for supporting http_proxy by default].
- Finally [https://bugs.webkit.org/show_bug.cgi?id=24001 Cache control API] has landed, thanks to Alejandro. Being in the same room allowed for discussing some unclear aspects.
- [https://bugs.webkit.org/show_bug.cgi?id=32789|Page groups] are a concept in WebKit to group views, or tabs, within an application. They are important to let us have visited link handling, support for user style sheets and scripts (those are supported by Midori already, but through a JavaScript workaround) and DOM storage handling. I didn’t have time to finish my patch, I will try to do that soon.
- I also worked on [https://bugs.webkit.org/show_bug.cgi?id=32163 custom file choosing] from applications. So that you can override WebKitGTK+’s file chooser and for instance use the same folder in all file choosers and customize it to your needs.
- I made [https://bugs.webkit.org/show_bug.cgi?id=30908 spell check actually usable] by fixing replacing the wrong word with the chosen suggestion.
- I worked on [https://bugs.webkit.org/show_bug.cgi?id=32770 making spell check work on un-selected text] the same way it works in for example AbiWord. WebCore expects a selection due to differences in behaviour on Macs.
- Small improvements to [https://bugs.webkit.org/show_bug.cgi?id=27546 context menus].
- A new [https://bugs.webkit.org/show_bug.cgi?id=19456 function to execute commands], for example to format text, and to track formatting, in rich text areas.
- I deprecated the old loading signals and updated the unit tests to use load-status.

During this time I hardly found room for Midori. Fortunately [http://alex-butenko.livejournal.com/ Alex] filled in for me and worked on a number of performance tweaks and improvements to web cache and advertisement blocking.

Note [http://www.flickr.com/photos/mariosp/sets/72157622899055111/ Mario took pictures] in the office. If you look hard you can spot me there.

Yours,
Christian