TL;DR: PLEASE Re-pack your add-ons with the latest SDK!

The SDK team has been collaborating with the Memshrink team to identify and fix various ‘zombie’ compartment leaks and similar issues. Nicholas Nethercote writes in his most recent update that Kyle Huey’s recent patch to address these issues is a real game-changer:

I did some testing of eight add-ons that are known to leak: McAfee SiteAdvisor 3.4.1(the old version that leaked every content compartment), Firebug 1.9.1, PicPasso 1.0.1, LoL 1.5, YouTube Ratings Preview 1.03, Enter Selects 7, HttpFox 0.8.10, and Link Resolve 0.7. I tested with a “before” browser build that lacked Kyle’s patch, and an “after” browser build that had it. For every one of the tested add-ons, I could reproduce the zombie compartment(s) with the “before” build, but could not reproduce any zombie compartment(s) with the “after” build. In other words, the patch worked perfectly.

There is an unfortunate side-effect of all this amazing, memory saving goodness which directly affects add-ons that have been packed with older versions of the SDK. If you want all the gory details, please head over to bug 751420.

The good: all you as an add-on dev need to do is re-pack their add-on with SDK version 1.6.1 or greater some time in the next 12 weeks and they should be able to neatly avoid this. Even if you miss this blog post, over the next few weeks we’re going to be planning more outreach to get developers to update, including directly reaching out to developers via AMO.

The bad: the Jetpack project invested some effort in trying tore-pack add-ons on AMO to upgrade them to more recent versions of the SDK, however last fall we stopped doing this in most cases because we found the process to be error prone.

The Future: some time this year the SDK’s loader and apis will start being shipped in Firefox; this will eliminate the need for jetpack developers to worry about what version of the apis is packed into their add-on’s xpi – because there won’t be!

In the meantime, we implore you to please, as soon as you can, re-pack and submit your SDK-based add-ons using SDK version 1.6.1!