diff options
author | xdai <xdai@chromium.org> | 2016-03-11 13:03:24 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-11 21:05:47 +0000 |
commit | 8692d6358f0fab7c1b85054fc6edc37371d9b1aa (patch) | |
tree | 0986846030df33832af76188447bfda0cd6187f5 /ash | |
parent | 018c484fd85b3a64ef1037191ca513b389fa21ff (diff) | |
download | chromium_src-8692d6358f0fab7c1b85054fc6edc37371d9b1aa.zip chromium_src-8692d6358f0fab7c1b85054fc6edc37371d9b1aa.tar.gz chromium_src-8692d6358f0fab7c1b85054fc6edc37371d9b1aa.tar.bz2 |
A window should not get activated or get input focus if it's behind the lock screen.
BUG=515594
Review URL: https://codereview.chromium.org/1753473003
Cr-Commit-Position: refs/heads/master@{#380724}
Diffstat (limited to 'ash')
-rw-r--r-- | ash/wm/ash_focus_rules_unittest.cc | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/ash/wm/ash_focus_rules_unittest.cc b/ash/wm/ash_focus_rules_unittest.cc index fe06fa4..542f10f 100644 --- a/ash/wm/ash_focus_rules_unittest.cc +++ b/ash/wm/ash_focus_rules_unittest.cc @@ -14,6 +14,7 @@ #include "ash/wm/window_util.h" #include "ui/aura/client/aura_constants.h" #include "ui/aura/client/window_tree_client.h" +#include "ui/views/test/widget_test.h" #include "ui/views/view.h" #include "ui/views/widget/widget.h" @@ -186,5 +187,23 @@ TEST_F(LockScreenAshFocusRulesTest, RegainFocusAfterUnlock) { EXPECT_TRUE(normal_window->HasFocus()); } +// Tests that if a widget has a view which should be initially focused, this +// view doesn't get focused if the widget shows behind the lock screen. +TEST_F(LockScreenAshFocusRulesTest, PreventFocusChangeWithLockScreenPresent) { + BlockUserSession(BLOCKED_BY_LOCK_SCREEN); + EXPECT_TRUE(shell()->session_state_delegate()->IsScreenLocked()); + + views::test::TestInitialFocusWidgetDelegate delegate(CurrentContext()); + EXPECT_FALSE(delegate.view()->HasFocus()); + delegate.GetWidget()->Show(); + EXPECT_FALSE(delegate.GetWidget()->IsActive()); + EXPECT_FALSE(delegate.view()->HasFocus()); + + UnblockUserSession(); + EXPECT_FALSE(shell()->session_state_delegate()->IsScreenLocked()); + EXPECT_TRUE(delegate.GetWidget()->IsActive()); + EXPECT_TRUE(delegate.view()->HasFocus()); +} + } // namespace test } // namespace ash |