canmove, Confirmed users
1,570
edits
No edit summary |
|||
| Line 117: | Line 117: | ||
=Add-on Management Stories= | =Add-on Management Stories= | ||
These are high level descriptions of the sequence of events that is followed in order to perform a specific tasks. Much of the nitty gritty error handling is skipped. | |||
==Add-on Install== | ==Add-on Install== | ||
# Install starts with the <code>installItemFromFile</code> method | |||
# The install manifest is parsed and the data is checked for compatibility | |||
## If the add-on is not compatible with the application then a remote update check is performed. | |||
## If the remote check shows the add-on is compatible then that information is stored in the RDF datasource to be ready after the restart. | |||
# The add-on's <code>XPI</code> file is placed in a staging area in the target install location. | |||
# A small amount of the information from the install manifest is added to the RDF datasource and the item is marked as needs-install. | |||
# The user must then restart the application. | |||
# During the restart the pending install is finalised, all the remaining install manifest data is added to the datasource and any updated compatiblity information included. | |||
# The runtime restarts the process again to ensure any new components are registered. | |||
==Add-on Enable== | ==Add-on Enable== | ||
# <code>enableItem</code> is called to enable an item. | |||
# It updates the <code>userDisabled</code> RDF property and marks the item as needs-enable | |||
# The user must then restart the application. | |||
# During the restart extensions.ini is updated to add the add-on to the list of usable bundles. | |||
# The runtime restarts the process again to ensure any new components are registered. | |||
==Add-on Disable== | ==Add-on Disable== | ||
# <code>disableItem</code> is called to disable an item. | |||
# It updates the <code>userDisabled</code> RDF property and marks the item as needs-disable | |||
# The user must then restart the application. | |||
# During the restart extensions.ini is updated to remove the add-on to the list of usable bundles. | |||
# The runtime restarts the process again to ensure any components are unregistered. | |||
==Add-on Upgrade== | ==Add-on Upgrade== | ||
Upgrade proceeds in basically the same way as an install except that during the restart the old files are moved aside before the new files are moved into place. | |||
==Add-on Uninstall== | ==Add-on Uninstall== | ||
# <code>uninstallItem</code> is called to uninstall an item. | |||
# It marks the item as needs-uninstall | |||
# The user must then restart the application. | |||
# During the restart the add-on's files are removed, the data removed from the RDF datasource and the startup cache and extensions.ini is updated to remove the add-on to the list of usable bundles. | |||
# The runtime restarts the process again to ensure any components are unregistered. | |||