| Index: chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.cc
|
| diff --git a/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.cc b/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.cc
|
| index 6e3c1a48f0a761e6d21c41b53bf39bb0fb0b2bb0..200b5daa4c72b12c1f84a0bc0c59d78737b064de 100644
|
| --- a/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.cc
|
| +++ b/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.cc
|
| @@ -4,7 +4,10 @@
|
|
|
| #include "chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.h"
|
|
|
| +#include "base/command_line.h"
|
| #include "chrome/browser/chromeos/accessibility/accessibility_manager.h"
|
| +#include "chrome/browser/chromeos/arc/accessibility/ax_tree_source_arc.h"
|
| +#include "chromeos/chromeos_switches.h"
|
| #include "components/arc/arc_bridge_service.h"
|
| #include "components/exo/wm_helper.h"
|
| #include "ui/aura/window.h"
|
| @@ -16,6 +19,10 @@ ArcAccessibilityHelperBridge::ArcAccessibilityHelperBridge(
|
| ArcBridgeService* bridge_service)
|
| : ArcService(bridge_service), binding_(this) {
|
| arc_bridge_service()->accessibility_helper()->AddObserver(this);
|
| +
|
| + if (base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| + chromeos::switches::kEnableChromeVoxArcSupport))
|
| + tree_.reset(new AXTreeSourceArc());
|
| }
|
|
|
| ArcAccessibilityHelperBridge::~ArcAccessibilityHelperBridge() {
|
| @@ -30,34 +37,9 @@ void ArcAccessibilityHelperBridge::OnInstanceReady() {
|
| }
|
|
|
| void ArcAccessibilityHelperBridge::OnAccessibilityEvent(
|
| - mojom::AccessibilityEventType event_type,
|
| - mojom::AccessibilityNodeInfoDataPtr event_source) {
|
| - if (event_type != mojom::AccessibilityEventType::VIEW_FOCUSED ||
|
| - event_source.is_null()) {
|
| - return;
|
| - }
|
| -
|
| - chromeos::AccessibilityManager* accessibility_manager =
|
| - chromeos::AccessibilityManager::Get();
|
| -
|
| - if (!accessibility_manager ||
|
| - !accessibility_manager->IsFocusHighlightEnabled()) {
|
| - return;
|
| - }
|
| -
|
| - exo::WMHelper* wmHelper = exo::WMHelper::GetInstance();
|
| -
|
| - aura::Window* focused_window = wmHelper->GetFocusedWindow();
|
| - if (!focused_window)
|
| - return;
|
| -
|
| - aura::Window* toplevel_window = focused_window->GetToplevelWindow();
|
| -
|
| - gfx::Rect bounds_in_screen = gfx::ScaleToEnclosingRect(
|
| - event_source.get()->boundsInScreen,
|
| - 1.0f / toplevel_window->layer()->device_scale_factor());
|
| -
|
| - accessibility_manager->OnViewFocusedInArc(bounds_in_screen);
|
| + mojom::AccessibilityEventDataPtr event_data) {
|
| + if (tree_)
|
| + tree_->NotifyAccessibilityEvent(event_data.get());
|
| }
|
|
|
| } // namespace arc
|
|
|