Extension Manager:Overview: Difference between revisions

Jump to navigation Jump to search
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.
canmove, Confirmed users
1,570

edits

Navigation menu