Index: chrome/browser/chrome_browser_main_win.cc |
diff --git a/chrome/browser/chrome_browser_main_win.cc b/chrome/browser/chrome_browser_main_win.cc |
index b2f8b721810472800f3cf3d6cfbfc0e18fed8ac2..e1385bba4666cb735367dd9803d5cbedf8076779 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::MediaDeviceNotificationsWindowWin(); |
} |
+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) { |