public void Destroy() { if (ieInstance != null) { try { Marshal.ReleaseComObject(ieInstance); } catch { } } if (_browser != null) { _browser.Dispose(); } if (testHelp != null) { testHelp.Dispose(); } testHelp = null; _browser = null; host = null; ieInstance = null; _mainHWND = IntPtr.Zero; }
private void CheckUIHostRegistration() { lock (_uiHostRegisteredLock) { if (testHelp != null) { testHelp.StartInfo = this.StartInfo; } if (isUIHostRegistered || ieInstance == null) { return; } ICustomDoc cDoc = ieInstance.Document as ICustomDoc; IOleObject oleObj = ieInstance.Document as IOleObject; if (oleObj != null && cDoc != null) { IOleClientSite clientSite = null; oleObj.GetClientSite(ref clientSite); if (cDoc != null) { _browser = new BrowserIEImpl(ieInstance, _mainHWND, _canvasHWND); testHelp = new IETestHelp(clientSite as IDocHostUIHandler, _browser, host); cDoc.SetUIHandler(testHelp); isUIHostRegistered = true; } } } }
public void Dispose() { if (m_defaultUIHandler != null) { Marshal.ReleaseComObject(m_defaultUIHandler); } lock (performanceTrackerLock) { if (performanceTracker != null) { try{ performanceTracker.StopTracking(null); }catch { } try{ performanceTracker.Dispose(); } catch { } } performanceTracker = null; } browserWrapperIEImpl = null; browser = null; m_defaultUIHandler = null; }
public IETestHelp(IDocHostUIHandler defaultUIHandler, BrowserIEImpl browser, BrowserWrapperIEImpl browserWrapperIEImpl) { this.JavascriptDelegates = new Dictionary <string, ExecuteJavascriptDelegate>(); this.JavascriptDelegates.Add("getSnapshot", new ExecuteJavascriptDelegate(this.TakeScreenshot)); this.JavascriptDelegates.Add("startperftest", new ExecuteJavascriptDelegate(this.StartPerformanceTracking)); this.JavascriptDelegates.Add("endperftest", new ExecuteJavascriptDelegate(this.StopPerformanceTracking)); this.JavascriptDelegates.Add("saveData", new ExecuteJavascriptDelegate(this.SaveDump)); this.JavascriptDelegates.Add("log", new ExecuteJavascriptDelegate(this.Log)); this.JavascriptDelegates.Add("onProgress", new ExecuteJavascriptDelegate(this.OnProgress)); this.JavascriptDelegates.Add("signal_test_started", new ExecuteJavascriptDelegate(this.SignalTestStarted)); this.JavascriptDelegates.Add("signal_test_ended", new ExecuteJavascriptDelegate(this.SignalTestEnded)); this.JavascriptDelegates.Add("redirect", new ExecuteJavascriptDelegate(this.RedirectPage)); this.JavascriptDelegates.Add("clearcache", new ExecuteJavascriptDelegate(this.ClearCache)); this.browserWrapperIEImpl = browserWrapperIEImpl; this.browser = browser; this.m_defaultUIHandler = defaultUIHandler; }