Internet explorer 11 takes excessively long to shutdown

3.6k Views Asked by At

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:

  • the user waits for iexplore.exe to terminate
  • kills iexplorer.exe using task manager
  • or ensures that there is already an internet explorer window open so that if the popup closes iexplore.exe does not terminate because it is still displaying a window.

Does anyone have any ideas?

1

There are 1 best solutions below

3
On BEST ANSWER

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.