Firebreath 2.0 Plugin crashed in IE8

0

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).

c++
activex
firebreath
asked on Stack Overflow Aug 17, 2016 by Yan Bing • edited Aug 18, 2016 by Yan Bing

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0