Closed
Bug 285947
Opened 20 years ago
Closed 17 years ago
hidden tabs-mode "timeout" alert steals keyboard and mouse focuses, forces user to hard reboot computer
Categories
(SeaMonkey :: General, defect)
Tracking
(Not tracked)
RESOLVED
INCOMPLETE
People
(Reporter: xanthian, Unassigned)
Details
User-Agent: Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.8b) Gecko/20050213 Build Identifier: Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.8b) Gecko/20050213 [This is almost certainly a more general Mozilla problem.] In tabs mode, if a bookmarked group of tabs is opened, and the user clicks on one tab while another tab is putting up a timeout alert message, bad luck can result in the alert being hidden behind the Mozilla window. Since the alert has grabbed both the keyboard and the mouse focus, the user now has no choice but to hard reboot the computer. Even the <ctrl-alt-del> task manager hard-wired evocation, while it does bring up the task manager, does not suffice to dismiss Mozilla, because the user has no way to interact with the task manager once it is evoked. Reproducible: Sometimes Steps to Reproduce: The cause of the problem is always there, but since it is a timing problem between user clicks on the Mozilla window versus the Alert box being painted, it takes a while to reproduce it. 1. Build a tab set that includes some slow, unreliable sites, book mark the collection of tabs. 2. Open that bookmark. 3. Click among other tabs while the slow one times out. 4. If unlucky, you'll put the Mozilla window in front of the alert requestor. You have now lost control of your computer, and only a hardware reboot will suffice. Actual Results: Modal alert stole keyboard and mouse focus, but was hidden behind the main Mozilla window, thus was not itself selected, so that inputs to dismiss the alert went ignored. Expected Results: 1) Kept the Alert "always in front". 2) Better yet, not grabbed the keyboard and mouse focus for what was after all, not a crucially important piece of information requiring immediate user response. 3) At minimum, provided a way to bring the alert to front and some indication to the user that such an alter existed, since it was invisible (it came forward with but behind the task manager when the latter was evoked, but still didn't have focus). Modal alerts are a tool of satan.
Comment 1•20 years ago
|
||
maybe fixed by Bug 284993 changing tabs on modal dialog horks url bar Maybe you can try to reproduce with a current nightly?
| Reporter | ||
Comment 2•20 years ago
|
||
(In reply to comment #1) > maybe fixed by > Bug 284993 changing tabs on modal dialog horks url bar > Maybe you can try to reproduce with a current nightly? Well, I tried, but the best you can say when you fail to re-evoke a timing problem is "I didn't see it again", not "it isn't there any more". Still, I did try clicking as fast as I could on the window, while the timeout of the URL requested in a tab was occurring, and didn't re-encounter the problem, with the 2005/03/13 nightly, for whatever comfort that gives. xanthian.
| Reporter | ||
Comment 3•20 years ago
|
||
(In reply to comment #1) > maybe fixed by > Bug 284993 changing tabs on modal dialog horks url bar Considering that bug 284993 is marked "FIXED" but the comments suggest that some other, mutated bug was fixed instead, probably not. Aside from, that the term "loss of focus" is mentioned several times there, I can't even see that bug being especially related to this one. This ones main issues are (1) an alert that's not particularly important, grabbing mouse and keyboard focus anyway, and (2) an alert that has grabbed the mouse and keyboard focus being allowed to end up obscured and thus undismissable, in turn making the mouse and keyboard focus unrecoverable to the user. Neither of those issues are mentioned in your referenced alternative, bug 284993. Modal alerts really are a tool of Satan. Mozilla is not even among the first thousand major applications caught by this problem, nor is MS-Windows unique in hosting this problem; it used to disable MacOS for me regularly. The alert should at most grab focuses from its own application, not from the whole windowing interface. Even then, it needs to stay "on top" of its own application, or the application ends up seemingly "crashed" despite that it is still otherwise running fine, just with an alert that can't be accessed by the user to be dismissed, because some windows are layered in a fatally inconvenient order. Really, the bug is a timing problem between Mozilla and the host windowing interface, caused in part by using a separate window for the alert, in part by not making the alert "always on top" in that host windowing interface. It is the host windowing interface, I suspect, that is moving the main application window in front of the alert "as the alert is being painted". If the alert were just painted into an embedded box in the middle of the existing window, the host windowing interface wouldn't have the option to put it behind that window and thus cause these problems. FWIW xanthian.
Comment 4•20 years ago
|
||
We shouldn't be letting a modal dialog end up below its parent. How's that happening?
| Reporter | ||
Comment 5•20 years ago
|
||
(In reply to comment #4) > We shouldn't be letting a modal dialog end up > below its parent. > How's that happening? Well, first because modal dialogs are used at all. They are a leftover from monotasking days, where they worked adequately well. Their very existence in multitasking systems is a blunder, and they've been locking up computers this way now for over 18 years, in an amazing variety of environments and applications, without programmers having learned to avoid using them ever, at all. Second, because the modal dialog's separate window isn't being marked "always on top", quite possibly (speculating) because "always on top" isn't a portable construct, so that such an unportable construct is being avoided, by deliberate developer choice. Third, because the modal dialog is in a separate window, rather than a box embedded in the parent window, creating the need for a window layer ordering relationship between the parent window and the modal dialog window, enabling the rest of the problem to occur. Fourth, because you are in a multitasking environment, and so you create a race condition. [This race condition is part one of "modal dialogs are inventions of Satan".] It is completely possible, and happens: For Mozilla to say to the OS "give me a new window structure with some screen space _right here_ in which to paint my modal dialog". Now, somewhere between the OS saying "here is your window and associated foremost window screenspace, knock yourself out", and the browser finishing its task of painting and enabling the modal dialog, the OS sees and acts on a user mouse click on the parent window (the race gets won by the wrong horse). The OS notices that "somebody" has reserved some screen real estate obscuring the parent window, but the user click has just made the parent window the active window. The OS does its usual "window to front" for the active window, shoving the pixels into which the browser is painting the modal dialog "behind", which really means, to the offscreen cache where all other obscured windows and fragments of windows live [so that they can still be written even while obscured, to avoid deadlocking other active applications]. There you are, the modal dialog is obscured, but the browser doesn't know any better than that it is still front and center as expected. Now that the modal dialog is "ready", the browser hands it the keyboard and mouse focus (probably at the end of the painting step, since it wouldn't be tremendously useful before them). Now here is the second "modal dialogs are tools of Satan" problem. The browser hands the modal dialog the keyboard and mouse focus for the _entire OS_, not just for the Mozilla application, and now _everything_ is locked out, even the windowing system, even the stuff that would allow Mozilla to be separately killed as an application. Oops! The computer is now a fancy paperweight and little else until a hard reboot is done. FYI xanthian, former computer graphics guru, and still able to do really attractive handwaving in the field, what with knowing where the bits are buried.
Comment 6•19 years ago
|
||
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: Firefox: http://www.mozilla.org/projects/firefox/ Thunderbird: http://www.mozilla.org/products/thunderbird/releases/1.5beta1.html Seamonkey: http://www.mozilla.org/projects/seamonkey/
| Reporter | ||
Comment 7•19 years ago
|
||
This bug report details a huge, crash-and-burn level problem with Mozilla: the inappropriate use of modal dialogs, that can be hidden by a race condition between the dialog being drawn and the user clicking some other window in front of it, thus locking the user out of all control of the computer. It would be tragic if this fatally flawed design, one shared with many, many other applications, were allowed to survive in Mozilla merely because the original reporter no longer has access to Mozilla. Please: 1) Turn _off_ automatic resolution of bugs -- that is moron level thinking. I've received four of these threats to do automatic bug resolution in a single day, and in each case that would be a grossly inappropriate choice. That doesn't speak well for the doubtless thousands of other similar messages also sent out at the same time. 2) Turn on "fix this bug using whatever effort level it takes" thinking instead. 3) If "statistically" not much progress is made if bugs aren't receiving updates, that is a condemnation of the management of Mozilla's software maintenance, it has precisely zero relationship to the importance, validity, or the repairability status of the original bug. 4) It is also a self-fulfilling prophesy that bugs being ignored aren't being fixed. It is the "being ignored" part that is the problem, a problem with Mozilla's management of bug repairs that doesn't give higher priority the longer a bug goes unfixed, not the "aren't being fixed" part; that's a given for bugs which are being neglected. FWIW xanthian.
Comment 8•19 years ago
|
||
If you want to complain, complain to gerv. That means cc him.
Comment 9•19 years ago
|
||
Kent: a little perspective is called for. This is something you've seen once, six months ago, and (as I understand this bug) have not managed to reproduce since. I can think of many bugs which are more important. This bug has been commented on, so it will stay open. Gerv
| Reporter | ||
Comment 10•19 years ago
|
||
(In reply to comment #9) > Kent: a little perspective is called for. This is something you've seen once, > six months ago, and (as I understand this bug) have not managed to reproduce > since. I can think of many bugs which are more important. > This bug has been commented on, so it will stay open. > Gerv Gerv, A little intelligence is called for. This ("keyboard and mouse input grabbing" modal dialogs that can be hidden by a click-race condition behind other windows, locking the control of the computer away from the user) is a bone-headedly stupid design choice, one I've encountered in applications beyond number, since long before Mozilla was born. Where is the increment of institutional wisdom that should have let Mozilla developers avoid this design choice immediately? Do we really have to repeat _all_ the mistakes of our predecessors? Just because I don't report the bug every time it happens, doesn't mean it isn't happening. The _correct_ response is to give this bug the attention given to every other Mozilla bug that forces the user to reboot to regain control of the computer, not to natter at reporters because the bug isn't being reported frequently enough to tickle your fancy. It isn't even necessary to be able to replicate the bug (race conditions are hard to replicate on demand); simple logical analysis of the situation more than suffices to show the problems with this design choice. You, sir, have no business being in charge of making bug prioritization decisions, bemused dolt that you are. Deciding to close bugs because the Bugzilla reports aren't being updated is the choice of a fool who has no concept how robust code is created and maintained, a beancounter mentality choice, not a software developer choice. That you have made this choice despite the protests of wiser heads working on Mozilla code show that you are not merely a fool, but an invincibly ignorant one, so sure of yourself when in error that you cannot even heed wise counsel. Such persons are best removed posthaste from the gene pool, as a danger to all and everything around them. In my expert opinion after 44 years of software development, frequently of code (cyclone forecasting, nautical hazard depiction, commercial airlines communication) on which human lives depended, and in which the acceptable number of known or suspected bugs was exactly zero. xanthian.
Comment 11•19 years ago
|
||
(1) I suspect that the only reason keyboard and mouse focus for the whole OS is handed over is because Windows98 can hardly be called a multi-tasking OS. On any real OS, focus is per-app. (2) the standard fix for the modal race problem is to grab the apps GUI event processing queue before calling the OS, ignore any events occuring outside the modal window, and hold on to the queue until the dialog is dismissed.
Comment 12•19 years ago
|
||
(In reply to comment #10) > > The _correct_ response is to give this bug the attention given to every > other Mozilla bug that forces the user to reboot to regain control of the > computer, not to natter at reporters because the bug isn't being reported > frequently enough to tickle your fancy. > > It isn't even necessary to be able to replicate the bug (race conditions > are hard to replicate on demand); simple logical analysis of the situation > more than suffices to show the problems with this design choice. My current Seamonkey build (Gecko/20050910) displays error pages on network timeouts, not modal dialogues. ISTM that this bug should either be resolved FIXED or WFM (based on original report), or morphed into a generic "Modal dialogues are the spawn of santa" (based on comment #4).
| Reporter | ||
Comment 13•19 years ago
|
||
(In reply to comment #11) > (1) I suspect that the only reason keyboard and mouse focus > for the whole OS is handed over is because Windows98 can > hardly be called a multi-tasking OS. On any real OS, focus is per-app. Perhaps, but with 95% of desktops running MS-Windows, and 50% of those being of WinOS98SE vintage or before, Mozilla has to work on "unreal" OSen or lose a big fraction of its potential audience. > (2) the standard fix for the modal race problem is to grab > the apps GUI event processing queue before calling the OS, > ignore any events occuring outside the modal window, and > hold on to the queue until the dialog is dismissed. Yep, and that "standard fix" totally fails to cure the problem, which is why the _appropriate_ fix is not to use modal dialogs, at all. a) Most likely, the modal dialog is hidden from the user because of the click race pulling the window that evoked the modal dialog in front of the "layer" on which the modal dialog is being written, before the modal dialog is visible at all (allocating resources for a new window is astonishingly slow, even on modern hardware, and a perceptible delay before pixels start getting painted is always there), and, unless the user has an appropriate level of hard earned paranoia, is unsuspected by the user to be hiding behind some other window of the main app, here, Mozilla. The user perception isn't "a modal dialog is hiding from me", it is "my computer screen interaction is completely locked up". b) By "ignoring events outside the modal window", the user is prevented from closing, minimizing, or moving that obscuring main app window, so the modal dialog remains hidden and probably unrecognized as the cause of the lockup. c) Since the modal dialog is complete obscured, there _are no_ events "inside the modal window". d) Reboot. HTH xanthian.
Comment 14•18 years ago
|
||
can this be reproduced on XP with current trunk?
Comment 15•17 years ago
|
||
=> incomplete - no response but please comment if you can repro on current trunk.
Status: UNCONFIRMED → RESOLVED
Closed: 17 years ago
Resolution: --- → INCOMPLETE
You need to log in
before you can comment on or make changes to this bug.
Description
•