| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/accessibility/accessibility_manager.h" | 5 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 21 matching lines...) Expand all Loading... |
| 32 #include "base/strings/string_util.h" | 32 #include "base/strings/string_util.h" |
| 33 #include "base/time/time.h" | 33 #include "base/time/time.h" |
| 34 #include "base/values.h" | 34 #include "base/values.h" |
| 35 #include "chrome/browser/accessibility/accessibility_extension_api.h" | 35 #include "chrome/browser/accessibility/accessibility_extension_api.h" |
| 36 #include "chrome/browser/browser_process.h" | 36 #include "chrome/browser/browser_process.h" |
| 37 #include "chrome/browser/chrome_notification_types.h" | 37 #include "chrome/browser/chrome_notification_types.h" |
| 38 #include "chrome/browser/chromeos/accessibility/accessibility_extension_loader.h
" | 38 #include "chrome/browser/chromeos/accessibility/accessibility_extension_loader.h
" |
| 39 #include "chrome/browser/chromeos/accessibility/accessibility_highlight_manager.
h" | 39 #include "chrome/browser/chromeos/accessibility/accessibility_highlight_manager.
h" |
| 40 #include "chrome/browser/chromeos/accessibility/magnification_manager.h" | 40 #include "chrome/browser/chromeos/accessibility/magnification_manager.h" |
| 41 #include "chrome/browser/chromeos/accessibility/select_to_speak_event_handler.h" | 41 #include "chrome/browser/chromeos/accessibility/select_to_speak_event_handler.h" |
| 42 #include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h" |
| 43 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" |
| 42 #include "chrome/browser/chromeos/profiles/profile_helper.h" | 44 #include "chrome/browser/chromeos/profiles/profile_helper.h" |
| 43 #include "chrome/browser/chromeos/ui/accessibility_focus_ring_controller.h" | 45 #include "chrome/browser/chromeos/ui/accessibility_focus_ring_controller.h" |
| 44 #include "chrome/browser/extensions/api/braille_display_private/stub_braille_con
troller.h" | 46 #include "chrome/browser/extensions/api/braille_display_private/stub_braille_con
troller.h" |
| 45 #include "chrome/browser/extensions/extension_service.h" | 47 #include "chrome/browser/extensions/extension_service.h" |
| 46 #include "chrome/browser/prefs/incognito_mode_prefs.h" | 48 #include "chrome/browser/prefs/incognito_mode_prefs.h" |
| 47 #include "chrome/browser/profiles/profile.h" | 49 #include "chrome/browser/profiles/profile.h" |
| 48 #include "chrome/browser/profiles/profile_manager.h" | 50 #include "chrome/browser/profiles/profile_manager.h" |
| 49 #include "chrome/browser/ui/ash/ash_util.h" | 51 #include "chrome/browser/ui/ash/ash_util.h" |
| 50 #include "chrome/common/chrome_paths.h" | 52 #include "chrome/common/chrome_paths.h" |
| 51 #include "chrome/common/extensions/api/accessibility_private.h" | 53 #include "chrome/common/extensions/api/accessibility_private.h" |
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 289 bundle.GetRawDataResource(IDR_SOUND_SPOKEN_FEEDBACK_ENABLED_WAV)); | 291 bundle.GetRawDataResource(IDR_SOUND_SPOKEN_FEEDBACK_ENABLED_WAV)); |
| 290 manager->Initialize( | 292 manager->Initialize( |
| 291 SOUND_SPOKEN_FEEDBACK_DISABLED, | 293 SOUND_SPOKEN_FEEDBACK_DISABLED, |
| 292 bundle.GetRawDataResource(IDR_SOUND_SPOKEN_FEEDBACK_DISABLED_WAV)); | 294 bundle.GetRawDataResource(IDR_SOUND_SPOKEN_FEEDBACK_DISABLED_WAV)); |
| 293 manager->Initialize(SOUND_PASSTHROUGH, | 295 manager->Initialize(SOUND_PASSTHROUGH, |
| 294 bundle.GetRawDataResource(IDR_SOUND_PASSTHROUGH_WAV)); | 296 bundle.GetRawDataResource(IDR_SOUND_PASSTHROUGH_WAV)); |
| 295 manager->Initialize(SOUND_EXIT_SCREEN, | 297 manager->Initialize(SOUND_EXIT_SCREEN, |
| 296 bundle.GetRawDataResource(IDR_SOUND_EXIT_SCREEN_WAV)); | 298 bundle.GetRawDataResource(IDR_SOUND_EXIT_SCREEN_WAV)); |
| 297 manager->Initialize(SOUND_ENTER_SCREEN, | 299 manager->Initialize(SOUND_ENTER_SCREEN, |
| 298 bundle.GetRawDataResource(IDR_SOUND_ENTER_SCREEN_WAV)); | 300 bundle.GetRawDataResource(IDR_SOUND_ENTER_SCREEN_WAV)); |
| 301 manager->Initialize(SOUND_SPOKEN_FEEDBACK_TOGGLE_COUNTDOWN_HIGH, |
| 302 bundle.GetRawDataResource( |
| 303 IDR_SOUND_SPOKEN_FEEDBACK_TOGGLE_COUNTDOWN_HIGH_WAV)); |
| 304 manager->Initialize(SOUND_SPOKEN_FEEDBACK_TOGGLE_COUNTDOWN_LOW, |
| 305 bundle.GetRawDataResource( |
| 306 IDR_SOUND_SPOKEN_FEEDBACK_TOGGLE_COUNTDOWN_LOW_WAV)); |
| 299 | 307 |
| 300 base::FilePath resources_path; | 308 base::FilePath resources_path; |
| 301 if (!PathService::Get(chrome::DIR_RESOURCES, &resources_path)) | 309 if (!PathService::Get(chrome::DIR_RESOURCES, &resources_path)) |
| 302 NOTREACHED(); | 310 NOTREACHED(); |
| 303 chromevox_loader_ = base::WrapUnique(new AccessibilityExtensionLoader( | 311 chromevox_loader_ = base::WrapUnique(new AccessibilityExtensionLoader( |
| 304 extension_misc::kChromeVoxExtensionId, | 312 extension_misc::kChromeVoxExtensionId, |
| 305 resources_path.Append(extension_misc::kChromeVoxExtensionPath), | 313 resources_path.Append(extension_misc::kChromeVoxExtensionPath), |
| 306 base::Bind(&AccessibilityManager::PostUnloadChromeVox, | 314 base::Bind(&AccessibilityManager::PostUnloadChromeVox, |
| 307 weak_ptr_factory_.GetWeakPtr()))); | 315 weak_ptr_factory_.GetWeakPtr()))); |
| 308 select_to_speak_loader_ = base::WrapUnique(new AccessibilityExtensionLoader( | 316 select_to_speak_loader_ = base::WrapUnique(new AccessibilityExtensionLoader( |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 545 base::CommandLine* cl = base::CommandLine::ForCurrentProcess(); | 553 base::CommandLine* cl = base::CommandLine::ForCurrentProcess(); |
| 546 if (cl->HasSwitch(kAshDisableSystemSounds)) | 554 if (cl->HasSwitch(kAshDisableSystemSounds)) |
| 547 return false; | 555 return false; |
| 548 if (option == PlaySoundOption::SPOKEN_FEEDBACK_ENABLED && | 556 if (option == PlaySoundOption::SPOKEN_FEEDBACK_ENABLED && |
| 549 !IsSpokenFeedbackEnabled() && !cl->HasSwitch(kAshEnableSystemSounds)) { | 557 !IsSpokenFeedbackEnabled() && !cl->HasSwitch(kAshEnableSystemSounds)) { |
| 550 return false; | 558 return false; |
| 551 } | 559 } |
| 552 return media::SoundsManager::Get()->Play(sound_key); | 560 return media::SoundsManager::Get()->Play(sound_key); |
| 553 } | 561 } |
| 554 | 562 |
| 563 bool AccessibilityManager::ShouldToggleSpokenFeedbackViaTouch() { |
| 564 policy::BrowserPolicyConnectorChromeOS* connector = |
| 565 g_browser_process->platform_part()->browser_policy_connector_chromeos(); |
| 566 if (!connector) |
| 567 return false; |
| 568 |
| 569 if (!connector->IsEnterpriseManaged()) |
| 570 return false; |
| 571 |
| 572 const policy::DeviceCloudPolicyManagerChromeOS* const |
| 573 device_cloud_policy_manager = connector->GetDeviceCloudPolicyManager(); |
| 574 if (!device_cloud_policy_manager) |
| 575 return false; |
| 576 |
| 577 if (!device_cloud_policy_manager->IsRemoraRequisition()) |
| 578 return false; |
| 579 |
| 580 KioskAppManager* manager = KioskAppManager::Get(); |
| 581 KioskAppManager::App app; |
| 582 CHECK(manager->GetApp(manager->GetAutoLaunchApp(), &app)); |
| 583 return app.was_auto_launched_with_zero_delay; |
| 584 } |
| 585 |
| 586 bool AccessibilityManager::PlaySpokenFeedbackToggleCountdown(int tick_count) { |
| 587 return media::SoundsManager::Get()->Play( |
| 588 tick_count % 2 ? SOUND_SPOKEN_FEEDBACK_TOGGLE_COUNTDOWN_HIGH |
| 589 : SOUND_SPOKEN_FEEDBACK_TOGGLE_COUNTDOWN_LOW); |
| 590 } |
| 591 |
| 555 void AccessibilityManager::HandleAccessibilityGesture(ui::AXGesture gesture) { | 592 void AccessibilityManager::HandleAccessibilityGesture(ui::AXGesture gesture) { |
| 556 extensions::EventRouter* event_router = | 593 extensions::EventRouter* event_router = |
| 557 extensions::EventRouter::Get(profile()); | 594 extensions::EventRouter::Get(profile()); |
| 558 CHECK(event_router); | 595 CHECK(event_router); |
| 559 | 596 |
| 560 std::unique_ptr<base::ListValue> event_args(new base::ListValue()); | 597 std::unique_ptr<base::ListValue> event_args(new base::ListValue()); |
| 561 event_args->AppendString(ui::ToString(gesture)); | 598 event_args->AppendString(ui::ToString(gesture)); |
| 562 std::unique_ptr<extensions::Event> event(new extensions::Event( | 599 std::unique_ptr<extensions::Event> event(new extensions::Event( |
| 563 extensions::events::ACCESSIBILITY_PRIVATE_ON_ACCESSIBILITY_GESTURE, | 600 extensions::events::ACCESSIBILITY_PRIVATE_ON_ACCESSIBILITY_GESTURE, |
| 564 extensions::api::accessibility_private::OnAccessibilityGesture:: | 601 extensions::api::accessibility_private::OnAccessibilityGesture:: |
| (...skipping 796 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1361 content::BrowserContext* context) { | 1398 content::BrowserContext* context) { |
| 1362 keyboard_listener_extension_id_ = id; | 1399 keyboard_listener_extension_id_ = id; |
| 1363 | 1400 |
| 1364 extensions::ExtensionRegistry* registry = | 1401 extensions::ExtensionRegistry* registry = |
| 1365 extensions::ExtensionRegistry::Get(context); | 1402 extensions::ExtensionRegistry::Get(context); |
| 1366 if (!extension_registry_observer_.IsObserving(registry) && !id.empty()) | 1403 if (!extension_registry_observer_.IsObserving(registry) && !id.empty()) |
| 1367 extension_registry_observer_.Add(registry); | 1404 extension_registry_observer_.Add(registry); |
| 1368 } | 1405 } |
| 1369 | 1406 |
| 1370 } // namespace chromeos | 1407 } // namespace chromeos |
| OLD | NEW |