Cocoa Widget Work

I’m working on Cocoa widgets some now, trying to fix them up and get them working in Firefox. Basically, we’ll have Camino-style widgets in Firefox. Using Cocoa widgets doesn’t necessarily mean that widgets (form buttons, etc…) will look like native widgets, that just happens to be the case with many widgets. It really only means that the widget code is (mostly) written using the Cocoa API as opposed to the Carbon API. So, with Cocoa widgets in Firefox we get some better looking forms and easier-to-maintain code. Furthermore, if we can get all products onto one widget set then we will have further reduced maintenance overhead. I’m learning the code right now, and starting to know enough to get some real work done. I may have it limping along by next week, but it won’t be a part of Firefox until some time after Firefox 1.1 is released. There is a considerable amount of work to be done.

Apple Hardware Impresses Me Again

Yesterday I spilled a lot of water right on top of my PowerBook. Not a shot-glass worth – about half a cup. It pretty much flowed all over the keyboard, while the machine was running, compiling a copy of Firefox. I quickly flipped it over on the desk so the water would drain out, and turn it off by holding down the power button while upside down. I took out the battery and held it upside down for a while so the water drained out, then went to see Batman Begins while it dried. Alex Polvi (fellow skateboarder interning at MF) kept reassuring me on the way to the movie that it would work just fine, but I had little faith due to the amount of water that went onto the keyboard. After the movie we went back and it booted fine, no problems whatsoever, and I’m using it now to type this. Amazing. I keep hearing people say they have problems with Apple hardware, but I’ve had nothing but wonderful experiences. Note: The PowerBook that got soaked is an aluminum PowerBook G4 1.5Ghz.

We’ll see how impressive the Intel Macs I’m getting tomorrow are. Unfortunately, I can’t blog about my experience with those…

Mac Development Wiki

I have started a Mac development section at Mozilla’s wiki site.

In the Mac development section I have outlined some of the most important things we need to work on over the medium to long term. For each one I tried to make some basic notes about what is going on. It is sparse now, but I’ll write more soon and hopefully other Mac developers will help me fill it in. I’m not sure exactly how we’re going to maximize use of this resource, but I hope it will evolve based on our needs. I want it to be a place where we can outline the decisions we need to make, outline the pros and cons of different plans, record the decisions we make, and lay down plans for implementing things. If you want to know some of the details about what is going on with Mac development, read the docs there. However, please don’t edit the docs unless you are a developer.


I haven’t worked much today because I was up until 4 AM debugging Mozilla’s internal screen coordinate system and then all the Mozilla Foundation folks went GoKart racing in Burlingame around the time I showed up at work. Kart racing is awesome, but I left with my hands in pain from blisters from making so many sharp turns on a hard plastic steering wheel with no gloves. I’m going back at the coordinate stuff tonight (my biggest problem is Firefox on Mac window positioning, which opens a can of worms), but first its nap time.

Fun fact of the day from a car ride with Benjamin Smedberg is that his previous job was music director at a Catholic church. That’s awesome. Gives me hope for my ambition to become and English Literature professor.

Firefox and Thunderbird Now Using CFRunLoop

I checked in the code for switching all Mac OS X products to CFRunLoop. Tomorrow’s nightly builds will use it. None of the “regressions” pointed out by test users seemed related to CFRunLoop, they were just problems on the trunk at the time I made the test builds. Hopefully from here on out we’ll have a much improved plugin experience, and other parts of the browser should be snappier as well.

As a side note, lots of people reported problems with bfcache in my test build. People – bfcache is turned off by default for a reason, and that reason is that it doesn’t work yet.