diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-09 06:42:37 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-09 06:42:37 +0000 |
commit | 336e17d23d8dca426ce75d85a98ff09e49890e9f (patch) | |
tree | 392b6cde5f1df805dd1b965ca2e16b8aa21160ef /chrome/browser/chrome_browser_main_win.cc | |
parent | 3e865cb64bde966254aef83efa32d9ae9d1558ee (diff) | |
download | chromium_src-336e17d23d8dca426ce75d85a98ff09e49890e9f.zip chromium_src-336e17d23d8dca426ce75d85a98ff09e49890e9f.tar.gz chromium_src-336e17d23d8dca426ce75d85a98ff09e49890e9f.tar.bz2 |
Adds code to unload digital persona
Digital persona hooks us in bad ways, leading to obscure crashes. In
particular their hook procedures trigger sending messages, leading to
states we are not set up to handle, nor should we have to handle.
BUG=291265
TEST=none
R=cpu@chromium.org
Review URL: https://codereview.chromium.org/26541003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227684 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chrome_browser_main_win.cc')
-rw-r--r-- | chrome/browser/chrome_browser_main_win.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/chrome/browser/chrome_browser_main_win.cc b/chrome/browser/chrome_browser_main_win.cc index 7be7e23..4f0a763 100644 --- a/chrome/browser/chrome_browser_main_win.cc +++ b/chrome/browser/chrome_browser_main_win.cc @@ -184,6 +184,18 @@ ChromeBrowserMainPartsWin::ChromeBrowserMainPartsWin( ChromeBrowserMainPartsWin::~ChromeBrowserMainPartsWin() { } +void ChromeBrowserMainPartsWin::PreEarlyInitialization() { + // DigitalPersona hooks us. Their hook can trigger sending messages from + // places we don't expect. For example, SetWindowTitle() triggering sending a + // mouse move. See 291265 for details. + HMODULE digital_persona = NULL; + if (GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, + L"DpOFeedb.dll", &digital_persona) && + digital_persona) { + FreeModule(digital_persona); + } +} + void ChromeBrowserMainPartsWin::ToolkitInitialized() { ChromeBrowserMainParts::ToolkitInitialized(); gfx::PlatformFontWin::adjust_font_callback = &AdjustUIFont; |