Application crash when forcing IE8 rendering mode in webbrowser host

Internet Explorer Mobile Logo

Image via Wikipedia

User stephench is reporting that when setting webbrowser rendering mode to IE8 via FEATURE_BROWSER_EMULATION, the app would crash.  The web site crashes IE8 too, but IE8 is able to recover and automatically switch to IE7 mode, while a webbrowser host crash in WinInet when switching to the compatibility mode (Note the ReloadInCompatView function on the call stack). My guess is that reloading requires a WinInet helper process which a webbrowser host app does not have.

The call stack is the following

urlmon.dll!UUIDToWSTR()  + 0x1f bytes
urlmon.dll!GUIDToWSTR()  + 0x1a bytes
urlmon.dll!GUIDToWSTRCch()  + 0x16 bytes
urlmon.dll!CInPrivateBrowserModeFilter::_EnsureCLSID()  + 0x20 bytes
urlmon.dll!CSessionBrowserModeFilter::_GetDataStream()  + 0x27 bytes
urlmon.dll!CBrowserModeFilter::_EnsureBrowserModeFilter()  + 0x1d84 bytes
urlmon.dll!CBrowserModeFilter::IsIE7Mode()  + 0x2e bytes
mshtml.dll!CMarkup::ReloadInCompatView()  + 0xd0 bytes
mshtml.dll!CCssPageLayout::CalcSizeVirtual()  + 0x120416 bytes
mshtml.dll!CLayout::CalcSize()  + 0x164 bytes
mshtml.dll!CLayout::DoLayout()  + 0x113 bytes
mshtml.dll!CView::ExecuteLayoutTasks()  – 0x1e376 bytes
mshtml.dll!CView::EnsureView()  + 0x567 bytes
mshtml.dll!CView::EnsureViewCallback()  + 0x66 bytes
mshtml.dll!GlobalWndOnMethodCall()  + 0xcc bytes
mshtml.dll!GlobalWndProc()  + 0xae bytes
user32.dll!_InternalCallWinProc@20()  + 0x28 bytes
user32.dll!_UserCallWinProcCheckWow@32()  + 0xb7 bytes
user32.dll!_CallWindowProcAorW@24()  + 0x51 bytes
user32.dll!_CallWindowProcA@20()  + 0x1b bytes
mfc100.dll!_AfxActivationWndProc(HWND__ * hWnd=0x00150a28, unsigned int nMsg=32770, unsigned int wParam=0, long lParam=0)  Line 471 + 0x11 bytes    C++
user32.dll!_InternalCallWinProc@20()  + 0x28 bytes
user32.dll!_UserCallWinProcCheckWow@32()  + 0xb7 bytes
user32.dll!_DispatchMessageWorker@8()  + 0xdc bytes
user32.dll!_DispatchMessageA@4()  + 0xf bytes
>    mfc100.dll!AfxInternalPumpMessage()  Line 183    C++
mfc100.dll!CWinThread::Run()  Line 629 + 0x7 bytes    C++
mfc100.dll!AfxWinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, char * lpCmdLine=0x00152348, int nCmdShow=1)  Line 47 + 0x7 bytes    C++

About Sheng Jiang 蒋晟

Microsoft MVP in Visual C , 2004- Forum moderator of the Visual C and .Net forums on CSDN Forum moderator of Chinese forums on Microsoft's MSDN forums
This entry was posted in enmsdn, Microsoft Foundation Class Library, Visual C++ and tagged , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s