Closed Bug 1130098 Opened 9 years ago Closed 8 years ago

[E10s] Browser hangs when closing a window after opening a dialog window, with message E10s being disabled because accessibility features are not supported

Categories

(Core :: IPC, defect)

x86_64
Windows 7
defect
Not set
critical

Tracking

()

RESOLVED FIXED
Tracking Status
e10s + ---

People

(Reporter: morac, Unassigned)

References

Details

(Keywords: hang, steps-wanted)

Attachments

(2 files)

When there are multiple E10s windows open and a "dialog" window is opened, then if any of the E10s windows are closed, the browser UI hangs and becomes unresponsive.

The easiest way I've found to reproduce this is to enable E10s, open a few browser windows and then type the following in the browser console:

Services.ww.openWindow(null, "http://www.google.com", "_blank", "dialog=yes", null);

Once the dialog window opens, close one of the existing windows.  At this point the browser will be frozen and the browser process will need to be killed.

I'll note that when the dialog window opens, a message displays that E10s is being disabled because accessibility features are not supported.  I'm not sure why dialog windows are considered using accessibility features, but as they are this problem will mitigate itself, but it's still an issue.

Here's what appears to be the hung thread:

ChildEBP RetAddr  
0021e680 029d58a9 USER32!NtUserDestroyWindow+0x15
0021e6a4 029bf90b xul!nsWindow::Destroy(void)+0x4f [c:\builds\moz2_slave\m-cen-w32-ntly-000000000000000\build\src\widget\windows\nswindow.cpp @ 699]
0021e6e4 029be1c6 xul!nsXULWindow::Destroy(void)+0x16c [c:\builds\moz2_slave\m-cen-w32-ntly-000000000000000\build\src\xpfe\appshell\nsxulwindow.cpp @ 502]
0021e70c 03a99eff xul!nsWebShellWindow::Destroy(void)+0x8b [c:\builds\moz2_slave\m-cen-w32-ntly-000000000000000\build\src\xpfe\appshell\nswebshellwindow.cpp @ 754]
0021e7f4 02d766ab xul!nsWebShellWindow::RequestWindowClose(class nsIWidget * aWidget = 0x104b8000)+0xee [c:\builds\moz2_slave\m-cen-w32-ntly-000000000000000\build\src\xpfe\appshell\nswebshellwindow.cpp @ 308]
0021e944 0284b5c8 xul!nsWindow::ProcessMessage+0x3a0651 [c:\builds\moz2_slave\m-cen-w32-ntly-000000000000000\build\src\widget\windows\nswindow.cpp @ 4756]
0021e970 0284b50c xul!nsWindow::WindowProcInternal(struct HWND__ * hWnd = 0x104b8000, unsigned int msg = 0x1000010, unsigned int wParam = 0, long lParam = 0n0)+0xaf [c:\builds\moz2_slave\m-cen-w32-ntly-000000000000000\build\src\widget\windows\nswindow.cpp @ 4349]
0021e9b0 0284b4e4 xul!CallWindowProcCrashProtected(<function> * aWndProc = 0x0284b519, struct HWND__ * aHWnd = 0x001f0fde, unsigned int aMsg = 0x10, unsigned int aWParam = 0, long aLParam = 0n0)+0x1f [c:\builds\moz2_slave\m-cen-w32-ntly-000000000000000\build\src\xpcom\base\nscrashonexception.cpp @ 35]
0021e9d4 773c62fa xul!nsWindow::WindowProc(struct HWND__ * hWnd = 0x001f0fde, unsigned int msg = 0x10, unsigned int wParam = 0, long lParam = 0n0)+0x37 [c:\builds\moz2_slave\m-cen-w32-ntly-000000000000000\build\src\widget\windows\nswindow.cpp @ 4301]
0021ea00 773c6d3a USER32!InternalCallWinProc+0x23
0021ea78 773c6de8 USER32!UserCallWinProcCheckWow+0x109
0021ead4 773c6e44 USER32!DispatchClientMessage+0xe0
0021eb10 77c1010a USER32!__fnDWORD+0x2b
(In reply to Michael Kraft [:morac] from comment #0)
> I'll note that when the dialog window opens, a message displays that E10s is
> being disabled because accessibility features are not supported.  I'm not
> sure why dialog windows are considered using accessibility features, but as
> they are this problem will mitigate itself, but it's still an issue.

This seems odd, I don't see this myself. Can you post your about:support as an atttachment?
Flags: needinfo?(morac99-firefox2)
Attached file about_support.txt (deleted) —
Here you go.

You might be closing the wrong browser window.  It seems like if I close the initial window it's fine, but if I close the other window it hangs.
Flags: needinfo?(morac99-firefox2)
Any idea what might be causing that accessibility prompt? Normally that shouldn't come up. According to your about:support, accessibility isn't active.
Flags: needinfo?(morac99-firefox2)
I honestly have no idea why the accessibility prompt is coming up.  I ran into this problem in my Session Manager add-on and tracked it down to opening a window with "dialog=yes" in the options.  If "dialog=no" is setup or simply omitted, not only does the accessibility prompt not come up, but this problem doesn't happen either.

It appears there's something triggering accessibility when a "dialog" window is opened.  I'm not sure why since "dialog" windows are supposedly normal with the exception of removing all icons except the close button from the toolbar.   

https://developer.mozilla.org/en-US/docs/Web/API/Window.open#Window_functionality_features


I also have an issue where the accessibility prompt triggers when my Session Manager add-on is installed.  I have no idea why that happens either.
Flags: needinfo?(morac99-firefox2)
Is your session manager add-on accessing any accessibility apis at all? (Also, is your add-on on amo? I can take a look if it is.)
(In reply to Jim Mathies [:jimm] from comment #5)
> Is your session manager add-on accessing any accessibility apis at all?
> (Also, is your add-on on amo? I can take a look if it is.)

ah found the addon - 
https://addons.mozilla.org/en-US/firefox/addon/session-manager/
Flags: needinfo?(jmathies)
I've not been able to reproduce the accessibility prompt or hang issue. The accessibility prompt indicates something rather odd is taking place, and I suspect it plays into the hang as well. I can't get much farther though without reliable str.
Flags: needinfo?(jmathies)
tracking-e10s: --- → ?
QA Contact: jbecerra
Severity: major → critical
Summary: [E10s] Browser hangs when closing a window after opening a dialog window → [E10s] Browser hangs when closing a window after opening a dialog window, with message E10s being disabled because accessibility features are not supported
Michael, can you please try and see if you can reproduce this issue?

Michael, can you please try this on the latest Nightly (47.0a1, https://nightly.mozilla.org/) or on latest release(44.0) and tell me if this still reproduces for you ?
Flags: needinfo?(morac99-firefox2)
My test case no longer causes a hang, though it doesn't behave the way it used to either, so I don't know if it's really fixed.

Entering the following into the browser console results in a hidden window being opened.  The only place it shows up is in the Windows task bar.

Services.ww.openWindow(null, "http://www.google.com", "_blank", "dialog=yes", null);

This also shows an error in the browser console:

17:01:52.697 [Exception... "Component returned failure code: 0x80004002 (NS_NOINTERFACE) [nsIInterfaceRequestor.getInterface]"  nsresult: "0x80004002 (NS_NOINTERFACE)"  location: "JS frame :: resource://gre/components/nsSidebar.js :: nsSidebar.prototype.init :: line 20"  data: no]
nsSidebar.prototype.init() nsSidebar.js:25
<anonymous> cb=gapi.loaded_0:352
<anonymous> cb=gapi.loaded_0:351
cr/<() rs=AA2YrTvvb8EeOsd5A2VMpg7IoXYxnDISMQ:154
br() rs=AA2YrTvvb8EeOsd5A2VMpg7IoXYxnDISMQ:158
cr() rs=AA2YrTvvb8EeOsd5A2VMpg7IoXYxnDISMQ:154
er/Ub() rs=AA2YrTvvb8EeOsd5A2VMpg7IoXYxnDISMQ:156
er/$b[Uc]/c() rs=AA2YrTvvb8EeOsd5A2VMpg7IoXYxnDISMQ:156
er/$b[Uc]() rs=AA2YrTvvb8EeOsd5A2VMpg7IoXYxnDISMQ:157
er/wq[Uk]() rs=AA2YrTvvb8EeOsd5A2VMpg7IoXYxnDISMQ:157
<anonymous> cb=gapi.loaded_0:1
1 nsSidebar.js:25:0
Flags: needinfo?(morac99-firefox2)
I'm going to mark this as fixed since the hang no longer reproduces. Michael, can you file a new bug for the behavior change you see?
Status: NEW → RESOLVED
Closed: 8 years ago
Flags: needinfo?(morac99-firefox2)
Resolution: --- → FIXED
Flags: needinfo?(morac99-firefox2)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: