summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbshe@chromium.org <bshe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-29 22:37:45 +0000
committerbshe@chromium.org <bshe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-29 22:37:45 +0000
commit8112ead8d4f1473cc693db5eba0a7ffb9942c928 (patch)
tree01fb761d43cd484d494a138cfde2198cbd8c9e36
parent13c120cbe19477d1c53428a3d6579ffac70fa6b5 (diff)
downloadchromium_src-8112ead8d4f1473cc693db5eba0a7ffb9942c928.zip
chromium_src-8112ead8d4f1473cc693db5eba0a7ffb9942c928.tar.gz
chromium_src-8112ead8d4f1473cc693db5eba0a7ffb9942c928.tar.bz2
Noop gear button in VK menu popup if not logged in
BUG=395621 Review URL: https://codereview.chromium.org/411463007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@286320 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/extensions/api/input/input.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/chrome/browser/extensions/api/input/input.cc b/chrome/browser/extensions/api/input/input.cc
index 2e2772b..a3939ad 100644
--- a/chrome/browser/extensions/api/input/input.cc
+++ b/chrome/browser/extensions/api/input/input.cc
@@ -18,6 +18,12 @@
#include "ui/keyboard/keyboard_controller.h"
#include "ui/keyboard/keyboard_switches.h"
+#if defined(OS_CHROMEOS)
+#include "chrome/browser/chromeos/login/lock/screen_locker.h"
+#include "chrome/browser/chromeos/login/ui/user_adding_screen.h"
+#include "chrome/browser/chromeos/login/users/user_manager.h"
+#endif // OS_CHROMEOS
+
#if defined(USE_ASH)
#include "ash/root_window_controller.h"
#include "ash/shell.h"
@@ -168,6 +174,16 @@ bool VirtualKeyboardPrivateGetKeyboardConfigFunction::RunSync() {
bool VirtualKeyboardPrivateOpenSettingsFunction::RunSync() {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
#if defined(USE_ASH)
+#if defined(OS_CHROMEOS)
+ // Do not try to open language options page if user is not logged in or
+ // locked.
+ if (!chromeos::UserManager::Get()->IsUserLoggedIn() ||
+ chromeos::UserAddingScreen::Get()->IsRunning() ||
+ (chromeos::ScreenLocker::default_screen_locker() &&
+ chromeos::ScreenLocker::default_screen_locker()->locked()))
+ return true;
+#endif // OS_CHROMEOS
+
content::RecordAction(base::UserMetricsAction("OpenLanguageOptionsDialog"));
chrome::ShowSettingsSubPageForProfile(
ProfileManager::GetActiveUserProfile(), chrome::kLanguageOptionsSubPage);