| Index: win8/metro_driver/chrome_app_view_ash.cc
|
| diff --git a/win8/metro_driver/chrome_app_view_ash.cc b/win8/metro_driver/chrome_app_view_ash.cc
|
| index 73e73b40bb72629ca69f55095f1a12a295a386b7..65e07ba913e6e95a59f955e9aa68a458dbb1cd16 100644
|
| --- a/win8/metro_driver/chrome_app_view_ash.cc
|
| +++ b/win8/metro_driver/chrome_app_view_ash.cc
|
| @@ -14,6 +14,7 @@
|
| #include "base/files/file_path.h"
|
| #include "base/message_loop/message_loop.h"
|
| #include "base/path_service.h"
|
| +#include "base/single_thread_task_runner.h"
|
| #include "base/win/metro.h"
|
| #include "base/win/win_util.h"
|
| #include "base/win/windows_version.h"
|
| @@ -143,8 +144,7 @@ void SendKeySequence(
|
| class ChromeChannelListener : public IPC::Listener {
|
| public:
|
| ChromeChannelListener(base::MessageLoop* ui_loop, ChromeAppViewAsh* app_view)
|
| - : ui_proxy_(ui_loop->message_loop_proxy()),
|
| - app_view_(app_view) {}
|
| + : ui_task_runner_(ui_loop->task_runner()), app_view_(app_view) {}
|
|
|
| bool OnMessageReceived(const IPC::Message& message) override {
|
| IPC_BEGIN_MESSAGE_MAP(ChromeChannelListener, message)
|
| @@ -172,13 +172,15 @@ class ChromeChannelListener : public IPC::Listener {
|
|
|
| void OnChannelError() override {
|
| DVLOG(1) << "Channel error. Exiting.";
|
| - ui_proxy_->PostTask(FROM_HERE,
|
| + ui_task_runner_->PostTask(
|
| + FROM_HERE,
|
| base::Bind(&ChromeAppViewAsh::OnMetroExit, base::Unretained(app_view_),
|
| TERMINATE_USING_KEY_SEQUENCE));
|
|
|
| // In early Windows 8 versions the code above sometimes fails so we call
|
| // it a second time with a NULL window which just calls Exit().
|
| - ui_proxy_->PostDelayedTask(FROM_HERE,
|
| + ui_task_runner_->PostDelayedTask(
|
| + FROM_HERE,
|
| base::Bind(&ChromeAppViewAsh::OnMetroExit, base::Unretained(app_view_),
|
| TERMINATE_USING_PROCESS_EXIT),
|
| base::TimeDelta::FromMilliseconds(100));
|
| @@ -186,91 +188,78 @@ class ChromeChannelListener : public IPC::Listener {
|
|
|
| private:
|
| void OnActivateDesktop(const base::FilePath& shortcut, bool ash_exit) {
|
| - ui_proxy_->PostTask(FROM_HERE,
|
| - base::Bind(&ChromeAppViewAsh::OnActivateDesktop,
|
| - base::Unretained(app_view_),
|
| - shortcut, ash_exit));
|
| + ui_task_runner_->PostTask(
|
| + FROM_HERE, base::Bind(&ChromeAppViewAsh::OnActivateDesktop,
|
| + base::Unretained(app_view_), shortcut, ash_exit));
|
| }
|
|
|
| void OnMetroExit() {
|
| - ui_proxy_->PostTask(FROM_HERE,
|
| - base::Bind(&ChromeAppViewAsh::OnMetroExit,
|
| - base::Unretained(app_view_), TERMINATE_USING_KEY_SEQUENCE));
|
| + ui_task_runner_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&ChromeAppViewAsh::OnMetroExit, base::Unretained(app_view_),
|
| + TERMINATE_USING_KEY_SEQUENCE));
|
| }
|
|
|
| void OnOpenURLOnDesktop(const base::FilePath& shortcut,
|
| const base::string16& url) {
|
| - ui_proxy_->PostTask(FROM_HERE,
|
| - base::Bind(&ChromeAppViewAsh::OnOpenURLOnDesktop,
|
| - base::Unretained(app_view_),
|
| - shortcut, url));
|
| + ui_task_runner_->PostTask(
|
| + FROM_HERE, base::Bind(&ChromeAppViewAsh::OnOpenURLOnDesktop,
|
| + base::Unretained(app_view_), shortcut, url));
|
| }
|
|
|
| void OnSetCursor(int64 cursor) {
|
| - ui_proxy_->PostTask(FROM_HERE,
|
| - base::Bind(&ChromeAppViewAsh::OnSetCursor,
|
| - base::Unretained(app_view_),
|
| - reinterpret_cast<HCURSOR>(cursor)));
|
| + ui_task_runner_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&ChromeAppViewAsh::OnSetCursor, base::Unretained(app_view_),
|
| + reinterpret_cast<HCURSOR>(cursor)));
|
| }
|
|
|
| void OnDisplayFileOpenDialog(const base::string16& title,
|
| const base::string16& filter,
|
| const base::FilePath& default_path,
|
| bool allow_multiple_files) {
|
| - ui_proxy_->PostTask(FROM_HERE,
|
| - base::Bind(&ChromeAppViewAsh::OnDisplayFileOpenDialog,
|
| - base::Unretained(app_view_),
|
| - title,
|
| - filter,
|
| - default_path,
|
| - allow_multiple_files));
|
| + ui_task_runner_->PostTask(
|
| + FROM_HERE, base::Bind(&ChromeAppViewAsh::OnDisplayFileOpenDialog,
|
| + base::Unretained(app_view_), title, filter,
|
| + default_path, allow_multiple_files));
|
| }
|
|
|
| void OnDisplayFileSaveAsDialog(
|
| const MetroViewerHostMsg_SaveAsDialogParams& params) {
|
| - ui_proxy_->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&ChromeAppViewAsh::OnDisplayFileSaveAsDialog,
|
| - base::Unretained(app_view_),
|
| - params));
|
| + ui_task_runner_->PostTask(
|
| + FROM_HERE, base::Bind(&ChromeAppViewAsh::OnDisplayFileSaveAsDialog,
|
| + base::Unretained(app_view_), params));
|
| }
|
|
|
| void OnDisplayFolderPicker(const base::string16& title) {
|
| - ui_proxy_->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&ChromeAppViewAsh::OnDisplayFolderPicker,
|
| - base::Unretained(app_view_),
|
| - title));
|
| + ui_task_runner_->PostTask(
|
| + FROM_HERE, base::Bind(&ChromeAppViewAsh::OnDisplayFolderPicker,
|
| + base::Unretained(app_view_), title));
|
| }
|
|
|
| void OnSetCursorPos(int x, int y) {
|
| VLOG(1) << "In IPC OnSetCursorPos: " << x << ", " << y;
|
| - ui_proxy_->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&ChromeAppViewAsh::OnSetCursorPos,
|
| - base::Unretained(app_view_),
|
| - x, y));
|
| + ui_task_runner_->PostTask(FROM_HERE,
|
| + base::Bind(&ChromeAppViewAsh::OnSetCursorPos,
|
| + base::Unretained(app_view_), x, y));
|
| }
|
|
|
| void OnImeCancelComposition() {
|
| - ui_proxy_->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&ChromeAppViewAsh::OnImeCancelComposition,
|
| - base::Unretained(app_view_)));
|
| + ui_task_runner_->PostTask(
|
| + FROM_HERE, base::Bind(&ChromeAppViewAsh::OnImeCancelComposition,
|
| + base::Unretained(app_view_)));
|
| }
|
|
|
| void OnImeTextInputClientChanged(
|
| const std::vector<int32>& input_scopes,
|
| const std::vector<metro_viewer::CharacterBounds>& character_bounds) {
|
| - ui_proxy_->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&ChromeAppViewAsh::OnImeUpdateTextInputClient,
|
| - base::Unretained(app_view_),
|
| - input_scopes,
|
| - character_bounds));
|
| + ui_task_runner_->PostTask(
|
| + FROM_HERE, base::Bind(&ChromeAppViewAsh::OnImeUpdateTextInputClient,
|
| + base::Unretained(app_view_), input_scopes,
|
| + character_bounds));
|
| }
|
|
|
| - scoped_refptr<base::MessageLoopProxy> ui_proxy_;
|
| + scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner_;
|
| ChromeAppViewAsh* app_view_;
|
| };
|
|
|
|
|