summaryrefslogtreecommitdiffstats
path: root/content/browser/browser_main_loop.cc
diff options
context:
space:
mode:
Diffstat (limited to 'content/browser/browser_main_loop.cc')
-rw-r--r--content/browser/browser_main_loop.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main_loop.cc
index 67ef5bd..8b40383 100644
--- a/content/browser/browser_main_loop.cc
+++ b/content/browser/browser_main_loop.cc
@@ -69,6 +69,7 @@
#include <commctrl.h>
#include <shellapi.h>
+#include "base/win/text_services_message_filter.h"
#include "content/browser/system_message_window_win.h"
#include "content/common/sandbox_win.h"
#include "net/base/winsock_init.h"
@@ -402,6 +403,17 @@ void BrowserMainLoop::MainMessageLoopStart() {
#if defined(OS_WIN)
system_message_window_.reset(new SystemMessageWindowWin);
+
+ 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>());
+ }
+ }
#endif
if (parts_)