Mozilla plans to change the backend for the storage.local API to indexedDB from JSON to improve performance in Firefox 63. The migration happens in the background and Firefox users who run Firefox 63 should not notice any issues afterward.

Problems may arise however if users downgrade Firefox to an earlier version or switch to a channel that is not yet at Firefox 63 or newer.

The change will land in Firefox Nightly first and if users load the Beta or Stable version of Firefox with the Nightly profile, they may run into data regression issues with extensions installed in the browser.

Mozilla revealed the change on the organization's Add-ons blog that it uses to inform developers of extensions for Firefox about upcoming changes and new features.

If your users switch between Firefox channels using the same profile during this time, they may experience data regression in the extensions they have previously installed.

Mozilla recommends that users don't downgrade from Firefox 63 in any form (be it by installing an older version and running it, or running an older version that is installed already using the same profile).

How to find out if the data has been migrated

You can do the following to find out if the storage API has been migrated already to the new storage format:

1. Load about:config?filter=extensions.webextensions.Exten sionStorageIDB.enabled in the address bar of the browser.
2. Check the value of the preference.
  • True means that the data has been migrated.
  • False that Firefox uses the old format.

3. Search for extensions.webextensions.ExtensionStorageIDB.migra ted.
  • If the Extension ID is set to true, the extension storage has been migrated.

What you can do to re-migrate the data

Mozilla published instructions on re-migrating the extension data should it not be there after the migration. Note that it requires quite a few steps including removing the extension from Firefox and reinstalling it.

  1. Open about:debugging and write down the extension ID (or remember it).
  2. Open the profile folder of Firefox by loading aboutrofile and there the open folder option.
  3. Open the folder browser-extension-data.
  4. Open the Extension ID folder.
  5. Uninstall the extension.
  6. Copy the file storage.js.migrated which you find in the Extensions ID folder to a new file and name it storage.js.
  7. Open the browser console by selecting Menu > Web Developer > Browser Console or by using the shortcut Ctrl-Shift-J.
  8. Install the extension again.
  9. The browser console should display a migration message. Wait for this to happen.

Closing Words

If you need to run different Firefox channels, use different profiles (and you can even run the profiles simultaneously). You can copy profile data from one profile to the other to create copies if you want to work with the same data set.