summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chrome_browser_main_win.cc
diff options
context:
space:
mode:
authoryoichio@chromium.org <yoichio@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-08 17:46:13 +0000
committeryoichio@chromium.org <yoichio@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-08 17:46:13 +0000
commit2945789a07147c28645bc0175004bfb70fe02b0c (patch)
treef56ec53713ea761eea85a0457fe8669f320c770d /chrome/browser/chrome_browser_main_win.cc
parent17d64785b8f1e6d48646477978a35d348d8bad59 (diff)
downloadchromium_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.cc16
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) {