summaryrefslogtreecommitdiffstats
path: root/ceee/ie/plugin/bho/executor.cc
diff options
context:
space:
mode:
authorjoi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-04 20:45:49 +0000
committerjoi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-04 20:45:49 +0000
commit6d054d9a4318fd6bbc73ec289b38db1a1898c57a (patch)
tree0e62901542eb6344520cca0f113812ac5f76eb00 /ceee/ie/plugin/bho/executor.cc
parent9e1de49d1f0f304c6734fb95c0f3cd0030dcff91 (diff)
downloadchromium_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.cc14
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;
}