| Index: chrome/browser/chromeos/login/wizard_controller.cc
|
| diff --git a/chrome/browser/chromeos/login/wizard_controller.cc b/chrome/browser/chromeos/login/wizard_controller.cc
|
| index 66e17b4b6257acb00bab33b2cbebf9d1ca6140cd..b2cdaebf994685692261ca8e8b85f77ded3ba126 100644
|
| --- a/chrome/browser/chromeos/login/wizard_controller.cc
|
| +++ b/chrome/browser/chromeos/login/wizard_controller.cc
|
| @@ -136,11 +136,11 @@ WizardController::WizardController(chromeos::LoginDisplayHost* host,
|
| weak_factory_(this) {
|
| DCHECK(default_controller_ == NULL);
|
| default_controller_ = this;
|
| -
|
| - registrar_.Add(
|
| - this,
|
| - chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK,
|
| - content::NotificationService::AllSources());
|
| + AccessibilityManager* accessibility_manager = AccessibilityManager::Get();
|
| + CHECK(accessibility_manager);
|
| + accessibility_subscription_ = accessibility_manager->RegisterCallback(
|
| + base::Bind(&WizardController::OnAccessibilityStatusChanged,
|
| + base::Unretained(this)));
|
| }
|
|
|
| WizardController::~WizardController() {
|
| @@ -826,18 +826,17 @@ void WizardController::HideErrorScreen(WizardScreen* parent_screen) {
|
| SetCurrentScreen(parent_screen);
|
| }
|
|
|
| -void WizardController::Observe(int type,
|
| - const content::NotificationSource& source,
|
| - const content::NotificationDetails& details) {
|
| - if (type != chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK) {
|
| - NOTREACHED();
|
| +void WizardController::OnAccessibilityStatusChanged(
|
| + const AccessibilityStatusEventDetails& details) {
|
| + enum AccessibilityNotificationType type = details.notification_type;
|
| + if (type == ACCESSIBILITY_MANAGER_SHUTDOWN) {
|
| + accessibility_subscription_.reset();
|
| + return;
|
| + } else if (type != ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK || !details.enabled) {
|
| return;
|
| }
|
| - const AccessibilityStatusEventDetails* a11y_details =
|
| - content::Details<const AccessibilityStatusEventDetails>(details).ptr();
|
| +
|
| CrasAudioHandler* cras = CrasAudioHandler::Get();
|
| - if (!a11y_details->enabled)
|
| - return;
|
| if (cras->IsOutputMuted()) {
|
| cras->SetOutputMute(false);
|
| cras->SetOutputVolumePercent(kMinAudibleOutputVolumePercent);
|
|
|