http://www.opensolaris.org/os/project/nwam/
I really like OpenSolaris, once this is done my trusty T43 is going to get a new primary OS…
Godspeed!
http://www.opensolaris.org/os/project/nwam/
I really like OpenSolaris, once this is done my trusty T43 is going to get a new primary OS…
Godspeed!
Some friends and I are going to Jay-Z’s 40/40 club in Atlantic City tonight to see the Felix Trinidad vs. Roy Jones Jr fight. I’m pretty excited, I’ve always wanted to go to a 40/40 club and on a fight night it should be great. I’m not a huge boxing fan, or sports fan in general for that matter, but in the right situation I can get into it.
I sold my Nintendo Wii and bought a canoe with my friend Andrew. We live right next to a bunch of lakes including Lake of the Isles, and they are awesome for canoeing. Turns out I don’t really want to play video games much.
We got a canoe that is pretty wide so it’ll be stable with a passenger and for having on-the-lake picnics. I’m so excited! Off to buy some life jackets…

Got a great deal on this Old Town Canoe off of craigslist. Guy bought it for his kids, they don’t use it, but I will!
I started landing pieces of my Mac OS X native theme rewrite. Native theming is not turned on for content in Firefox yet, I’ll flip the switch when the majority of it has landed and things are working well.
Originally I had it in my head that I was going to post a monster patch that just *poof* fixed native theming on Mac OS X and turned it all on. Turns out that this is more complicated than I thought it would be and I was ignoring some lessons I’ve learned in the past about monster patches. Now I’m breaking up my big patch into digestable chunks and it is making things much easier.
I’ve been working hard on new native form widgets for Mac OS X. I am pretty far along and thing are looking great, but I’ve run up against some difficult layout problems that are going to take some more time to solve the right way. It is now clear to me why nobody wrote a kick-ass native form widgets implementation for Mac OS X before. It is really hard! The biggest problem so far is that theme support via Mozilla’s nsITheme API is not very good. Our layout code only implements support for nsITheme in the specific places where Windows and maybe GTK need it.
There are a bunch of other issues with form control vertical alignment and popup button rendering that are specific to Mac OS X and fixing those without hacks is going to be tricky, but I think taking the time to do this the right way is definitely the way to go. If we go with the hacks it is just going to cause more pain in the future, and we might never get around to undoing them. That is pretty much the story of Mozilla on Mac OS X up until now, and it is time to change that.
I’m a little burned out on native theme stuff for now, I think I’m going to take a short break and work on some other cocoa widget bugs.
Its been a while since I wrote about what I’ve been working on and the status of Mozilla Mac OS X development. I am going to make an effort to do this more often, hopefully at least once a week.
There are basically three major tasks to complete in the Gecko 1.9 timeframe.
The first task is to stabilize Cocoa widgets. We need to make them as good or better than Carbon widgets were. We’re about 80% of the way there, the biggest remaining issues being speed, painting, event handling (focus), and printing. That stuff is just going to require us to sit down and fix bug after bug. Colin Barrett is working on Cocoa printing right now, which is awesome because that is the most broken part of Cocoa widgets by far at this point. It sounds like he is making good progress, I’m excited to get that in shape.
The second item on the list is native form widgets. Right now, Camino uses its own code for native form widgets. That code has served Camino well for a while but really it isn’t written correctly and has a lot of bugs. We want to fix all of that so we can have native form widgets in Firefox 3, and that is what I have been working on for the past two weeks. It is going somewhat slowly because it requires unwinding a lot of CSS hacks that Camino used, uncovering and dealing with layout and nsITheme bugs (David Baron has helped quite a bit here), figuring out how to tame the Mac OS X HITheme API, and dealing with Cairo graphics problems. I’m hoping to have a good patch up within the next couple of weeks. Firefox 3 is going to be purdy on Mac OS X.
The last major work item on our list is to allow NPAPI plugins to render using Quartz instead of Quicktime. Right now we only allow plugins to draw with Quicktime, which is bad for plugin vendors and Mozilla performance (once a window starts using Quickdraw, it is kicked off the Quartz Extreme pipeline). I talked with Apple about a spec for this a while ago, and the result is here. I have a patch for part of that, but I’m not going to be able to sit down and finish it until I’m done with the native form widgets.
That’s pretty much where we’re at. In the future I’ll probably write about more specific issues that I’m working on, feel free to ask questions in the comments.
Today I filed my 200th Mozilla bug. I think historically I’ve been a pretty slow bug filer compared to others, but my rate is increasing pretty quickly. My 100th bug was filed some time around January 24th of 2006, which was about 9 months ago, and I’ve been working on Mozilla stuff for maybe 3 years now. So it took about 2.25 years to file my first hundred bugs and 0.75 years to file my second hundred bugs.
Of my 200 bugs, 64% have been fixed. 19% are still open in one form or another. About 5% were duplicates and 7% were marked invalid.
Note: If you use bugzilla to search for my 200 bugs, you’ll probably only see 197. That is because 3 of the bugs are security bugs.
I got Firefox building and running on Mac OS X 10.5 tonight. Here are some tips on doing it, for anyone who’s curious.
- Install darwinports via source (not the installer). This step seriously takes 30 seconds. Read the README.
- Use darwinports to install dependencies like libidl, autoconf213.
- Build with basically whatever mozconfig you want, just make sure you’re using the 10.4u SDK. Earlier SDKs probably work, but the native SDK has some glitches and doesn’t work. You’re better off with 10.4u anyway in basically every situation. I’ll be filing bugs with Apple if the problems with the native SDK turn out to be theirs.
The fact that this works with no patches to our souce code is amazing – it’s a tribute to the quality of opendarwin, Mac OS X 10.5, and our own codebase. Those three pieces of software have come a long way over the past few years.
As of about 2 minutes ago, Cocoa widgets have been turned on by default on the trunk. There are a few regressions I’m working on fixing now, but all in all it is quite usable. I am not going to miss Carbon widgets – this is a huge step forward for Mozilla on Mac OS X. Next up – goodbye Quickdraw gfx, hello Quartz Cairo.
David Baron posted some of his thoughts on the new Firefox 2 theme and the race to get it done in time so as not to miss our targeted Firefox 2 release date. Eloquent as always, David has done a great job of writing out frustrations that I share with him.