Best Way to do Install/Update/Uninstall Pages

(Matthew G. Saroff) #1

OK, I’m going to be updating my extension shortly, and I would like to add pages that the user sees when installing, uninstalling, and updating.

It appears to me that there are two basic ways of handling this, to include those pages in the package (except for the uninstall) or to provide a link to an external web page.

I’m inclined to choose the latter, as it makes the XPI smaller, and allows for corrections on those pages without having to issue an update to the app package. (I have a basic example of the code at the end, which could be used for either local or remote pages)

Any thoughts on this choice?

For the uninstall page, I want to refer to a feedback page, and I was wondering which service I should use, and which questions I should ask.

For the installation and update pages, I am thinking of just putting them up on the project’s Github page, though I do have space on a server for a custom page.

Are there any suggestions as which to do, and what I should (or shouldn’t) include in such pages?

I would note that I have read Mozilla’s best practices for onboarding, upboarding, and offboarding users.

So basically, my questions are:

  1. Should I show a page upon install/update/uninstallation?
  2. Should I use local or remote update/install pages?
  3. What should I put on the install page?
  4. What should I put on the update page? (Change log, yes or no?)
  5. What should I ask for on the uninstall page?
  6. Is Github OK for the all of the above? (particularly for the uninstall page, which will have a feedback form)

Simple example code is below: (place in background script, web pages are for testing purposes only)

//web page to open when the extension is uninstalled
var settingUrl = browser.runtime.setUninstallURL("");
//what to show user when installing for first time or updating
browser.runtime.onInstalled.addListener(async ({ reason, temporary, }) =>{
  if (temporary) return; // skip during development comment out when running testing
  switch (reason) {
    case "install":  //if initial installation
      browser.tabs.create({url: ""});
    case "update":  //if the extension is updated
      browser.tabs.create({url: ""});
(Martin Giger) #2

The implication of remote pages that you presumably open automatically is that you make the user a visit a server they may not want to visit (hosting provider TOS etc.)

I personally have extensions with either approach. There are upsides to remote hosting (being able to update contents without an extension update), on the other hand most of the info on these pages is bound to the extension version, so including it can be the more stable solution.

In general, you should provide an opt-out, no matter if the pages are remote or local, though. Of course an opt-out would only affect the update case.

If you don’t know what you’d put on there, you probably don’t need it. But generally you’d want to help the user get started with the extension (think “tutorial”).

Same as with install page, if you can’t think of something you’d want on there, don’t have the page.


GitHub only offers static page hosting, there’s no way to collect answers. You’d have to use some third party tool for the actual survey.

I think the guide that you’ve read explains very well what you could put on these pages, you just have to decide what you actually want to put on there. I’m sorry, but that’s a decision you’ll have to make yourself.

(Matthew G. Saroff) #3

I’ve decided that I do need an initial install page and an update page, particularly the latter, since existing users will have to manually update a preference which has now been activated.

I have a phpBB board for support of the extension, And you can attach pages to the board in addition to posts, this is what I will do.

Considering the fact that the app is about providing context menu aids with such a BBS, it’s a natural fit, since it takes them to the location of the BBS.

You can see the pages (in process as of 17 May 2019) here, here, and here.

I am using Google forms for the uninstall survey.