summaryrefslogtreecommitdiffstats
path: root/ceee/ie/broker/broker_module.cc
diff options
context:
space:
mode:
authorsiggi@chromium.org <siggi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-23 18:31:00 +0000
committersiggi@chromium.org <siggi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-23 18:31:00 +0000
commit0cfac690f1914844f1b986a1666fb832c6f4b1a1 (patch)
treec6f7ebcf18faae71cdc4ec11ad6adc0a6ce1c566 /ceee/ie/broker/broker_module.cc
parentcd9134207399aad14cef2b195e553a323b277e68 (diff)
downloadchromium_src-0cfac690f1914844f1b986a1666fb832c6f4b1a1.zip
chromium_src-0cfac690f1914844f1b986a1666fb832c6f4b1a1.tar.gz
chromium_src-0cfac690f1914844f1b986a1666fb832c6f4b1a1.tar.bz2
Revert 67103 - Revert 67102 - Use async COM to service tab executor requests.
Change to proxy/stub marshaling from typelib marshaling, with manual registration of proxy/stubs. Moving away from registered proxy/stubs is desireable in the context of upcoming GCF autoupdate changes, and this is an opportune moment. Implement an async ICeeeTabExecutor that defers execution until a posted message is processed. This avoids (I hope) processing reentrantly on out-of-apartment invocations in IE, which has a tendency to lead to deadlocks and general nastyness. BUG=none TEST=unittests in change Review URL: http://codereview.chromium.org/4845001 TBR=siggi@chromium.org Review URL: http://codereview.chromium.org/5343001 TBR=siggi@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67122 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ceee/ie/broker/broker_module.cc')
-rw-r--r--ceee/ie/broker/broker_module.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/ceee/ie/broker/broker_module.cc b/ceee/ie/broker/broker_module.cc
index 0d7a0eb..252e6a4 100644
--- a/ceee/ie/broker/broker_module.cc
+++ b/ceee/ie/broker/broker_module.cc
@@ -18,6 +18,7 @@
#include "ceee/ie/broker/executors_manager.h"
#include "ceee/ie/broker/resource.h"
#include "ceee/ie/broker/window_events_funnel.h"
+#include "ceee/ie/plugin/toolband/toolband_proxy.h"
#include "ceee/ie/common/crash_reporter.h"
#include "ceee/common/com_utils.h"
#include "chrome/common/url_constants.h"
@@ -153,6 +154,14 @@ HRESULT CeeeBrokerModule::InitializeCom() {
DLOG_IF(WARNING, FAILED(hr)) << "IGlobalOptions::Set failed "
<< com::LogHr(hr);
+ // Register the executor proxy/stubs.
+ // Note that this registers the proxy/stub class objects for all threads
+ // in the multithreaded apartment.
+ if (!RegisterProxyStubs(NULL)) {
+ LOG(ERROR) << "Failed to register executor proxy/stubs";
+ return E_UNEXPECTED;
+ }
+
// The above is best-effort, don't bail on error.
return S_OK;
}