Issues When Developing Firefox Extensions

Nexmoe October 5, 2021
This article is an AI translation and may contain semantic inaccuracies.

In theory, extensions built for Chrome can be uploaded to Firefox directly, but you’ll run into a few problems. Here’s a quick summary.

manifest.json was not found

The first time I uploaded a Chrome extension to Firefox, I got manifest.json was not found.

This usually means the uploaded zip doesn’t have manifest.json at the root. In the incorrect package below, manifest.json is inside the dist folder.

Missing add-on ID prevents storage.sync

This one took me a long time. There’s almost no discussion online—only the official English docs mention it. As someone weak in English, it was painful.

How to fix it

You need to add an add‑on ID in manifest.json:

"browser_specific_settings": {
    "gecko": {
    	"id": "{your add-on ID}"
    }
}

How to get the add‑on ID

Upload the extension to Firefox AMO (the Firefox add‑on store).

In the extension admin page, go to Technical Information -> UUID. That UUID is the add‑on ID, formatted like {99646b8e-a5b2-4e52-b9ac-c38fcc1f108b}.

You also need the add‑on ID when calling these APIs. More info: Extensions and the Add-on ID | Firefox Extension Workshop