Category Archives: WebKit

File choosing, passwords and translations

So I started to get back to WebKitGTK+ hacking after being inactive for a while, [ 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 [ 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 [ 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.

[ 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 [ too many spelling suggestions] and [ 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 [ WebKitGTK+ Hackfest] in A Coruña kindly made possible by [ Igalia], [ Collabora] and the [ 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 [ Xan], [ Gustavo], [ Benjamin] and [ Reinout] again while having the chance to meet Alejandro, [ Philippe], [ Behdad], [ Evan] and [ Martin].
Special thanks to [ 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.
– [ Asynchronous downloading] with WebKitDownload. It was possible before but mostly coincidentally, and I updated a unit test to take it into account.
– [ Proxy handling] is up to applications. After a discussion with Dan and others I filed []a bug in libsoup for supporting http_proxy by default].
– Finally [ Cache control API] has landed, thanks to Alejandro. Being in the same room allowed for discussing some unclear aspects.
– [|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 [ 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 [ spell check actually usable] by fixing replacing the wrong word with the chosen suggestion.
– I worked on [ 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 [ context menus].
– A new [ 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 [ Alex] filled in for me and worked on a number of performance tweaks and improvements to web cache and advertisement blocking.

Note [ Mario took pictures] in the office. If you look hard you can spot me there.