1

Closed

NASTY issue with FBConnect and IE7 it CRASHES VISTA

description

Punted for v2.
 
If you repeatedly OPEN FBConnect dialog and then press CANCLE button on that dialog.
After let's say 5-20 times IE7 will start poping up endless numbers of new FBConnect dialog's hogging complete system !!!.
 
I installed this version of toolkit
http://oomph.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=19840#DownloadId=50202
on Windows Vista Ultimate with IE7 browser.
 
You can try it on this page:
http://dev.adaptiveblue.com/fbconnect/demo1.htm
it is sample demo FBConnect package
 
This ONLY happens on IE7 for now
on IE6 and IE8 it just opens single new window with this URL (always same 1):
http://dev.adaptiveblue.com/fbconnect/xd_receiver.htm#fname=_opener&%7B%22t%22%3A3%2C%22h%22%3A%22fbCancelLogin%22%2C%22sid%22%3A%220.491%22%7D
 
And now DEV tip:
//////////////////////////////////////////////
I was looking into your SRC of "oomph\consume\Toolbar\Microformats\Toolbar.cpp"
and if you REMOVE/COMMENT OUT from "OnDocumentComplete method" HOOKs on current HTML DOCUMENT then is issue doesn't occurs but obviously toolbar.dll is not working on refresh anymore
 
void STDMETHODCALLTYPE CToolbar::OnDocumentComplete(IDispatch *pDisp, VARIANT *pvarURL)
{
HRESULT hr = S_OK;
 
CComQIPtr<IWebBrowser2> spTempWebBrowser = pDisp;
if (spTempWebBrowser && m_spWebBrowser && m_spWebBrowser.IsEqualObject(spTempWebBrowser))
{
CComPtr<IDispatch> spDispDoc;
hr = m_spWebBrowser->get_Document(&spDispDoc);
if (SUCCEEDED(hr))
{
CComQIPtr<IHTMLDocument2> spHTMLDoc = spDispDoc;
if (spHTMLDoc != NULL)
{
 
// Hook OnReadyStateChange. We need to hook even for HTTPS pages, since
// HTTPS could redirect to HTTP
 
//if (m_fDocAdvised)
//{
// hr = ISinkDocEvents::DispEventUnadvise(m_spDocument);
// m_fDocAdvised = FALSE;
//}
 
//hr = ISinkDocEvents::DispEventAdvise(spDispDoc);
//if (SUCCEEDED(hr))
//{
// m_fDocAdvised = TRUE;
// m_spDocument = spDispDoc;
//}
}
 
hr = InjectScriptTags(spDispDoc);
}
}
}
Closed Aug 25, 2009 at 12:18 AM by karstenj

comments

ernes32 wrote May 13, 2009 at 4:29 PM

And btw. FBConnect works just fine if oomph toolkit is not installed !

ernes32 wrote May 15, 2009 at 7:41 AM

My current solution is in :
void STDMETHODCALLTYPE CToolbar::OnDocumentComplete(IDispatch *pDisp, VARIANT *pvarURL)
I set hook only once! by:
            if (!m_fDocAdvised)
            {
                hr = ISinkDocEvents::DispEventAdvise(spDispDoc);
                if (SUCCEEDED(hr))
                {
                    m_fDocAdvised = TRUE;
                    m_spDocument = spDispDoc;
                }
            }
and on STDMETHODIMP CAdaptiveBlueHook::SetSite(IUnknown* pUnkSite)
I am releasing event...

btw. u also forgot to initilize m_fDocAdvised (bad practice!)

wrote Aug 25, 2009 at 12:18 AM

wrote Feb 13, 2013 at 9:25 PM

wrote May 16, 2013 at 1:43 AM