Issues When Developing Firefox Extensions
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