diff options
Diffstat (limited to 'ceee/ie/plugin/bho/browser_helper_object.h')
-rw-r--r-- | ceee/ie/plugin/bho/browser_helper_object.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/ceee/ie/plugin/bho/browser_helper_object.h b/ceee/ie/plugin/bho/browser_helper_object.h index 8433ca7..8fc6584 100644 --- a/ceee/ie/plugin/bho/browser_helper_object.h +++ b/ceee/ie/plugin/bho/browser_helper_object.h @@ -236,6 +236,7 @@ class ATL_NO_VTABLE BrowserHelperObject IWebBrowser2** parent_browser); // Unit testing seam to create the broker registrar. + // Release registrar ASAP. Cached reference may block broker from release. virtual HRESULT GetBrokerRegistrar(ICeeeBrokerRegistrar** broker); // Unit testing seam to create an executor. @@ -314,6 +315,12 @@ class ATL_NO_VTABLE BrowserHelperObject virtual HRESULT AttachBrowserHandler(IWebBrowser2* webbrowser, IFrameEventHandler** handler); + // Helpers to call function in registrar with following release of broker. + HRESULT RegisterTabExecutor(DWORD thread_id, IUnknown* executor); + HRESULT UnregisterExecutor(DWORD thread_id); + HRESULT SetTabIdForHandle(int tool_band_id, long tab_handle); + HRESULT SetTabToolBandIdForHandle(int tool_band_id, long tab_handle); + // Function info objects describing our message handlers. // Effectively const but can't make const because of silly ATL macro problem. static _ATL_FUNC_INFO handler_type_idispatch_5variantptr_boolptr_; @@ -328,9 +335,6 @@ class ATL_NO_VTABLE BrowserHelperObject // The Chrome Frame host handling a Chrome Frame instance for us. ScopedChromeFramePtr chrome_frame_host_; - // The Broker Registrar we use to un/register executors for our thread. - base::win::ScopedComPtr<ICeeeBrokerRegistrar> broker_registrar_; - // We keep a reference to the executor we registered so that we can // manually disconnect it, so it doesn't get called while we unregister it. ScopedIUnkPtr executor_; |