diff options
author | joi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-04 20:45:49 +0000 |
---|---|---|
committer | joi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-04 20:45:49 +0000 |
commit | 6d054d9a4318fd6bbc73ec289b38db1a1898c57a (patch) | |
tree | 0e62901542eb6344520cca0f113812ac5f76eb00 /ceee/ie/plugin/bho/executor.cc | |
parent | 9e1de49d1f0f304c6734fb95c0f3cd0030dcff91 (diff) | |
download | chromium_src-6d054d9a4318fd6bbc73ec289b38db1a1898c57a.zip chromium_src-6d054d9a4318fd6bbc73ec289b38db1a1898c57a.tar.gz chromium_src-6d054d9a4318fd6bbc73ec289b38db1a1898c57a.tar.bz2 |
Revert 68293 - Revert 68290 - Restored missing BrokerRpcClient::Connect.
Fixed leaking of BrokerRpcClient.
(relanding for vitalybuka@chromium.org)
BUG=65392
TEST=none
Review URL: http://codereview.chromium.org/5610004
TBR=vitalybuka@chromium.org
Review URL: http://codereview.chromium.org/5533007
TBR=joi@chromium.org
Review URL: http://codereview.chromium.org/5544010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68296 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ceee/ie/plugin/bho/executor.cc')
-rw-r--r-- | ceee/ie/plugin/bho/executor.cc | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/ceee/ie/plugin/bho/executor.cc b/ceee/ie/plugin/bho/executor.cc index 9e2dc60..56c8e97 100644 --- a/ceee/ie/plugin/bho/executor.cc +++ b/ceee/ie/plugin/bho/executor.cc @@ -370,7 +370,11 @@ HRESULT AsyncTabCall::Signal() { return hr; } -CeeeExecutor::CeeeExecutor() : hwnd_(NULL) { +CeeeExecutor::CeeeExecutor() + : hwnd_(NULL), + // Don't restart on broker crash. It won't work because executor was + // already registered in dead broker. + broker_rpc_client_(false) { } CeeeExecutor::~CeeeExecutor() { @@ -426,9 +430,13 @@ HRESULT CeeeExecutor::Initialize(CeeeWindowHandle hwnd) { // Infobar. In any case, the construction below should have a reference to // a BHO and its EventSender so we don't create Infobars before the tab_id // is ready. - if (window_utils::GetTopLevelParent(hwnd_) != hwnd_) + if (window_utils::GetTopLevelParent(hwnd_) != hwnd_) { + hr = broker_rpc_client_.Connect(true); + if (FAILED(hr)) + return hr; infobar_manager_.reset( - new infobar_api::InfobarManager(hwnd_, new BrokerRpcClient(false))); + new infobar_api::InfobarManager(hwnd_, &broker_rpc_client_)); + } return S_OK; } |