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:
- Should I show a page upon install/update/uninstallation?
- Should I use local or remote update/install pages?
- What should I put on the install page?
- What should I put on the update page? (Change log, yes or no?)
- What should I ask for on the uninstall page?
- 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("https://takethatyoufiend.com");
//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: "https://www.pobox.com/~msaroff"});
break;
case "update": //if the extension is updated
browser.tabs.create({url: "https://www.pobox.com/~msaroff/40"});
break;
}
});