| OLD | NEW |
| (Empty) | |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #include "chrome/browser/chromeos/login/wizard_accessibility_helper.h" |
| 6 |
| 7 #include "base/logging.h" |
| 8 #include "chrome/browser/browser_process.h" |
| 9 #include "chrome/browser/extensions/extension_accessibility_api.h" |
| 10 #include "chrome/browser/pref_service.h" |
| 11 #include "chrome/browser/profile.h" |
| 12 #include "chrome/browser/profile_manager.h" |
| 13 #include "chrome/common/pref_names.h" |
| 14 #include "chrome/common/notification_registrar.h" |
| 15 #include "chrome/common/notification_service.h" |
| 16 |
| 17 // static |
| 18 WizardAccessibilityHelper* WizardAccessibilityHelper::GetInstance() { |
| 19 return Singleton<WizardAccessibilityHelper>::get(); |
| 20 } |
| 21 |
| 22 WizardAccessibilityHelper::WizardAccessibilityHelper() { |
| 23 accessibility_handler_.reset(new WizardAccessibilityHandler()); |
| 24 registrar_.Add(accessibility_handler_.get(), |
| 25 NotificationType::ACCESSIBILITY_CONTROL_FOCUSED, |
| 26 NotificationService::AllSources()); |
| 27 registrar_.Add(accessibility_handler_.get(), |
| 28 NotificationType::ACCESSIBILITY_CONTROL_ACTION, |
| 29 NotificationService::AllSources()); |
| 30 registrar_.Add(accessibility_handler_.get(), |
| 31 NotificationType::ACCESSIBILITY_TEXT_CHANGED, |
| 32 NotificationService::AllSources()); |
| 33 registrar_.Add(accessibility_handler_.get(), |
| 34 NotificationType::ACCESSIBILITY_MENU_OPENED, |
| 35 NotificationService::AllSources()); |
| 36 registrar_.Add(accessibility_handler_.get(), |
| 37 NotificationType::ACCESSIBILITY_MENU_CLOSED, |
| 38 NotificationService::AllSources()); |
| 39 } |
| 40 |
| 41 void WizardAccessibilityHelper::MaybeEnableAccessibility( |
| 42 views::View* view_tree, Profile* profile) { |
| 43 if (g_browser_process != NULL && |
| 44 g_browser_process->local_state()->GetBoolean( |
| 45 prefs::kAccessibilityEnabled)) { |
| 46 EnableAccessibility(view_tree, profile); |
| 47 } |
| 48 } |
| 49 |
| 50 void WizardAccessibilityHelper::EnableAccessibility( |
| 51 views::View* view_tree, Profile* profile) { |
| 52 LOG(INFO) << "Enabling accessibility."; |
| 53 if (g_browser_process != NULL) { |
| 54 PrefService* prefService = g_browser_process->local_state(); |
| 55 if (!prefService->GetBoolean(prefs::kAccessibilityEnabled)) { |
| 56 prefService->SetBoolean(prefs::kAccessibilityEnabled, true); |
| 57 prefService->ScheduleSavePersistentPrefs(); |
| 58 } |
| 59 } |
| 60 ExtensionAccessibilityEventRouter::GetInstance()-> |
| 61 SetAccessibilityEnabled(true); |
| 62 accessible_view_helper_.reset(new AccessibleViewHelper( |
| 63 view_tree, profile)); |
| 64 } |
| OLD | NEW |