diff options
author | siggi@chromium.org <siggi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-23 18:31:00 +0000 |
---|---|---|
committer | siggi@chromium.org <siggi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-23 18:31:00 +0000 |
commit | 0cfac690f1914844f1b986a1666fb832c6f4b1a1 (patch) | |
tree | c6f7ebcf18faae71cdc4ec11ad6adc0a6ce1c566 /ceee/ie/broker/broker_module.cc | |
parent | cd9134207399aad14cef2b195e553a323b277e68 (diff) | |
download | chromium_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.cc | 9 |
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; } |