none
IE11 javascript issue RRS feed

  • Question

  • We ran into an issue with our website using IE11 for both Window7/8. Our website works for all browsers including IE10 and below. It looks like to me the root cause is in the insertBefore function as shown in the stack trace below. Any help would be greatly appreciated because our site is hit by many consumers.

    mshtml.dll!CElement::Var_insertBefore(struct IActiveScriptDirect *,void * *,unsigned long,void * *)

    Help our site works for all other browsers including IE10 and below stack trace shown below:(

    > mshtml.dll!ParentNodeHelper(class CTreeNode *,class CDOMNode * *) Unknown
    mshtml.dll!`CBackgroundInfo::Property<class CBackgroundImage>(int)'::`7'::`dynamic atexit destructor for 'fieldDefaultValue''(void) Unknown
    mshtml.dll!CMarkup::SpliceTreeInternal(class CTreePosGap *,class CTreePosGap *,class CMarkup *,class CTreePosGap *,int,unsigned long) Unknown
    mshtml.dll!CDoc::CutCopyMove(class CMarkupPointer *,class CMarkupPointer *,class CMarkupPointer *,int,unsigned long) Unknown
    mshtml.dll!CDoc::Move(class CMarkupPointer *,class CMarkupPointer *,class CMarkupPointer *,unsigned long) Unknown
    mshtml.dll!InsertDOMNodeHelper(class CElement *,class CDOMTextNode *,class CMarkupPointer *,enum MARKUP_SERVICES_FLAGS) Unknown
    mshtml.dll!CElement::InsertBeforeHelper(class CElement *,class CDOMTextNode *,class CElement *,class CDOMTextNode *,enum OMVersion,class CMarkup *) Unknown
    mshtml.dll!CElement::InsertBeforeHelper(struct IUnknown *,struct IUnknown *,enum OMVersion) Unknown
    mshtml.dll!CElement::Var_insertBefore(struct IActiveScriptDirect *,void * *,unsigned long,void * *) Unknown
    mshtml.dll!CFastDOM::CNode::Trampoline_insertBefore(void *,struct CallInfo,...) Unknown
    jscript9.dll!Js::JavascriptExternalFunction::ExternalFunctionThunk(class Js::RecyclableObject *,struct Js::CallInfo,...) Unknown
    jscript9.dll!Js::InterpreterStackFrame::Process(void) Unknown
    jscript9.dll!Js::InterpreterStackFrame::InterpreterThunk<1>(class Js::JavascriptCallStackLayout *) Unknown
    02691729() Unknown
    [Frames below may be incorrect and/or missing] 
    [External Code]

    Thursday, December 5, 2013 1:18 PM

All replies

  • Hi,

    look in your external iframes. your .net call stack starts from an call from an embedded iframe. There are known issues with embedded pdf and xps content. In MSIE browsers these types of content require an ActiveX control, other browsers may have built-in plugins.

    this forum is for questions about html, css and scripting for website development. Post questions about .net  to the appropriate flavor forum. Include with your questions a link to your website or a publicly accessible mashup that shows the issue.

    Thx.


    Rob^_^

    Thursday, December 5, 2013 11:44 PM
  • That's the non-javascript stack trace from a non-external JavaScript call to NodeElement.insertBefore

    Also noticed the stack trace was not posted correctly... 

    There is no javascript stack trace because it crashes before one is generated, there is also no ActiveX or plugin component that triggers the error.

    We're working around the issue by issuing X-UA-Compatible: IE=10 to IE11 browsers.

    Will get a repro posted...




    Wednesday, December 11, 2013 6:44 PM
  • mshtml.dll!ParentNodeHelper(class CTreeNode *,class CDOMNode * *)
    mshtml.dll!`CBackgroundInfo::Property<class CBackgroundImage>(int)'::`7'::`dynamic atexit destructor for 'fieldDefaultValue''(void)
    mshtml.dll!CMarkup::SpliceTreeInternal(class CTreePosGap *,class CTreePosGap *,class CMarkup *,class CTreePosGap *,int,unsigned long)
    mshtml.dll!CDoc::CutCopyMove(class CMarkupPointer *,class CMarkupPointer *,class CMarkupPointer *,int,unsigned long)
    mshtml.dll!CDoc::Move(class CMarkupPointer *,class CMarkupPointer *,class CMarkupPointer *,unsigned long)
    mshtml.dll!InsertDOMNodeHelper(class CElement *,class CDOMTextNode *,class CMarkupPointer *,enum MARKUP_SERVICES_FLAGS)
    mshtml.dll!CElement::InsertBeforeHelper(class CElement *,class CDOMTextNode *,class CElement *,class CDOMTextNode *,enum OMVersion,class CMarkup *)
    mshtml.dll!CElement::InsertBeforeHelper(struct IUnknown *,struct IUnknown *,enum OMVersion)
    mshtml.dll!CElement::Var_insertBefore(struct IActiveScriptDirect *,void * *,unsigned long,void * *)
    mshtml.dll!CFastDOM::CNode::Trampoline_insertBefore(void *,struct CallInfo,...)
    jscript9.dll!Js::JavascriptExternalFunction::ExternalFunctionThunk(class Js::RecyclableObject *,struct Js::CallInfo,...)
    jscript9.dll!Js::InterpreterStackFrame::Process(void)
    jscript9.dll!Js::InterpreterStackFrame::InterpreterThunk<1>(class Js::JavascriptCallStackLayout *)
    0a5f1749()
    [Frames below may be incorrect and/or missing]
    jscript9.dll!Js::JavascriptFunction::CallFunction<1>(class Js::RecyclableObject *,void * (*)(class Js::RecyclableObject *,struct Js::CallInfo,...),struct Js::Arguments)
    jscript9.dll!Js::JavascriptFunction::EntryCall(class Js::RecyclableObject *,struct Js::CallInfo,...)
    jscript9.dll!Js::InterpreterStackFrame::Process(void)
    jscript9.dll!Js::InterpreterStackFrame::InterpreterThunk<1>(class Js::JavascriptCallStackLayout *)
    0a5f1759()
    jscript9.dll!Js::InterpreterStackFrame::Process(void)
    jscript9.dll!Js::InterpreterStackFrame::InterpreterThunk<1>(class Js::JavascriptCallStackLayout *)
    0a5f1761()
    jscript9.dll!Js::InterpreterStackFrame::Process(void)
    jscript9.dll!Js::InterpreterStackFrame::InterpreterThunk<1>(class Js::JavascriptCallStackLayout *)
    0a5f1769()
    jscript9.dll!Js::InterpreterStackFrame::Process(void)
    jscript9.dll!Js::InterpreterStackFrame::InterpreterThunk<1>(class Js::JavascriptCallStackLayout *)
    0a5f1771()
    jscript9.dll!Js::InterpreterStackFrame::Process(void)
    jscript9.dll!Js::InterpreterStackFrame::InterpreterThunk<1>(class Js::JavascriptCallStackLayout *)
    0a5f17a1()
    jscript9.dll!Js::JavascriptFunction::EntryApply(class Js::RecyclableObject *,struct Js::CallInfo,...)
    jscript9.dll!Js::InterpreterStackFrame::Process(void)
    jscript9.dll!Js::InterpreterStackFrame::InterpreterThunk<1>(class Js::JavascriptCallStackLayout *)
    0a5f17e1()
    jscript9.dll!Js::JavascriptFunction::EntryApply(class Js::RecyclableObject *,struct Js::CallInfo,...)
    jscript9.dll!Js::InterpreterStackFrame::Process(void)
    jscript9.dll!Js::InterpreterStackFrame::InterpreterThunk<1>(class Js::JavascriptCallStackLayout *)
    0a5f17e9()
    jscript9.dll!Js::JavascriptFunction::EntryApply(class Js::RecyclableObject *,struct Js::CallInfo,...)
    jscript9.dll!Js::InterpreterStackFrame::Process(void)
    jscript9.dll!Js::InterpreterStackFrame::InterpreterThunk<1>(class Js::JavascriptCallStackLayout *)
    0a5f00e1()
    jscript9.dll!Js::InterpreterStackFrame::Process(void)
    jscript9.dll!Js::InterpreterStackFrame::InterpreterThunk<1>(class Js::JavascriptCallStackLayout *)
    0a5f00e9()
    0a8c52bb()
    0a8db4e7()
    jscript9.dll!Js::InterpreterStackFrame::Process(void)
    jscript9.dll!Js::InterpreterStackFrame::InterpreterThunk<1>(class Js::JavascriptCallStackLayout *)
    0a5f0991()
    jscript9.dll!Js::InterpreterStackFrame::Process(void)
    jscript9.dll!Js::InterpreterStackFrame::InterpreterThunk<1>(class Js::JavascriptCallStackLayout *)
    0a5f17a9()
    jscript9.dll!Js::InterpreterStackFrame::Process(void)
    jscript9.dll!Js::InterpreterStackFrame::InterpreterThunk<1>(class Js::JavascriptCallStackLayout *)
    0a5f17b9()
    jscript9.dll!Js::InterpreterStackFrame::Process(void)
    jscript9.dll!Js::InterpreterStackFrame::InterpreterThunk<1>(class Js::JavascriptCallStackLayout *)
    0a5f17c9()
    jscript9.dll!Js::JavascriptFunction::EntryApply(class Js::RecyclableObject *,struct Js::CallInfo,...)
    jscript9.dll!Js::InterpreterStackFrame::Process(void)
    jscript9.dll!Js::InterpreterStackFrame::InterpreterThunk<1>(class Js::JavascriptCallStackLayout *)
    0a5f17e1()
    jscript9.dll!Js::JavascriptFunction::EntryApply(class Js::RecyclableObject *,struct Js::CallInfo,...)
    jscript9.dll!Js::InterpreterStackFrame::Process(void)
    jscript9.dll!Js::InterpreterStackFrame::InterpreterThunk<1>(class Js::JavascriptCallStackLayout *)
    0a5f17e9()
    jscript9.dll!Js::JavascriptFunction::EntryApply(class Js::RecyclableObject *,struct Js::CallInfo,...)
    jscript9.dll!Js::InterpreterStackFrame::Process(void)
    jscript9.dll!Js::InterpreterStackFrame::InterpreterThunk<1>(class Js::JavascriptCallStackLayout *)
    0a5f00e1()
    jscript9.dll!Js::InterpreterStackFrame::Process(void)
    jscript9.dll!Js::InterpreterStackFrame::InterpreterThunk<1>(class Js::JavascriptCallStackLayout *)
    0a5f00e9()
    0a8c52bb()
    0a8db4e7()
    jscript9.dll!Js::InterpreterStackFrame::Process(void)
    jscript9.dll!Js::InterpreterStackFrame::InterpreterThunk<1>(class Js::JavascriptCallStackLayout *)
    0a5f0991()
    jscript9.dll!Js::InterpreterStackFrame::Process(void)
    jscript9.dll!Js::InterpreterStackFrame::InterpreterThunk<1>(class Js::JavascriptCallStackLayout *)
    0a5f17f9()
    jscript9.dll!Js::JavascriptFunction::CallFunction<1>(class Js::RecyclableObject *,void * (*)(class Js::RecyclableObject *,struct Js::CallInfo,...),struct Js::Arguments)
    jscript9.dll!Js::JavascriptFunction::CallRootFunction(struct Js::Arguments,class Js::ScriptContext *)
    jscript9.dll!ScriptSite::CallRootFunction(class Js::JavascriptFunction *,struct Js::Arguments,struct IServiceProvider *,void * *)
    jscript9.dll!ScriptSite::Execute(class Js::RecyclableObject *,struct Js::Arguments *,struct IServiceProvider *,void * *)
    jscript9.dll!ScriptEngineBase::ExecuteInternal<0>(void *,struct CallInfo,void * *,struct IServiceProvider *,void * *)
    jscript9.dll!ScriptEngineBase::Execute(void *,struct CallInfo,void * *,struct IServiceProvider *,void * *)
    mshtml.dll!CScriptTimers::ExecuteTimer(unsigned int,enum _SCRIPT_TIMER_TYPE)
    mshtml.dll!CWindow::FireTimeOut(unsigned int)
    mshtml.dll!CPaintBeat::ProcessTimers(bool,bool)
    mshtml.dll!CPaintBeat::OnBeat(class TSmartPointer<struct IUnknown> const &)
    mshtml.dll!CPaintBeat::OnVSyncMethodCall(unsigned long)
    mshtml.dll!GlobalWndOnPaintPriorityMethodCall(void)
    mshtml.dll!GlobalWndProc(struct HWND__ *,unsigned int,unsigned int,long)
    user32.dll!_InternalCallWinProc@20 ()
    user32.dll!_UserCallWinProcCheckWow@32 ()
    user32.dll!_DispatchClientMessage@24 ()
    user32.dll!___fnDWORD@4 ()
    ntdll.dll!_KiUserCallbackDispatcher@12 ()
    user32.dll!_NtUserDispatchMessage@4 ()
    user32.dll!_DispatchMessageWorker@8 ()
    user32.dll!_DispatchMessageW@4 ()
    ieframe.dll!CTabWindow::_TabWindowThreadProc(void *)
    ieframe.dll!LCIETab_ThreadProc(void *)
    iertutil.dll!CIsoWinMsg::PostQueuedMessagesToComponent(unsigned long,struct _IsoComponent *)
    IEShims.dll!NS_CreateThread::DesktopIE_ThreadProc(void *)
    kernel32.dll!@BaseThreadInitThunk@12 ()
    ntdll.dll!___RtlUserThreadStart@8 ()
    ntdll.dll!__RtlUserThreadStart@8 ()
    Wednesday, December 11, 2013 8:40 PM
  • Stack reads as on a VSync procedure, inside of a Timer dispatch, a call to Node.prototype.insertBefore is made and that is an "External Thunk" (read "native method"; not anything to do with an iframe or ActiveX or PDF or non-browser related component) to the IE 11 DOM handler (CFastDOM).

    I have a dump of iexplore prepared, will upload and link as soon as possible.



    • Edited by Tyler B. Young Wednesday, December 11, 2013 8:53 PM Further clarification
    Wednesday, December 11, 2013 8:50 PM
  • Uploaded dump, SHA1 of zip; 6608032BF097CE75144F31E91C9ECC8401D2C07C

    https://drive.google.com/file/d/0ByLAoO09NEJ4OUdWNnJQbGd2Qms/edit?usp=sharing

    It's 73MB compressed, 270MB decompressed...
    • Edited by Tyler B. Young Wednesday, December 11, 2013 9:01 PM Download file size info...
    Wednesday, December 11, 2013 9:01 PM
  • We have a repro case in-house, but I don't think we can share directly under house rules; the dump can be repro'd very easy if we need to though, and honestly it contains everything in memory anyway... This thing will crash any IE 11 browser on Win 8.1 or Win 7.
    Wednesday, December 11, 2013 9:03 PM