summaryrefslogtreecommitdiffstats
path: root/cloud_print
diff options
context:
space:
mode:
authoryukawa@chromium.org <yukawa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-06 02:33:04 +0000
committeryukawa@chromium.org <yukawa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-06 02:33:04 +0000
commit53e0e7605932515fa542435e729a24edfdf968d7 (patch)
tree82e94605809504ba1b638fd04d81e2a63d307f0e /cloud_print
parente2ff17eb179d87812530630f68cd2f7ec3175c85 (diff)
downloadchromium_src-53e0e7605932515fa542435e729a24edfdf968d7.zip
chromium_src-53e0e7605932515fa542435e729a24edfdf968d7.tar.gz
chromium_src-53e0e7605932515fa542435e729a24edfdf968d7.tar.bz2
Use MessagePumpDispatcher instead of MessageFilter
This is a preparation to remove base::MessageLoopForUI::MessageFilter. BUG=330735, 319122 TEST=done by manually executing cloud_print_service_config.exe Review URL: https://codereview.chromium.org/152033005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@249234 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cloud_print')
-rw-r--r--cloud_print/service/win/cloud_print_service_config.cc27
1 files changed, 16 insertions, 11 deletions
diff --git a/cloud_print/service/win/cloud_print_service_config.cc b/cloud_print/service/win/cloud_print_service_config.cc
index d622e64..d19e256 100644
--- a/cloud_print/service/win/cloud_print_service_config.cc
+++ b/cloud_print/service/win/cloud_print_service_config.cc
@@ -11,6 +11,8 @@
#include "base/command_line.h"
#include "base/file_util.h"
#include "base/message_loop/message_loop.h"
+#include "base/message_loop/message_pump_dispatcher.h"
+#include "base/run_loop.h"
#include "base/strings/string16.h"
#include "base/threading/thread.h"
#include "chrome/common/chrome_constants.h"
@@ -29,15 +31,19 @@ class SetupDialog : public base::RefCounted<SetupDialog>,
public ATL::CDialogImpl<SetupDialog> {
public:
// Enables accelerators.
- class MessageFilter : public base::MessageLoopForUI::MessageFilter {
+ class Dispatcher : public base::MessagePumpDispatcher {
public:
- explicit MessageFilter(SetupDialog* dialog) : dialog_(dialog){}
- virtual ~MessageFilter() {};
+ explicit Dispatcher(SetupDialog* dialog) : dialog_(dialog) {}
+ virtual ~Dispatcher() {};
- // MessageLoopForUI::MessageFilter
- virtual bool ProcessMessage(const MSG& msg) OVERRIDE {
+ // MessagePumpDispatcher:
+ virtual bool Dispatch(const MSG& msg) OVERRIDE {
MSG msg2 = msg;
- return dialog_->IsDialogMessage(&msg2) != FALSE;
+ if (!dialog_->IsDialogMessage(&msg2)) {
+ ::TranslateMessage(&msg);
+ ::DispatchMessage(&msg);
+ }
+ return true;
}
private:
@@ -444,10 +450,9 @@ int WINAPI WinMain(__in HINSTANCE hInstance,
scoped_refptr<SetupDialog> dialog(new SetupDialog());
dialog->Create(NULL);
dialog->ShowWindow(SW_SHOW);
- scoped_ptr<SetupDialog::MessageFilter> filter(
- new SetupDialog::MessageFilter(dialog));
- loop.SetMessageFilter(filter.Pass());
-
- loop.Run();
+ SetupDialog::Dispatcher dispatcher(dialog);
+ base::RunLoop run_loop;
+ run_loop.set_dispatcher(&dispatcher);
+ run_loop.Run();
return 0;
}