javascriptmfcinternet-explorer-11citrixxenapp

Internet explorer 11 takes excessively long to shutdown


My windows MFC application has an embedded WebBrowser control that hosts a web application, and when the user clicks on a link that displays a popup via a javascript window.open() call, it causes iexplorer.exe to be launched to display the popup window.

When this popup window is closed iexplore.exe shuts down, however it takes so long to shutdown that if the user clicks the link to launch the popup again, a javascript error is displayed:

“a system shutdown has already been scheduled”, - I think this is a generic COM error message relating to ie shutting down.

In my testing I have observed the internet explorer 11 process iexplore.exe taking up to 15 seconds to exit. In contrast Internet explorer 8 exits almost instantly.

This can be easily verified by launching internet explorer 11, and opening taskmgr.exe to view the two iexplore.exe processes that are launched. One is a 64 bit host process, the other is a 32 bit process hosting the contents of the tab. When the internet explorer window is closed, the 32 bit process exits immediately, however the 64 bit host process lingers for several seconds.

This error only occurs if iexplore.exe is in the process of shutting down. It will not occur if:

Does anyone have any ideas?


Solution

  • These two registry keys:

    [HKLM\Software\Microsoft\Internet Explorer\Main\FrameShutdownDelay]
    [HKLM\Software\Policies\Microsoft\Internet Explorer\Main\FrameShutdownDelay]
    

    with a value of DWORD 1 seem to stop the 32 bit tab process from exiting for 1 minute, at which point the 64 bit Frame host process also exits - which solves our issue.

    However, this key is undocumented, I only discovered it by running procmon.exe on the iexplore.exe process.

    I would appreciate any explanation of the purpose and intended usage for this key.