A Proposal for Webkit Programmers

Sandvox is built using some cool technologies from Apple, the most obvious one being WebKit. It not only renders Web content but provides the basic framework that allows a user to edit text directly on the page. We think WebKit is great, but we've also been finding some bugs in Apple's code that we have to work around.

Unlike most other toolkits from Apple, WebKit is open-source, which means that any engineer can fix the bugs, not just folks at Apple. And, in an ideal world, we would have a staff of dedicated programmers assigned to fixing the WebKit bugs that we need fixed to make Sandvox work as smoothly as possible.

But we are a small company, and programming the depths of WebKit is not our forte.  So we came up with an idea: offer a tangible "thank you" to whomever can fix the bugs we need fixed. A win-win situation: not only will Sandvox benefit, but so will any app that uses WebKit.

So here is our offer: for each bug from our list (below) that is fixed (via a patch attached to the report in the WebKit Bugzilla), to our satisfaction, we will pay a "fix thank you" of US$100. If and when a submitted patch is committed to the official WebKit repository, we will pay that person a "committed patch thank you" of US$150.

These are the bugs that we need fixed, and that are eligible for the "thank you":

3579 In-place style-switching is leaving junk behind, messing up styles

3983 outline:auto improperly puts outline around contained elements, not the actual div

4003 contentEditable div cannot be edited if it starts out with empty or <p/>

4726 Drop of multiple non-image file URLs only yields one item

4879 Included Javascript included in a page loaded with [WebFrame loadHTMLString:] is ignored

5354 Corner case where you can select outside the bounds of an editable block.

For developers interested in taking any of these on, these are some useful resources: theWebKit Home Page, OpenDarwin Bugzilla, the Surfin' Safari Blog, and the public IRC channel #webkit on irc.freenode.net.

Now the fine print: Apple employees and contractors are not eligible for the monetary "thank you." (We don't want to have a conflict of interest with Apple's scheduling.) Work performed is licensed under the same license as the rest of WebKit. In the event multiple fixes are submitted, we will pay a "fix thank you" to the creator of the first submission that meets our criteria. We will pay a "committed patch thank you" to the creator of whichever patch is committed to the repository; this may not necessarily be the same person who submitted the first patch that met our criteria. After the programmer submits a patch to Bugzilla and/or a patch has been committed to the repository, and it meets our criteria, he/she mustsubmit an invoice for their work to Karelia Software. (We prefer Paypal for non-US payments.) Karelia reserves the right to withdraw or modify this offer, with respect to any or all bugs noted above, at any time prior to submission of a patch that meets our criteria.

Update: I've pulled 3985 from the original list because it's just an assertion failure, not really a bug that affected Sandvox.

Update 2: So far so good, there has been some progress on a good number of the bugs listed. A couple are close to being resolved, and one is off the table because it turns out that it's a Apple documentation issue, not a code bug that needs fixing. [Also, Merci to the prolific comments, I have fixed the atroseous speling eror in this entry.]

Update 3: Operation successful!  It took a while, but they are pretty much all solved.