Closed
Bug 181042
Opened 22 years ago
Closed 11 years ago
"dependent window created without a parent" from profile manager
Categories
(Core Graveyard :: Profile: BackEnd, defect)
Core Graveyard
Profile: BackEnd
Tracking
(Not tracked)
RESOLVED
INCOMPLETE
People
(Reporter: bugzilla, Unassigned)
Details
starting a debug build of mozilla seems to produces and have produced this for the last 24+ months. Cant find bug about it, so here we go: WARNING: dependent window created without a parent, file d:/moz_source/gmake/moz illa/xpfe/bootstrap/nsWindowCreator.cpp, line 123
Comment 1•22 years ago
|
||
As the comment above it says, "so we allow it after some bellyaching." So, what's the bug - do you want Dan to stop bellyaching? Unless Dan wants to get rid of the assertion, it's a WONTFIX.
Reporter | ||
Comment 2•22 years ago
|
||
timeless just said: "usually it means someone is doing something evil" I just thought that the printing of a warning means that that something is wrong. Not in printing the comment but something that triggers the printing.
Comment 3•22 years ago
|
||
I think the idea here is that there's really no reason for the profile manager to be a dependent window. Or is that there to support live profile switching? The warning (not assertion) should certainly stay no matter what. It almost always indicates a serious logic error (though it may not in this case; I don't know the internals of the profile manager).
Comment 4•22 years ago
|
||
The window is modal. Any window that's modal is considered to be dependent by window watcher. See http://lxr.mozilla.org/seamonkey/source/embedding/components/windowwatcher/src/nsWindowWatcher.cpp#571. Also, the window does not have a parent, nor should it. So, we end up with this assertion. It's harmless. I think (Dan, correct me if I'm wrong) that the assertion is there to discourage people from throwing up app-modal windows all over the place. Again, the profile mgr window is one which *should* be app-modal.
Comment 5•22 years ago
|
||
> *should* be app-modal
1) Why? Again, is this for profile switching? If not, what's the point of being
modal at startup when none of the rest of the app even exists yet? Does it
serve a useful function on the mac, maybe?
2) Is there actually any guarantee that a modal window with no parent is
app-modal? I'm pretty sure that's not true on Linux.
Comment 6•22 years ago
|
||
It's modal because it has to be confirmed or dismissed before the code which poses it can continue. And, no, it's not for profile switching - it's always been that way.
Comment 7•22 years ago
|
||
Ah. OK, that makes sense. Perhaps you want to parent it to the hidden window then? (Not sure whether the hidden window exists by the time the profile manager comes up.) See eg the code at http://lxr.mozilla.org/seamonkey/source/xpfe/components/filepicker/src/nsFilePicker.js#184
Comment 8•22 years ago
|
||
One of the reasons for windowwatcher is so that it's possible to open a dialog without the hidden window. I think that the hidden window is now deprecated. Ah, now I remember: the hidden window does not exist in embedding environments, so windowwatcher and windowcreator were made and the hidden window became deprecated. Dan, settle this for us, please?
You guys have sussed it out. Mozilla doesn't do application-modal windows (unless the OS specifies that behaviour for modal windows). So modal windows are bound to some parent window, which makes them dependent windows as well. With the lone exception of the Profile Manager (to my knowledge), any code that wants to pose a modal dialog/alert is running within the context of an operation that belongs to some window. So some window wants to be shut down to user interaction while the modal window is up, and it's important shut down the correct one. But often the code responsible for the alert is buried at some level that's lost its window context, so it specifies none. The warning is there to help discourage people from programming modal windows without a parent, because it's almost certainly an error and because it makes the application misbehave. The Profile Manager is the only legitimate exception that I know of. The dialog needs to be modal so execution will stop until it's dismissed (comment 6) and it has no parent window, not even conceptually. So it gets the warning intended for everyone else. I'm leaving the bug open. For a fix I recommend putting a comment in the profile manager code as a way of documenting that this behaviour is intentional and worthy of a warning, but not a ticket.
Comment 10•22 years ago
|
||
Right. I should have thought of embedding; sorry Conrad. I would be quite happy with a comment at the callsite explaining that we need to be modal to block execution and there're no windows to be parented to. Thanks, Dan and Conrad.
Comment 11•16 years ago
|
||
[Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9.1a2pre) Gecko/2008073018 SeaMonkey/2.0a1pre] (home made) (W2Ksp4) {{ WARNING: dependent window created without a parent: file .../toolkit/components/startup/src/nsAppStartup.cpp, line 458 }}
Assignee: ccarlen → nobody
Severity: normal → minor
QA Contact: ktrina → profile-manager-backend
Comment 12•15 years ago
|
||
[Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9.2a1pre) Gecko/20090409 Minefield/3.6a1pre] (home, debug+options) (W2Ksp4) (http://hg.mozilla.org/mozilla-central/rev/cb053a66c9ed) { WARNING: dependent window created without a parent: file .../toolkit/components/startup/src/nsAppStartup.cpp, line 472 }
Updated•11 years ago
|
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → INCOMPLETE
Assignee | ||
Updated•8 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•