Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bri dge.h" | 5 #include "chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bri dge.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" | 8 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" |
| 9 #include "chrome/browser/chromeos/arc/accessibility/ax_tree_source_arc.h" | 9 #include "chrome/browser/chromeos/arc/accessibility/ax_tree_source_arc.h" |
| 10 #include "chromeos/chromeos_switches.h" | 10 #include "chromeos/chromeos_switches.h" |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 88 arc_bridge_service()->accessibility_helper(), Init); | 88 arc_bridge_service()->accessibility_helper(), Init); |
| 89 DCHECK(instance); | 89 DCHECK(instance); |
| 90 instance->Init(binding_.CreateInterfacePtrAndBind()); | 90 instance->Init(binding_.CreateInterfacePtrAndBind()); |
| 91 | 91 |
| 92 chromeos::AccessibilityManager* accessibility_manager = | 92 chromeos::AccessibilityManager* accessibility_manager = |
| 93 chromeos::AccessibilityManager::Get(); | 93 chromeos::AccessibilityManager::Get(); |
| 94 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 94 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 95 chromeos::switches::kEnableChromeVoxArcSupport)) { | 95 chromeos::switches::kEnableChromeVoxArcSupport)) { |
| 96 instance->SetFilter(arc::mojom::AccessibilityFilterType::ALL); | 96 instance->SetFilter(arc::mojom::AccessibilityFilterType::ALL); |
| 97 if (!tree_source_) { | 97 if (!tree_source_) { |
| 98 tree_source_.reset(new AXTreeSourceArc()); | 98 tree_source_.reset(new AXTreeSourceArc(tree_id())); |
| 99 focus_stealer_.reset(new FocusStealer(tree_source_->tree_id())); | 99 focus_stealer_.reset(new FocusStealer(tree_source_->tree_id())); |
| 100 exo::WMHelper::GetInstance()->AddActivationObserver(this); | 100 exo::WMHelper::GetInstance()->AddActivationObserver(this); |
| 101 } | 101 } |
| 102 } else if (accessibility_manager && | 102 } else if (accessibility_manager && |
| 103 accessibility_manager->IsFocusHighlightEnabled()) { | 103 accessibility_manager->IsFocusHighlightEnabled()) { |
| 104 instance->SetFilter(arc::mojom::AccessibilityFilterType::FOCUS); | 104 instance->SetFilter(arc::mojom::AccessibilityFilterType::FOCUS); |
| 105 } | 105 } |
| 106 } | 106 } |
| 107 | 107 |
| 108 void ArcAccessibilityHelperBridge::OnAccessibilityEventDeprecated( | 108 void ArcAccessibilityHelperBridge::OnAccessibilityEventDeprecated( |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 152 views::Widget* widget = views::Widget::GetWidgetForNativeView(gained_active); | 152 views::Widget* widget = views::Widget::GetWidgetForNativeView(gained_active); |
| 153 if (widget && widget->GetContentsView()) { | 153 if (widget && widget->GetContentsView()) { |
| 154 views::View* view = widget->GetContentsView(); | 154 views::View* view = widget->GetContentsView(); |
| 155 if (!view->Contains(focus_stealer_.get())) | 155 if (!view->Contains(focus_stealer_.get())) |
| 156 view->AddChildView(focus_stealer_.get()); | 156 view->AddChildView(focus_stealer_.get()); |
| 157 focus_stealer_->RequestFocus(); | 157 focus_stealer_->RequestFocus(); |
| 158 view->NotifyAccessibilityEvent(ui::AX_EVENT_CHILDREN_CHANGED, false); | 158 view->NotifyAccessibilityEvent(ui::AX_EVENT_CHILDREN_CHANGED, false); |
| 159 } | 159 } |
| 160 } | 160 } |
| 161 | 161 |
| 162 void ArcAccessibilityHelperBridge::PerformAction(const ui::AXActionData& data) { | |
| 163 arc::mojom::AccessibilityActionType mojo_action = | |
| 164 arc::mojom::AccessibilityActionType::FOCUS; | |
|
dmazzoni
2017/02/20 04:50:46
Is there a "none"?
Might be clearer to initialize
David Tseng
2017/02/21 19:09:05
Nope, no none. The intention wasn't to map everyth
| |
| 165 switch (data.action) { | |
| 166 case ui::AX_ACTION_DO_DEFAULT: | |
| 167 mojo_action = arc::mojom::AccessibilityActionType::CLICK; | |
| 168 break; | |
| 169 default: | |
| 170 return; | |
| 171 } | |
| 172 | |
| 173 auto* instance = ARC_GET_INSTANCE_FOR_METHOD( | |
| 174 arc_bridge_service()->accessibility_helper(), PerformAction); | |
| 175 instance->PerformAction(data.target_node_id, mojo_action); | |
| 176 } | |
| 177 | |
| 162 } // namespace arc | 178 } // namespace arc |
| OLD | NEW |