From 75f6dea052f4c56407b283ae92ee98bad249e36e Mon Sep 17 00:00:00 2001 From: "cpu@chromium.org" Date: Wed, 11 Jun 2014 12:13:23 +0000 Subject: [PATCH] Removing WTL from content runner. The _Module object is used by ATL COM classes to lock the module, like so _pAtlModule->Lock(); For example when CreateInstance is called: BrowserAccessibility* BrowserAccessibility::Create() { CComObject* instance; HRESULT hr = CComObject::CreateInstance(&instance); We need to get rid of WTL so we can get rid of ATL since it causes many problems. See bug for details. BUG=5027 TEST=chrome runs. Accessibility works. Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=275987 Review URL: https://codereview.chromium.org/323723002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276360 0039d316-1c4b-4281-b951-d872f2087c98 --- content/app/content_main_runner.cc | 9 ++------- .../browser/accessibility/browser_accessibility_manager_win.cc | 2 ++ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/content/app/content_main_runner.cc b/content/app/content_main_runner.cc index 3d1f748b7d42..061bdee996f9 100644 --- a/content/app/content_main_runner.cc +++ b/content/app/content_main_runner.cc @@ -73,12 +73,11 @@ #endif #if defined(OS_WIN) -#include -#include #include #include #include "base/strings/string_number_conversions.h" +#include "ui/base/win/atl_module.h" #include "ui/base/win/dpi_setup.h" #include "ui/gfx/win/dpi.h" #elif defined(OS_MACOSX) @@ -140,8 +139,6 @@ base::LazyInstance #if defined(OS_WIN) -static CAppModule _Module; - #endif // defined(OS_WIN) #if defined(OS_POSIX) && !defined(OS_IOS) @@ -484,7 +481,7 @@ class ContentMainRunnerImpl : public ContentMainRunner { #if defined(OS_WIN) RegisterInvalidParamHandler(); - _Module.Init(NULL, static_cast(params.instance)); + ui::win::CreateATLModuleIfNeeded(); sandbox_info_ = *params.sandbox_info; #else // !OS_WIN @@ -788,8 +785,6 @@ class ContentMainRunnerImpl : public ContentMainRunner { #ifdef _CRTDBG_MAP_ALLOC _CrtDumpMemoryLeaks(); #endif // _CRTDBG_MAP_ALLOC - - _Module.Term(); #endif // OS_WIN #if defined(OS_MACOSX) diff --git a/content/browser/accessibility/browser_accessibility_manager_win.cc b/content/browser/accessibility/browser_accessibility_manager_win.cc index 69c88916bd01..dfd1508a790f 100644 --- a/content/browser/accessibility/browser_accessibility_manager_win.cc +++ b/content/browser/accessibility/browser_accessibility_manager_win.cc @@ -11,6 +11,7 @@ #include "content/browser/accessibility/browser_accessibility_win.h" #include "content/browser/renderer_host/legacy_render_widget_host_win.h" #include "content/common/accessibility_messages.h" +#include "ui/base/win/atl_module.h" namespace content { @@ -40,6 +41,7 @@ BrowserAccessibilityManagerWin::BrowserAccessibilityManagerWin( parent_iaccessible_(parent_iaccessible), tracked_scroll_object_(NULL), accessible_hwnd_(accessible_hwnd) { + ui::win::CreateATLModuleIfNeeded(); accessible_hwnd_->set_browser_accessibility_manager(this); } -- 2.11.4.GIT