Firebreath 2.0 Plugin crashed in IE8

89 views Asked by At

IE8 crashed when access any property or method of plugin, and plugin work fine in IE10 and 11.

I have found the crash reason: In IE8, the m_settled of ComPromise is still false for some reason. When ComPromise Object destroy, the destroy method calls ComPromise::_onError and crash.

--- a/src/ActiveXCore/ComPromise.h
+++ b/src/ActiveXCore/ComPromise.h
@@ -53,7 +53,7 @@ namespace FB { namespace ActiveX {

         void Invalidate() {
             if (!m_settled) {
-                _onError(std::runtime_error("Invalidated"));
+                //_onError(std::runtime_error("Invalidated"));
             }
             m_promise.invalidate();
         }

After comment the code, the IE doesn't crash and return script_error(Method invoke failed) when I access the version of plugin. In debug mode, the HRESULT is 0x80020003 in IDispatchAPI.cpp(478).

0

There are 0 answers