Index: ash/mus/bridge/wm_shell_mus.cc |
diff --git a/ash/mus/bridge/wm_shell_mus.cc b/ash/mus/bridge/wm_shell_mus.cc |
index 582e75000da983f3d73a1f2246e655e823cc131f..b9626529759b2ad657d98e7bc909056ddf7d29fb 100644 |
--- a/ash/mus/bridge/wm_shell_mus.cc |
+++ b/ash/mus/bridge/wm_shell_mus.cc |
@@ -22,9 +22,11 @@ |
#include "ash/mus/root_window_controller.h" |
#include "base/memory/ptr_util.h" |
#include "components/user_manager/user_info_impl.h" |
+#include "services/shell/public/cpp/connector.h" |
#include "services/ui/common/util.h" |
#include "services/ui/public/cpp/window.h" |
#include "services/ui/public/cpp/window_tree_client.h" |
+#include "services/ui/public/interfaces/accessibility_manager.mojom.h" |
namespace ash { |
namespace mus { |
@@ -90,11 +92,39 @@ class SessionStateDelegateStub : public SessionStateDelegate { |
DISALLOW_COPY_AND_ASSIGN(SessionStateDelegateStub); |
}; |
+class AccessibilityDelegateMus : public DefaultAccessibilityDelegate { |
+ public: |
+ explicit AccessibilityDelegateMus(shell::Connector* connector) |
+ : connector_(connector) {} |
+ ~AccessibilityDelegateMus() override {} |
+ |
+ private: |
+ ui::mojom::AccessibilityManager* GetAccessibilityManager() { |
+ if (!accessibility_manager_ptr_.is_bound()) |
+ connector_->ConnectToInterface("mojo:ui", &accessibility_manager_ptr_); |
+ return accessibility_manager_ptr_.get(); |
+ } |
+ |
+ // DefaultAccessibilityDelegate: |
+ void ToggleHighContrast() override { |
+ DefaultAccessibilityDelegate::ToggleHighContrast(); |
+ GetAccessibilityManager()->SetHighContrastMode(IsHighContrastEnabled()); |
+ } |
+ |
+ ui::mojom::AccessibilityManagerPtr accessibility_manager_ptr_; |
+ shell::Connector* connector_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(AccessibilityDelegateMus); |
+}; |
+ |
} // namespace |
-WmShellMus::WmShellMus(ShellDelegate* delegate, ::ui::WindowTreeClient* client) |
+WmShellMus::WmShellMus(ShellDelegate* delegate, |
+ ::ui::WindowTreeClient* client, |
+ shell::Connector* connector) |
: WmShell(delegate), |
client_(client), |
+ connector_(connector), |
session_state_delegate_(new SessionStateDelegateStub) { |
client_->AddObserver(this); |
WmShell::Set(this); |
@@ -103,7 +133,7 @@ WmShellMus::WmShellMus(ShellDelegate* delegate, ::ui::WindowTreeClient* client) |
CreateMruWindowTracker(); |
- accessibility_delegate_.reset(new DefaultAccessibilityDelegate); |
+ accessibility_delegate_.reset(new AccessibilityDelegateMus(connector_)); |
SetSystemTrayDelegate(base::WrapUnique(new DefaultSystemTrayDelegate)); |
} |