summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorzork@chromium.org <zork@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-15 11:08:46 +0000
committerzork@chromium.org <zork@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-15 11:08:46 +0000
commit66501afa72934631a32cd0cdd0a5ab5bb43b4d7a (patch)
treecb3a4408be616e3cfccebdabb85f09c5e807564b /chrome
parent10af60b65cf699cfcf0937eb2b7aeeb2a00a28c0 (diff)
downloadchromium_src-66501afa72934631a32cd0cdd0a5ab5bb43b4d7a.zip
chromium_src-66501afa72934631a32cd0cdd0a5ab5bb43b4d7a.tar.gz
chromium_src-66501afa72934631a32cd0cdd0a5ab5bb43b4d7a.tar.bz2
Speak a message when accessibility is on and the network state changes
R=stevenjb@chromium.org BUG=chromium-os:21760 TEST=Change the network state with a11y turned on Review URL: http://codereview.chromium.org/8503041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110069 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/chromeos/accessibility_util.cc9
-rw-r--r--chrome/browser/chromeos/accessibility_util.h3
-rw-r--r--chrome/browser/chromeos/status/network_menu_icon.cc38
3 files changed, 50 insertions, 0 deletions
diff --git a/chrome/browser/chromeos/accessibility_util.cc b/chrome/browser/chromeos/accessibility_util.cc
index 5ac954a..7670909 100644
--- a/chrome/browser/chromeos/accessibility_util.cc
+++ b/chrome/browser/chromeos/accessibility_util.cc
@@ -158,6 +158,15 @@ void Speak(const char* utterance) {
params);
}
+bool IsAccessibilityEnabled() {
+ if (!g_browser_process) {
+ return false;
+ }
+ PrefService* prefs = g_browser_process->local_state();
+ bool accessibility_enabled = prefs &&
+ prefs->GetBoolean(prefs::kAccessibilityEnabled);
+ return accessibility_enabled;
+}
} // namespace accessibility
} // namespace chromeos
diff --git a/chrome/browser/chromeos/accessibility_util.h b/chrome/browser/chromeos/accessibility_util.h
index b96635e..d9e3df9 100644
--- a/chrome/browser/chromeos/accessibility_util.h
+++ b/chrome/browser/chromeos/accessibility_util.h
@@ -24,6 +24,9 @@ void ToggleAccessibility(WebUI* login_web_ui);
// Speaks the specified string.
void Speak(const char* speak_str);
+// Returns true if Accessibility is enabled, or false if not.
+bool IsAccessibilityEnabled();
+
} // namespace accessibility
} // namespace chromeos
diff --git a/chrome/browser/chromeos/status/network_menu_icon.cc b/chrome/browser/chromeos/status/network_menu_icon.cc
index d6f1da0..207a1e5 100644
--- a/chrome/browser/chromeos/status/network_menu_icon.cc
+++ b/chrome/browser/chromeos/status/network_menu_icon.cc
@@ -8,6 +8,7 @@
#include <cmath>
#include "base/utf_string_conversions.h"
+#include "chrome/browser/chromeos/accessibility_util.h"
#include "chrome/browser/chromeos/cros/cros_library.h"
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
@@ -207,6 +208,14 @@ class NetworkIcon {
}
}
bool dirty = bitmap_.empty();
+ bool speak = false;
+ if (accessibility::IsAccessibilityEnabled()) {
+ if ((Network::IsConnectedState(state_) && !network->connected()) ||
+ (Network::IsConnectingState(state_) && !network->connecting()) ||
+ (Network::IsDisconnectedState(state_) && !network->disconnected())) {
+ speak = true;
+ }
+ }
if (state_ != network->state()) {
state_ = network->state();
dirty = true;
@@ -247,6 +256,35 @@ class NetworkIcon {
UpdateIcon(network);
GenerateBitmap();
}
+ if (speak) {
+ std::string connection_string;
+ if (Network::IsConnectedState(state_)) {
+ switch (network->type()) {
+ case TYPE_ETHERNET:
+ connection_string = l10n_util::GetStringFUTF8(
+ IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP,
+ l10n_util::GetStringUTF16(
+ IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET));
+ break;
+ default:
+ connection_string = l10n_util::GetStringFUTF8(
+ IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP,
+ UTF8ToUTF16(network->name()));
+ break;
+ }
+ } else if (Network::IsConnectingState(state_)) {
+ const Network* connecting_network = cros->connecting_network();
+ if (connecting_network && connecting_network->type() != TYPE_ETHERNET) {
+ connection_string = l10n_util::GetStringFUTF8(
+ IDS_STATUSBAR_NETWORK_CONNECTING_TOOLTIP,
+ UTF8ToUTF16(connecting_network->name()));
+ }
+ } else if (Network::IsDisconnectedState(state_)) {
+ connection_string = l10n_util::GetStringUTF8(
+ IDS_STATUSBAR_NETWORK_NO_NETWORK_TOOLTIP);
+ }
+ accessibility::Speak(connection_string.c_str());
+ }
}
// Sets up the base icon image.