hust-marx / firebreath

Automatically exported from code.google.com/p/firebreath
0 stars 0 forks source link

staticDeinitialize not called in IE #147

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
I can observe strange behavior when browser is shutdown: staticDeinitialize is 
not called, sometimes...
because of this FB::Log::stopLogging() not called.
STDAPI DllCanUnloadNow(void)
{
hr==S_FALSE==>HRESULT hr = _AtlModule.DllCanUnloadNow(); 
    if (hr == S_OK && isStaticInitialized()) {
        getFactoryInstance()->globalPluginDeinitialize();
            FB::Log::stopLogging();
            flagStaticInitialized(false);
    }
    return hr;
}

What is the expected output? What do you see instead?
expected call PluginCore::StaticDeinitialize

What version of FireBreath are you using? On what operating system and browsers?
git revision f8a15d23c062ae74e9b2b4e76e8e41375102736f
Windows 7-32bit, IE 8

What version of your compiler or IDE are you using?
VS 2008

Please provide any additional information below.
I have 2 pages with slightly different javascript code and the same plugin 
initialization routine. At one plugin shutdown is correct but at another as 
described above.

Original issue reported on code.google.com by bignikita on 18 Feb 2011 at 9:45

GoogleCodeExporter commented 9 years ago
Is there any thought in what direction to investigate?

Original comment by bignikita on 18 Feb 2011 at 9:48

GoogleCodeExporter commented 9 years ago
Hmm.  not at present; it shouldn't unload the module if that returns false, I'd 
imagine.  We need to figure out why it is returning false (thus preventing the 
deinitialization).  I can't reproduce this myself...

Original comment by richarda...@gmail.com on 19 Feb 2011 at 8:06

GoogleCodeExporter commented 9 years ago
Should be fixed.

Original comment by richarda...@gmail.com on 24 Feb 2011 at 9:25

GoogleCodeExporter commented 9 years ago
I confirm it is fixed

Original comment by bignikita on 25 Feb 2011 at 7:07

GoogleCodeExporter commented 9 years ago
ie9-32bit win7-32bit  vs2008sp1
when use ie9-32bit open a new web page tab with plugin and then close it, the 
function DllCanUnloadNow is not called, so staticDeinitialize is not called. If 
you open the web page tab there are other web page tab, then close the page 
plugin, the function DllCanUnloadNow is called.

Original comment by lindaoji...@163.com on 20 May 2013 at 7:06