* start, so it wont see this event. Therefore, for add-ons requiring a * restart, Sync treats the IL.onInstallEnded event as good enough to * indicate an install. For restartless add-ons, Sync assumes AL.onInstalled * will follow shortly after IL.onInstallEnded and thus it ignores * IL.onInstallEnded. * * The listeners can also see events related to the download of the add-on. * This class isnt interested in those. However, there are failure events, * IL.onDownloadFailed and IL.onDownloadCanceled which get called if a * download doesnt complete successfully. * * For uninstalls, we see AL.onUninstalling then AL.onUninstalled. Like * installs, the events could be separated by an application restart and Sync * may not see the onUninstalled event. Again, if we require a restart, we * react to onUninstalling. If not, we assume well get onUninstalled. * * Enabling and disabling work by sending: * * AL.onEnabling, AL.onEnabled * AL.onDisabling, AL.onDisabled * * Again, they may be separated by a restart, so we heed the requiresRestart * flag. * * Actions can be undone. All undoable actions notify the same * AL.onOperationCancelled event. We treat this event like any other. * * Rest乾隆的太医留下来的民间偏方2017上半年TOP25游戏公司 游
|