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