Commit efbf3409 authored by Mike Wasserman's avatar Mike Wasserman Committed by Commit Bot

mash: Move EventRewriterController to ash

Move the files to ash and ownership to Shell.

Bug: 647781
Change-Id: I1efe7dec0d9cd429f3ed9ff2295c612c90ffa800
Reviewed-on: https://chromium-review.googlesource.com/1028980
Commit-Queue: Michael Wasserman <msw@chromium.org>
Reviewed-by: default avatarJames Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#553853}
parent e71bd79a
...@@ -191,6 +191,8 @@ component("ash") { ...@@ -191,6 +191,8 @@ component("ash") {
"drag_drop/drag_image_view.h", "drag_drop/drag_image_view.h",
"event_matcher_util.cc", "event_matcher_util.cc",
"event_matcher_util.h", "event_matcher_util.h",
"event_rewriter_controller.cc",
"event_rewriter_controller.h",
"first_run/desktop_cleaner.cc", "first_run/desktop_cleaner.cc",
"first_run/desktop_cleaner.h", "first_run/desktop_cleaner.h",
"first_run/first_run_helper.cc", "first_run/first_run_helper.cc",
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "chrome/browser/chromeos/events/event_rewriter_controller.h" #include "ash/event_rewriter_controller.h"
#include <utility> #include <utility>
...@@ -11,9 +11,10 @@ ...@@ -11,9 +11,10 @@
#include "ash/shell.h" #include "ash/shell.h"
#include "ui/aura/env.h" #include "ui/aura/env.h"
#include "ui/aura/window_tree_host.h" #include "ui/aura/window_tree_host.h"
#include "ui/events/event_rewriter.h"
#include "ui/events/event_source.h" #include "ui/events/event_source.h"
namespace chromeos { namespace ash {
EventRewriterController::EventRewriterController() : initialized_(false) { EventRewriterController::EventRewriterController() : initialized_(false) {
// Add the controller as an observer for new root windows. // Add the controller as an observer for new root windows.
...@@ -24,10 +25,8 @@ EventRewriterController::~EventRewriterController() { ...@@ -24,10 +25,8 @@ EventRewriterController::~EventRewriterController() {
aura::Env::GetInstance()->RemoveObserver(this); aura::Env::GetInstance()->RemoveObserver(this);
// Remove the rewriters from every root window EventSource and destroy them. // Remove the rewriters from every root window EventSource and destroy them.
for (const auto& rewriter : rewriters_) { for (const auto& rewriter : rewriters_) {
aura::Window::Windows windows = ash::Shell::GetAllRootWindows(); for (auto* window : Shell::GetAllRootWindows())
for (auto* window : windows) {
window->GetHost()->GetEventSource()->RemoveEventRewriter(rewriter.get()); window->GetHost()->GetEventSource()->RemoveEventRewriter(rewriter.get());
}
} }
rewriters_.clear(); rewriters_.clear();
} }
...@@ -42,14 +41,14 @@ void EventRewriterController::Init() { ...@@ -42,14 +41,14 @@ void EventRewriterController::Init() {
DCHECK(!initialized_); DCHECK(!initialized_);
initialized_ = true; initialized_ = true;
// Add the rewriters to each existing root window EventSource. // Add the rewriters to each existing root window EventSource.
aura::Window::Windows windows = ash::Shell::GetAllRootWindows(); aura::Window::Windows windows = Shell::GetAllRootWindows();
for (auto* window : windows) for (auto* window : windows)
AddToEventSource(window->GetHost()->GetEventSource()); AddToEventSource(window->GetHost()->GetEventSource());
// In case there are any mirroring displays, their hosts' EventSources won't // In case there are any mirroring displays, their hosts' EventSources won't
// be included above. // be included above.
const auto* mirror_window_controller = const auto* mirror_window_controller =
ash::Shell::Get()->window_tree_host_manager()->mirror_window_controller(); Shell::Get()->window_tree_host_manager()->mirror_window_controller();
for (auto* window : mirror_window_controller->GetAllRootWindows()) for (auto* window : mirror_window_controller->GetAllRootWindows())
AddToEventSource(window->GetHost()->GetEventSource()); AddToEventSource(window->GetHost()->GetEventSource());
} }
...@@ -61,9 +60,8 @@ void EventRewriterController::OnHostInitialized(aura::WindowTreeHost* host) { ...@@ -61,9 +60,8 @@ void EventRewriterController::OnHostInitialized(aura::WindowTreeHost* host) {
void EventRewriterController::AddToEventSource(ui::EventSource* source) { void EventRewriterController::AddToEventSource(ui::EventSource* source) {
DCHECK(source); DCHECK(source);
for (const auto& rewriter : rewriters_) { for (const auto& rewriter : rewriters_)
source->AddEventRewriter(rewriter.get()); source->AddEventRewriter(rewriter.get());
}
} }
} // namespace chromeos } // namespace ash
...@@ -2,27 +2,28 @@ ...@@ -2,27 +2,28 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef CHROME_BROWSER_CHROMEOS_EVENTS_EVENT_REWRITER_CONTROLLER_H_ #ifndef ASH_EVENT_REWRITER_CONTROLLER_H_
#define CHROME_BROWSER_CHROMEOS_EVENTS_EVENT_REWRITER_CONTROLLER_H_ #define ASH_EVENT_REWRITER_CONTROLLER_H_
#include <list> #include <list>
#include <memory> #include <memory>
#include <vector> #include <vector>
#include "ash/ash_export.h"
#include "base/macros.h" #include "base/macros.h"
#include "ui/aura/env_observer.h" #include "ui/aura/env_observer.h"
#include "ui/events/event_rewriter.h"
namespace ui { namespace ui {
class EventRewriter;
class EventSource; class EventSource;
} // namespace ui } // namespace ui
namespace chromeos { namespace ash {
// Owns |ui::EventRewriter|s and ensures that they are added to all root // Owns ui::EventRewriters and ensures that they are added to each root window
// windows |EventSource|s, current and future, in the order that they are // EventSource, current and future, in the order that they are added to this.
// added to this. // TODO(crbug.com/647781): Avoid exposing this outside of ash.
class EventRewriterController : public aura::EnvObserver { class ASH_EXPORT EventRewriterController : public aura::EnvObserver {
public: public:
EventRewriterController(); EventRewriterController();
~EventRewriterController() override; ~EventRewriterController() override;
...@@ -51,6 +52,6 @@ class EventRewriterController : public aura::EnvObserver { ...@@ -51,6 +52,6 @@ class EventRewriterController : public aura::EnvObserver {
DISALLOW_COPY_AND_ASSIGN(EventRewriterController); DISALLOW_COPY_AND_ASSIGN(EventRewriterController);
}; };
} // namespace chromeos } // namespace ash
#endif // CHROME_BROWSER_CHROMEOS_EVENTS_EVENT_REWRITER_CONTROLLER_H_ #endif // ASH_EVENT_REWRITER_CONTROLLER_H_
...@@ -43,6 +43,7 @@ ...@@ -43,6 +43,7 @@
#include "ash/display/screen_position_controller.h" #include "ash/display/screen_position_controller.h"
#include "ash/display/window_tree_host_manager.h" #include "ash/display/window_tree_host_manager.h"
#include "ash/drag_drop/drag_drop_controller.h" #include "ash/drag_drop/drag_drop_controller.h"
#include "ash/event_rewriter_controller.h"
#include "ash/first_run/first_run_helper.h" #include "ash/first_run/first_run_helper.h"
#include "ash/focus_cycler.h" #include "ash/focus_cycler.h"
#include "ash/frame/custom_frame_view_ash.h" #include "ash/frame/custom_frame_view_ash.h"
...@@ -738,10 +739,10 @@ Shell::~Shell() { ...@@ -738,10 +739,10 @@ Shell::~Shell() {
RemovePreTargetHandler(system_gesture_filter_.get()); RemovePreTargetHandler(system_gesture_filter_.get());
RemovePreTargetHandler(mouse_cursor_filter_.get()); RemovePreTargetHandler(mouse_cursor_filter_.get());
RemovePreTargetHandler(modality_filter_.get()); RemovePreTargetHandler(modality_filter_.get());
// TooltipController is deleted with the Shell so removing its references.
RemovePreTargetHandler(tooltip_controller_.get()); RemovePreTargetHandler(tooltip_controller_.get());
event_rewriter_controller_.reset();
screen_orientation_controller_.reset(); screen_orientation_controller_.reset();
screen_layout_observer_.reset(); screen_layout_observer_.reset();
...@@ -1018,6 +1019,8 @@ void Shell::Init(ui::ContextFactory* context_factory, ...@@ -1018,6 +1019,8 @@ void Shell::Init(ui::ContextFactory* context_factory,
// windows are active. // windows are active.
window_modality_controller_.reset(new ::wm::WindowModalityController(this)); window_modality_controller_.reset(new ::wm::WindowModalityController(this));
event_rewriter_controller_ = std::make_unique<EventRewriterController>();
env_filter_.reset(new ::wm::CompoundEventFilter); env_filter_.reset(new ::wm::CompoundEventFilter);
AddPreTargetHandler(env_filter_.get()); AddPreTargetHandler(env_filter_.get());
......
...@@ -107,6 +107,7 @@ class DisplayShutdownObserver; ...@@ -107,6 +107,7 @@ class DisplayShutdownObserver;
class DockedMagnifierController; class DockedMagnifierController;
class DragDropController; class DragDropController;
class EventClientImpl; class EventClientImpl;
class EventRewriterController;
class EventTransformationHandler; class EventTransformationHandler;
class FirstRunHelper; class FirstRunHelper;
class FocusCycler; class FocusCycler;
...@@ -380,6 +381,9 @@ class ASH_EXPORT Shell : public SessionObserver, ...@@ -380,6 +381,9 @@ class ASH_EXPORT Shell : public SessionObserver,
DockedMagnifierController* docked_magnifier_controller(); DockedMagnifierController* docked_magnifier_controller();
::wm::CompoundEventFilter* env_filter() { return env_filter_.get(); } ::wm::CompoundEventFilter* env_filter() { return env_filter_.get(); }
EventRewriterController* event_rewriter_controller() {
return event_rewriter_controller_.get();
}
EventClientImpl* event_client() { return event_client_.get(); } EventClientImpl* event_client() { return event_client_.get(); }
EventTransformationHandler* event_transformation_handler() { EventTransformationHandler* event_transformation_handler() {
return event_transformation_handler_.get(); return event_transformation_handler_.get();
...@@ -679,6 +683,8 @@ class ASH_EXPORT Shell : public SessionObserver, ...@@ -679,6 +683,8 @@ class ASH_EXPORT Shell : public SessionObserver,
// The CompoundEventFilter owned by aura::Env object. // The CompoundEventFilter owned by aura::Env object.
std::unique_ptr<::wm::CompoundEventFilter> env_filter_; std::unique_ptr<::wm::CompoundEventFilter> env_filter_;
std::unique_ptr<EventRewriterController> event_rewriter_controller_;
std::unique_ptr<UserMetricsRecorder> user_metrics_recorder_; std::unique_ptr<UserMetricsRecorder> user_metrics_recorder_;
std::unique_ptr<WindowPositioner> window_positioner_; std::unique_ptr<WindowPositioner> window_positioner_;
......
...@@ -569,8 +569,6 @@ source_set("chromeos") { ...@@ -569,8 +569,6 @@ source_set("chromeos") {
"drive/write_on_cache_file.h", "drive/write_on_cache_file.h",
"eol_notification.cc", "eol_notification.cc",
"eol_notification.h", "eol_notification.h",
"events/event_rewriter_controller.cc",
"events/event_rewriter_controller.h",
"events/event_rewriter_delegate_impl.cc", "events/event_rewriter_delegate_impl.cc",
"events/event_rewriter_delegate_impl.h", "events/event_rewriter_delegate_impl.h",
"events/keyboard_driven_event_rewriter.cc", "events/keyboard_driven_event_rewriter.cc",
......
...@@ -39,7 +39,8 @@ include_rules = [ ...@@ -39,7 +39,8 @@ include_rules = [
specific_include_rules = { specific_include_rules = {
"chrome_browser_main_chromeos\.cc": [ "chrome_browser_main_chromeos\.cc": [
"-ash", "-ash",
# TODO(mash): Support EventRewriterController, http://crbug.com/647781. # TODO(mash): Support EventRewriters, http://crbug.com/647781.
"+ash/event_rewriter_controller.h",
"+ash/root_window_controller.h", "+ash/root_window_controller.h",
"+ash/shell.h", "+ash/shell.h",
"+ash/sticky_keys/sticky_keys_controller.h", "+ash/sticky_keys/sticky_keys_controller.h",
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
#include "ash/test/ash_test_views_delegate.h" #include "ash/test/ash_test_views_delegate.h"
#include "base/macros.h" #include "base/macros.h"
#include "chrome/browser/chromeos/ash_config.h" #include "chrome/browser/chromeos/ash_config.h"
#include "chrome/browser/chromeos/events/event_rewriter_controller.h"
#include "chrome/browser/ui/aura/accessibility/automation_manager_aura.h" #include "chrome/browser/ui/aura/accessibility/automation_manager_aura.h"
#include "chrome/test/base/testing_profile.h" #include "chrome/test/base/testing_profile.h"
#include "ui/aura/test/aura_test_base.h" #include "ui/aura/test/aura_test_base.h"
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include <utility> #include <utility>
#include <vector> #include <vector>
#include "ash/event_rewriter_controller.h"
#include "ash/shell.h" #include "ash/shell.h"
#include "ash/sticky_keys/sticky_keys_controller.h" #include "ash/sticky_keys/sticky_keys_controller.h"
#include "base/bind.h" #include "base/bind.h"
...@@ -53,7 +54,6 @@ ...@@ -53,7 +54,6 @@
#include "chrome/browser/chromeos/dbus/screen_lock_service_provider.h" #include "chrome/browser/chromeos/dbus/screen_lock_service_provider.h"
#include "chrome/browser/chromeos/dbus/vm_applications_service_provider_delegate.h" #include "chrome/browser/chromeos/dbus/vm_applications_service_provider_delegate.h"
#include "chrome/browser/chromeos/display/quirks_manager_delegate_impl.h" #include "chrome/browser/chromeos/display/quirks_manager_delegate_impl.h"
#include "chrome/browser/chromeos/events/event_rewriter_controller.h"
#include "chrome/browser/chromeos/events/event_rewriter_delegate_impl.h" #include "chrome/browser/chromeos/events/event_rewriter_delegate_impl.h"
#include "chrome/browser/chromeos/events/keyboard_driven_event_rewriter.h" #include "chrome/browser/chromeos/events/keyboard_driven_event_rewriter.h"
#include "chrome/browser/chromeos/extensions/default_app_order.h" #include "chrome/browser/chromeos/extensions/default_app_order.h"
...@@ -1051,17 +1051,18 @@ void ChromeBrowserMainPartsChromeos::PreBrowserStart() { ...@@ -1051,17 +1051,18 @@ void ChromeBrowserMainPartsChromeos::PreBrowserStart() {
void ChromeBrowserMainPartsChromeos::PostBrowserStart() { void ChromeBrowserMainPartsChromeos::PostBrowserStart() {
if (chromeos::GetAshConfig() != ash::Config::MASH) { if (chromeos::GetAshConfig() != ash::Config::MASH) {
// TODO(mash): Support EventRewriterController; see crbug.com/647781 // TODO(mash): Support EventRewriterController; see crbug.com/647781
keyboard_event_rewriters_.reset(new EventRewriterController()); ash::EventRewriterController* event_rewriter_controller =
keyboard_event_rewriters_->AddEventRewriter( ash::Shell::Get()->event_rewriter_controller();
event_rewriter_controller->AddEventRewriter(
std::unique_ptr<ui::EventRewriter>(new KeyboardDrivenEventRewriter())); std::unique_ptr<ui::EventRewriter>(new KeyboardDrivenEventRewriter()));
keyboard_event_rewriters_->AddEventRewriter( event_rewriter_controller->AddEventRewriter(
std::unique_ptr<ui::EventRewriter>(new SpokenFeedbackEventRewriter())); std::unique_ptr<ui::EventRewriter>(new SpokenFeedbackEventRewriter()));
event_rewriter_delegate_ = std::make_unique<EventRewriterDelegateImpl>(); event_rewriter_delegate_ = std::make_unique<EventRewriterDelegateImpl>();
keyboard_event_rewriters_->AddEventRewriter( event_rewriter_controller->AddEventRewriter(
std::make_unique<ui::EventRewriterChromeOS>( std::make_unique<ui::EventRewriterChromeOS>(
event_rewriter_delegate_.get(), event_rewriter_delegate_.get(),
ash::Shell::Get()->sticky_keys_controller())); ash::Shell::Get()->sticky_keys_controller()));
keyboard_event_rewriters_->Init(); event_rewriter_controller->Init();
} }
// In classic ash must occur after ash::ShellPort is initialized. Triggers a // In classic ash must occur after ash::ShellPort is initialized. Triggers a
...@@ -1132,7 +1133,6 @@ void ChromeBrowserMainPartsChromeos::PostMainMessageLoopRun() { ...@@ -1132,7 +1133,6 @@ void ChromeBrowserMainPartsChromeos::PostMainMessageLoopRun() {
wake_on_wifi_manager_.reset(); wake_on_wifi_manager_.reset();
network_throttling_observer_.reset(); network_throttling_observer_.reset();
ScreenLocker::ShutDownClass(); ScreenLocker::ShutDownClass();
keyboard_event_rewriters_.reset();
low_disk_notification_.reset(); low_disk_notification_.reset();
user_activity_controller_.reset(); user_activity_controller_.reset();
adaptive_screen_brightness_manager_.reset(); adaptive_screen_brightness_manager_.reset();
......
...@@ -29,7 +29,6 @@ class VoiceInteractionControllerClient; ...@@ -29,7 +29,6 @@ class VoiceInteractionControllerClient;
namespace chromeos { namespace chromeos {
class ArcKioskAppManager; class ArcKioskAppManager;
class EventRewriterController;
class EventRewriterDelegateImpl; class EventRewriterDelegateImpl;
class IdleActionWarningObserver; class IdleActionWarningObserver;
class LowDiskNotification; class LowDiskNotification;
...@@ -108,7 +107,6 @@ class ChromeBrowserMainPartsChromeos : public ChromeBrowserMainPartsLinux { ...@@ -108,7 +107,6 @@ class ChromeBrowserMainPartsChromeos : public ChromeBrowserMainPartsLinux {
std::unique_ptr<ShutdownPolicyForwarder> shutdown_policy_forwarder_; std::unique_ptr<ShutdownPolicyForwarder> shutdown_policy_forwarder_;
std::unique_ptr<EventRewriterDelegateImpl> event_rewriter_delegate_; std::unique_ptr<EventRewriterDelegateImpl> event_rewriter_delegate_;
std::unique_ptr<EventRewriterController> keyboard_event_rewriters_;
scoped_refptr<chromeos::ExternalMetrics> external_metrics_; scoped_refptr<chromeos::ExternalMetrics> external_metrics_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment