diff options
author | yoichio@chromium.org <yoichio@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-08 17:46:13 +0000 |
---|---|---|
committer | yoichio@chromium.org <yoichio@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-08 17:46:13 +0000 |
commit | 2945789a07147c28645bc0175004bfb70fe02b0c (patch) | |
tree | f56ec53713ea761eea85a0457fe8669f320c770d /chrome/browser/chrome_browser_main_win.cc | |
parent | 17d64785b8f1e6d48646477978a35d348d8bad59 (diff) | |
download | chromium_src-2945789a07147c28645bc0175004bfb70fe02b0c.zip chromium_src-2945789a07147c28645bc0175004bfb70fe02b0c.tar.gz chromium_src-2945789a07147c28645bc0175004bfb70fe02b0c.tar.bz2 |
Replace PeekMessage for TSF awareness
Replace PeekMessage with TSF interface's one in MessagePumpForIO
Add MessagePumpTSFInternal class for above replacing.
BUG=137627
TEST=
Review URL: https://chromiumcodereview.appspot.com/10826223
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155589 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 | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/chrome/browser/chrome_browser_main_win.cc b/chrome/browser/chrome_browser_main_win.cc index 6fcb12c..7343b41 100644 --- a/chrome/browser/chrome_browser_main_win.cc +++ b/chrome/browser/chrome_browser_main_win.cc @@ -18,6 +18,7 @@ #include "base/string_number_conversions.h" #include "base/utf_string_conversions.h" #include "base/win/metro.h" +#include "base/win/text_services_message_filter.h" #include "base/win/windows_version.h" #include "base/win/wrapped_window_proc.h" #include "chrome/browser/browser_util_win.h" @@ -188,6 +189,21 @@ void ChromeBrowserMainPartsWin::PreMainMessageLoopStart() { new chrome::RemovableDeviceNotificationsWindowWin(); } +void ChromeBrowserMainPartsWin::PostMainMessageLoopStart() { + DCHECK_EQ(MessageLoop::TYPE_UI, MessageLoop::current()->type()); + + if (base::win::IsTsfAwareRequired()) { + // Create a TSF message filter for the message loop. MessageLoop takes + // ownership of the filter. + scoped_ptr<base::win::TextServicesMessageFilter> tsf_message_filter( + new base::win::TextServicesMessageFilter); + if (tsf_message_filter->Init()) { + MessageLoopForUI::current()->SetMessageFilter( + tsf_message_filter.PassAs<MessageLoopForUI::MessageFilter>()); + } + } +} + // static void ChromeBrowserMainPartsWin::PrepareRestartOnCrashEnviroment( const CommandLine& parsed_command_line) { |