Easy(er) Leak Testing With NTT

David Baron recently put out the call for there to be more leak testing on trunk builds.  We have a number of regressions that we need to find and fix before Firefox 3 goes out the door. The best way to do leak testing has always been to use his excellent leak-gauge script which catches more leaks than the leak monitor extension. Unfortunately the leak-gauge script is not the easiest of beasts to play around with.

Thankfully for some time now Nightly Tester Tools has had the leak-gauge script included in it to hopefully make this process a bit easier. I discovered today that that functionality has actually been broken on trunk builds so make sure you pick up the latest version 1.3b1 if you want to use it (don’t worry i should be pretty stable as betas go). Once installed just go to Tools – Nightly Tester Tools – Analyse Leak Log. Tell it where to find your log and it will create a leak report that you can copy to the clipboard at the touch of a button.

Unfortunately you still need to actually create the leak log, I suggest a script something like this (will need adapting for other platforms):

cp -f nspr.log lastnspr.log
export NSPR_LOG_MODULES=DOMLeak:5,DocumentLeak:5,nsDocShellLeak:5
export NSPR_LOG_FILE=/Users/dave/nspr.log

Then you can analyse lastnspr.log while still logging the current run. In Firefox you can even set the log analyser as the home page so it automatically loads the last log on startup.

Note that you can’t analyse the log being generated by a currently running app, nor one from a crashed session in an app, both will look hideously leaky. Please be sure to file good memory leak bugs and good leak hunting.

Extension Updates

Obviously for those keeping up with this rather minimal blog I’m somewhat behind where I hoped to be since my last post. Still no new release of Nightly Tester Tools so I thought it worth giving a quick roundup of the few extension’s I’m still working actively on and what’s happening with them:

Nightly Tester Tools is getting the main development work right now. My previous few weekends have been spent working on coding zip support so that it can update an extension’s compatibility info on the fly in the xpi file. This will allow the Mozilla extension manager to do it’s job, which is handling the safe install of the extension itself. Right now I’ve slowed down because I’m about to start talking to Mozilla about getting the zip writing component into the Mozilla platform which will undoubtedly require some API changes. That and I don’t have a Linux or Windows platform to do a build of the component on. If anyone wants to volunteer to assist (you need to already have experience of building a mozilla app) then please get in touch.

Tab Sidebar is an extension that many are waiting for the updates that I currently have in development. A lot of it is there and working, unfortunately there are also some broken bits so it’s really a case of finding the time to get those fixed.

/Find Bar/ is now totally broken on trunk builds of Firefox, but should still be ok on 2.0.0.x builds, though I have had a few error reports and suggestions on how to proceed. The next steps are to make this handle block content in pages as paragraphs and then to try to find and fix what’s causing a rare crash. I also need to work out how toadd to the new find bar widget on trunk without duplicating too much of it, but so far that’s proving to be tough.

Toolbar Thinger is not receiving a lot of attention. I have had some good reports that people are finding it very useful, also a couple of reports of problems unfortunately not in enough detail for me to be able to track the issues down. At some point I want to find a nice icon for it, do a full track through for any issues I’ve missed and then do a first proper release.

Update Channel Selector was always a very simple extension and so unsurprisingly it’s not needed a lot of work. Unfortunately it seems that Vista has changed that. In order to change the channel, the extension has to overwrite a file in the application’s installation directory. Vista doesn’t let you do that as easily as previous versions of Windows did. Unfortunately I do not have a Vista machine to play with so resolving that could take time.

Finally I have taken the step of marking JavaScript Options and Cookie Extras as officially discontinued. It’s unfortunate but I do all this work in my spare time and as you can see from above, I simply do not have enough of it to be able to keep up with the extensions that I want to spend time on, let alone those that I have lost interest in. I will continue to make the extension’s available on my site and I have decided that if enough people let me know that the extension works flawlessly in newer versions of the application then I will update the compatibility information (I am about to do this for Cookie Extras). However I will be releasing no new versions of these extensions.

Since both those extensions are open source (as are all my extensions) if anyone particularly wants to take over development of them then I am happy to discuss that possibility.