Migration from self-distributed add-on to the one listed on AMO

We have several Firefox add-ons that are self-distributed. They are submitted using web-ext to addons.mozilla.org for signing. And then we take the resulted XPI and publish on our download server.

We would like to switch the add-on from being self-distributed to being available on addons.mozilla.org for users to download. Thus, the question. What is the most user friendly way of doing that?
Let’s say we have a lot of customers using the current self-distributed version of the add-on. Will they get automatically switched to the version we will upload and change the visible setting?

Found this post from 2015 Migrate from self-hosted to Add-ons Store?. Is that still the case?

So we just need to publish a new version for the existing add-on without updateURL and changing the distribution from “On your own” to “On this site” and that should be it?

Or I am missing something? Thanks!

I think that should still roughly be the way it should work. Notably you can now have both a listed and unlisted version uploaded (version numbers must differ though) so you should be able to upload a listed version first, then test if the upgrade from a new unlisted version that wouldn’t have the update url works. No need to remove the update URL before you have tested that.

1 Like

Great, thanks for the reply! We will definitely test this as suggested.
We have an alpha/CI version of the add-on only available for internal customers. So that would be a good candidate for such experiments. I’ll update the thread once we get to try that.
But good to know that the process should not be that painful overall.

Ok. Got it to work. Important parts:

  • Publish self-hosted extension without “update_url” field. This will be important on later steps. Self-hosted extension without “update_url” field can no longer update (final version of self-hosted extension)
  • Removing “update_url” field is a requirement to publish the extension to the Mozilla store. Mozilla will reject the store publish attempt if the extension has “update_url” field.
  • Publish Mozilla hosted extension with the same ID. Same ID is important. This ID is what Firefox will use to find the replacement in the store.
    “gecko”: { “id”: “<id_here>” }
  • Done. Install the latest of self-hosted extension (the one without “update_url” field), check for updates and it will migrate to the extension from the store.
  • Most likely it’s also a good idea to make sure that the version in the store is higher than the last self-hosted one so that Firefox treats with as upgrade from version N to version N+1 (N+2, etc.). So basically a version increment.
1 Like

I have a self distributed add-on. I uploaded a new version with the update_url removed from the manifest.json file.
The problem is that it still got uploaded as a self-distributed add-on.

What other action should I take except from removing the update_url?

I believe you also need to specify the distribution method when you publish the extension. It used to be under “Where to Host Version” section (it might be still called that).
Missing update_url is required to use store distribution but it’s not the defining factor of distribution choice. That is done manually by the developer when publishing the extension.

1 Like


Yes, you are right. The option is available during upload.