Add-on Compatibility for Firefox 32

Firefox 32 will be released on September 2nd. Here’s the list of changes that went into this version that can affect add-on compatibility. There is more information available in Firefox 32 for Developers, so you should read that too.

General

Content scripts

Implement Xrays to Object objects, Implement Xrays to Array objects. This extends an important security barrier between privileged and unprivileged code, called Xray Vision. In a nutshell, it protects privileged scripts from running unexpected code when calling familiar functions in content code, like window.alert, which can be replaced by page scripts. It ensures that you always call the original function.

For better separation between privileged and unprivileged code, we recommend that you start looking into the Message Manager. We will be writing more about it soon, because using the Message Manager will be necessary when Firefox moves to a multi-process architecture (known as Electrolysis or e10s for short). The sooner you start using it in your add-on, the better.

XPCOM

New!

  • Provide add-ons a standard directory to store data, settings. Most add-on devs know that they should store their data somewhere in the profile directory (preferences should only store small configuration values), but we don’t have a clear standard for this, or a good storage API. This first step establishes a standard directory: [profile]/extension-data/[add-on ID]. The follow-up bug will implement an API to make it easier to store data in that folder. For now, you should consider migrating your data to the new location. Kudos to Alex Vincent for the great work!

Please let me know in the comments if there’s anything missing or incorrect on these lists. If your add-on breaks on Firefox 32, I’d like to know.

The automatic compatibility validation and upgrade for add-ons on AMO will happen soon, so keep an eye on your email if you have an add-on listed on our site with its compatibility set to Firefox 31.

6 comments on “Add-on Compatibility for Firefox 32”

  1. Kohei Yoshino wrote on

    Translated to Japanese, as usual:
    https://dev.mozilla.jp/2014/08/firefox-32-addon-compatibility/

  2. Nicolas Sprauel wrote on

    Hi,

    You asked if add-ons break in v32.0 (I use the portable version): I use PassIFox in association with KeePassHttp and KeePass, as well as FireBug.
    – PassIFox, which automatically fills in username/password fields from your KeePass password vault, stopped working altogether on v32 – the add-on appears enabled, but stops doing anything.
    – FireBug (no introduction needed I guess) behaves erratically: I noticed sometimes it does not show the page script content, or the ‘hover to inspect’ tool does not work.

    Anyway, I rolled back to v31 and it all got back in order, I’ll stick to this until I find signs that these incompatibilities have been fixed from one end or another.

    I’m not complaining really, you’re all doing an awesome work for the best internet browser there is (to my view), I just thought I’d mention the issues I hit, since you asked for feedback.

    Thanks

    Nick

    1. Nicolas Sprauel wrote on

      Apologies, retracting my comment about FireBug, it was site-related. The issue still stands with PassIFox though.

      Nick

    2. Jorge Villalobos wrote on

      Looks like PassIFox was updated and approved a day after you posted this comment. Hopefully it’s working for you now 🙂

      1. Nicolas Sprauel wrote on

        Hi Jorge,

        Thanks, yes, in parallel to this post I had raised an issue on the Github site for PassIFox, and the authors really quickly provided a fix (v 1.1.12) which worked for me as well as other users who experienced the same problem. All good now 🙂
        Thanks for your ongoing amazing work on Firefox !
        All the best

        Nick

  3. Sawyer wrote on

    Whoever thought the new contextual navigation buttons at the top of the right-click menu were a good idea should do the world a favor and revert the change. Absolutely terrible UX.

    http://i.imgur.com/EwyPPeC.png