Back to index
|Called by a profile change observer when a fatal error occurred during the attempt to switch the profile. |
nsIObserver topics for profile changing.
Profile changing happens in phases in the order given below. An observer may register separately for each phase of the process depending on its needs. The subject passed to the observer's Observe() method can be QI'd to an nsIProfileChangeStatus.
"profile-approve-change" Called before a profile change is attempted. Typically, the application level observer will ask the user if he/she wants to stop all network activity, close all open windows, etc. If the user says NO, the observer should call the subject's vetoChange(). If any observer does this, the profile will not be changed.
"profile-change-teardown" All async activity must be stopped in this phase. Typically, the application level observer will close all open windows. This is the last phase in which the subject's vetoChange() method may still be called. The next notification will be either profile-change-teardown-veto or profile-before-change.
"profile-change-teardown-veto" This notification will only be sent, if the profile change was vetoed during the profile-change-teardown phase. This allows components to bring back required resources, that were tore down on profile-change-teardown.
"profile-before-change" Called before the profile has changed. Use this notification to prepare for the profile going away. If a component is holding any state which needs to be flushed to a profile-relative location, it should be done here.
"profile-do-change" Called after the profile has changed. Do the work to respond to having a new profile. Any change which affects others must be done in this phase.
"profile-after-change" Called after the profile has changed. Use this notification to make changes that are dependent on what some other listener did during its profile-do-change. For example, to respond to new preferences.
"profile-initial-state" Called after all phases of a change have completed. Typically in this phase, an application level observer will open a new window.
Contexts for profile changes. These are passed as the someData param to the observer's Observe() method.
"startup" Going from no profile to a profile.
The following topics happen in this context: profile-do-change profile-after-change
"shutdown-persist" The user is logging out and whatever data the observer stores for the current profile should be released from memory and saved to disk.
"shutdown-cleanse" The user is logging out and whatever data the observer stores for the current profile should be released from memory and deleted from disk.
The following topics happen in both shutdown contexts: profile-approve-change profile-change-teardown profile-before-change
"switch" Going from one profile to another.
All of the above topics happen in a profile switch.
Called by a profile change observer when a fatal error occurred during the attempt to switch the profile.
The profile should be considered in an unsafe condition, and the profile manager should inform the user and exit immediately.