Archive for January, 2006

Bugs involving multiple extensions

Tuesday, January 31st, 2006

I thought bug 324586: browser.xul leaks (with Flashgot & Adblock Filterset.G Updater installed) was notable for involving multiple extensions. Then I saw bug 325279: Firefox 1.6a1 crash on exit, which requires a combination of four extensions.

I wonder whether these are bugs in the extensions, bugs in Firefox that are tickled by extensions, or problems where the extensions interfere with each other directly (such as two extensions having global variables in browser.xul overlays with the same name).

Pictionary for geeks

Sunday, January 29th, 2006

Majken got me hooked on an online game called iSketch. It's similar to Pictionary: a word or phrase is chosen randomly, and one player tries to draw it while the other players try to guess what it is. We play with the "computer terms" list, which includes phrases like "dynamic link library", "personal computer", "arithmetic and logic unit", "hexadecimal", "Mozilla", and "intranet".

I'm playing right now with a few friends from the Mozilla community. Come join us in the user-created room called "Foxymonkies"! IM me or email me your AIM screenname if you want me to IM you next time we play.

iSketch requires Shockwave. I've played on Windows and Mac, mouse and touchpad.

Little-known fact

Sunday, January 29th, 2006

Chuck Norris can dereference a NULL nsCOMPtr.

Stylish

Sunday, January 15th, 2006

Stylish, a Firefox extension by Jason Barnabe, lets you manage CSS rules to change the appearance of web sites.

Stylish is to CSS what Greasemonkey is to JavaScript. Stylish allows you to easily manage user styles for the application UI, all websites, or only certain websites. Stylish is better than using userChrome.css/userContent.css because styles are applied immediately instead of requiring a restart.

Some Greasemonkey scripts only add stylesheets. These scripts would work better as user stylesheet additions, because user style rules are applied immediately rather than only after the page finishes loading. Stylish makes it as easy to add a user stylesheet as it is to install Greasemonkey scripts.

You can use it with pre-written user style rules such as my examples or you can write your own as you use the extension. The test styles bookmarklet, which lets you experiment with added CSS rules, complements Stylish well.

Update 2005-02-11: Updated link to point to userstyles.org/stylish instead of the extension's forum thread.

“If you buy me a Mac” returns

Sunday, January 15th, 2006
<morgamic> holy crap
<morgamic> you guys have been busy
<morgamic> nice work!
<Lupine1647> Now we just need a Mac to get some of those themes reviewed, heh.
<gavin> If you buy me a MacBook Pro I'll do it.

"If you buy me a Mac" is somewhat of a running joke in the Mozilla community, but I hadn't heard it for a while. Apple must have done something right with the MacBook Pro.

Firefox memory leak detection tool

Friday, January 13th, 2006

David Baron recently wrote a tool that testers can use to help reduce memory leaks in Firefox. With this tool, you can find out what leaks you encounter during your normal browsing patterns and report useful bugs when you encounter leaks.

It detects many large leaks even though it only tracks three types of objects (documents, docshells, and domwindows) because many large leaks entrain at least one of those objects. It tries to report the URLs associated with the leaks it detects, allowing you to go back and figure out the steps needed to reproduce the bug.

I have found three leaks so far with this tool. David Baron has already fixed one of them on the trunk.

To use leak-gauge.pl, you need a version of Firefox with the logging code, such as a recent trunk nightly build. If you're using Windows, you'll also need to download Perl. leak-gauge.pl contains instructions for making Firefox log the required information and for running leak-gauge.pl to analyze the log.

Update 2006-01-14: There's also a JavaScript version, which might be easier to use if you use Windows and don't have Perl.

Further reading: