Closed
Bug 202804
Opened 21 years ago
Closed 9 years ago
Awkward User Experience if more than 1 observer calls nsIProfileChangeStatus::VetoChange
Categories
(Core Graveyard :: Profile: BackEnd, defect)
Core Graveyard
Profile: BackEnd
Tracking
(Not tracked)
RESOLVED
INCOMPLETE
People
(Reporter: ccarlen, Assigned: ccarlen)
Details
On a profile switch, the appshell service enumerates all open windows. If the
document to be closed pops up a Save/Don't Save/Cancel dialog, and the user
chooses "Cancel," the profile switch is stopped.
Currently, this is only done by one observer. If we add another
"profile-approve-change" observer (see bug 202629), we could end up having more
than one observer put up a dialog which offered to cancel the operation. This is
wrong - the 1st cancel should cancel the operation.
The problem is that the profile mgr uses
nsIObserverService::notifyObservers("profile-approve-change", ...). If one of
the observers calls VetoChange(), the enumeration will still continue, and the
next observer may put up another dialog.
Here's the fix: Instead, the profile mgr should use
nsIObserverService::enumerateObservers("profile-approve-change", ...). Then, if
it's doing the enumeration, it could check for a veto after each observer and
stop enumerating on the 1st veto.
Updated•15 years ago
|
QA Contact: agracebush → profile-manager-backend
Blocks: 1243899
Comment 1•9 years ago
|
||
This bug is filed in a bugzilla component related to pre-Firefox code which no longer exists. I believe it is no longer relevant and I am therefore closing it INCOMPLETE.
If you believe that this bug is still valid and needs to be fixed, please reopen it and move it to the Toolkit:Startup and Profile System product/component.
Updated•9 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•