Commit 9982e8f3 authored by Anastasia Helfinstein's avatar Anastasia Helfinstein Committed by Commit Bot

[Switch Access] Prevent repeated crash after enable on login screen

A bug was recently found where enabling Switch Access on the login
screen leads to a series of crashes. This is a short-term fix which
prevents the crash by removing the option to enable Switch Access when
the login state is NOT_LOGGED_IN.

R=katie@chromium.org
TBR=skuhne@chromium.org

AX-Relnotes: n/a.
Bug: 1108808
Change-Id: Ie718cda7aaa8c544b0a0cc49615cd1b802f1d353
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2316437
Commit-Queue: Anastasia Helfinstein <anastasi@google.com>
Reviewed-by: default avatarKatie Dektar <katie@chromium.org>
Cr-Commit-Position: refs/heads/master@{#791355}
parent e7f4f005
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include "ash/high_contrast/high_contrast_controller.h" #include "ash/high_contrast/high_contrast_controller.h"
#include "ash/keyboard/keyboard_controller_impl.h" #include "ash/keyboard/keyboard_controller_impl.h"
#include "ash/keyboard/ui/keyboard_util.h" #include "ash/keyboard/ui/keyboard_util.h"
#include "ash/login_status.h"
#include "ash/policy/policy_recommendation_restorer.h" #include "ash/policy/policy_recommendation_restorer.h"
#include "ash/public/cpp/accessibility_controller_client.h" #include "ash/public/cpp/accessibility_controller_client.h"
#include "ash/public/cpp/ash_constants.h" #include "ash/public/cpp/ash_constants.h"
...@@ -1121,6 +1122,13 @@ bool AccessibilityControllerImpl::IsSwitchAccessRunning() const { ...@@ -1121,6 +1122,13 @@ bool AccessibilityControllerImpl::IsSwitchAccessRunning() const {
} }
bool AccessibilityControllerImpl::IsSwitchAccessSettingVisibleInTray() { bool AccessibilityControllerImpl::IsSwitchAccessSettingVisibleInTray() {
// Switch Access cannot be enabled on the sign-in page until crbug/1108808 has
// been fully resolved.
if (!switch_access().enabled() &&
Shell::Get()->session_controller()->login_status() ==
ash::LoginStatus::NOT_LOGGED_IN) {
return false;
}
return switch_access().IsVisibleInTray(); return switch_access().IsVisibleInTray();
return IsEnterpriseIconVisibleInTrayMenu( return IsEnterpriseIconVisibleInTrayMenu(
prefs::kAccessibilitySwitchAccessEnabled); prefs::kAccessibilitySwitchAccessEnabled);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment