Add-on Compatibility Updates, Firefox 20 and above

This post is just a mixed bag of add-on compatibility issues that developers should be aware of, most of which will be included in future compatibility updates in this blog, but are worth giving a heads up in advance.

Asynchronous Places [21]

A large number of Places APIs will be removed in Firefox 21, as Places continues to become fully asynchronous. The list of API changes and discussion is happening on this dev.extensions thread.

Lazy Tab Restoration [20]

Firefox already implements this feature where old tabs are only loaded on demand after a Firefox restart. To further optimize this feature and save more memory, the browser elements in these tabs will be set to display: none. This means that many assumptions about accessing such tabs are now broken, like the existence of a docShell, browser.contentWindow, etc. If your add-on looks into content of existing tabs, you should make sure it works with tabs that haven’t been loaded yet. This will ship in Firefox 20, currently on beta.

Java Click-to-Play

The continuous click-to-play blocks that we have been doing for Java may be breaking some add-ons that rely on Java code. We strongly recommend that you move away from Java and implement your add-on code either using JavaScript or external libraries and JS-ctypes. If you still rely on Java for your add-ons and have run into problems with click-to-play, this bug might help.

5 responses

Hmm, if I’m interested in per-window-PB, where should I look for the docs? The linked bug doesn’t say anything, the pbngen bug links to the implementation wiki (i.e. it shows the plan before work was underway), and nsIDocShell didn’t actually say much about private anything. (I’m hoping to essentially set up an XHR with a separate cookie jar.) Basically: I’m going to guess leads to how to transition to the new world will be useful!