Compose window doesn't confirm save when logging out of / shutting down windows



Message Compose Window
13 years ago
13 years ago


(Reporter: Michael Hovis, Assigned: Scott MacGregor)


Firefox Tracking Flags

(Not tracked)




13 years ago
User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.8) Gecko/20050511 Firefox/1.0.4
Build Identifier: Mozilla Thunderbird 1.0

No DOM events are captured by the compose window when shutting down / logging
out of windows.  I've tried writing code that enumerates any msgcompose windows
and calling the nsIDOMWindowInternal::Close to see if I can trigger the
appropriate xul/js handler to prompt the user and cancel the logout/shutdown.

Within nsNativeAppSupportWin at the point where the WM_QUERYENDSESSION event is
captured, I added the following code:

nsresult rv = NS_OK;
    nsCOMPtr<nsIWindowMediator> pMediator( do_GetService(
    nsCOMPtr<nsISimpleEnumerator> pWindows;
    rv = pMediator->GetEnumerator( NS_LITERAL_STRING("msgcompose").get(),
getter_AddRefs( pWindows ) );
    if( rv == NS_OK )
        nsCOMPtr<nsISupports> composeItem;
        rv = pWindows->GetNext(getter_AddRefs(composeItem));
        while( rv == NS_OK && composeItem )
            nsCOMPtr<nsIDOMWindowInternal> composeWindow( do_QueryInterface(
composeItem, &rv ) );
            NS_ENSURE_SUCCESS(rv, rv);
            if( composeWindow->Close() != NS_OK )
                return 0;
            rv = pWindows->GetNext(getter_AddRefs(composeItem));

Unfortunately, even with the dom.allow_scripts_to_close_windows setting set to
allow my code to work, the compose window will just disappear regardless if
there is content.  Is there a way to generate a DOM event within c++ that can be
captured so that the onclose event handler is triggered propertly?

Reproducible: Always
This is an automated message, with ID "auto-resolve01".

This bug has had no comments for a long time. Statistically, we have found that
bug reports that have not been confirmed by a second user after three months are
highly unlikely to be the source of a fix to the code.

While your input is very important to us, our resources are limited and so we
are asking for your help in focussing our efforts. If you can still reproduce
this problem in the latest version of the product (see below for how to obtain a
copy) or, for feature requests, if it's not present in the latest version and
you still believe we should implement it, please visit the URL of this bug
(given at the top of this mail) and add a comment to that effect, giving more
reproduction information if you have it.

If it is not a problem any longer, you need take no action. If this bug is not
changed in any way in the next two weeks, it will be automatically resolved.
Thank you for your help in this matter.

The latest beta releases can be obtained from:
This bug has been automatically resolved after a period of inactivity (see above
comment). If anyone thinks this is incorrect, they should feel free to reopen it.
Last Resolved: 13 years ago
Resolution: --- → EXPIRED
You need to log in before you can comment on or make changes to this bug.