From 5390152f8594cf233f3c8ef2b850e49e0abfbef1 Mon Sep 17 00:00:00 2001 From: "xiyuan@chromium.org" Date: Fri, 8 Nov 2013 01:33:49 +0000 Subject: cros: Fix KioskTest::WaitForAppLaunchSuccess crash. BUG=316051 Review URL: https://codereview.chromium.org/60973003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233755 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/chromeos/login/kiosk_browsertest.cc | 25 ++++++++++++---------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/chrome/browser/chromeos/login/kiosk_browsertest.cc b/chrome/browser/chromeos/login/kiosk_browsertest.cc index 0e903d2..3c40630 100644 --- a/chrome/browser/chromeos/login/kiosk_browsertest.cc +++ b/chrome/browser/chromeos/login/kiosk_browsertest.cc @@ -380,20 +380,23 @@ class KioskTest : public InProcessBrowserTest { EXPECT_TRUE(app); // App should appear with its window. - apps::ShellWindow* window = ShellWindowObserver( - apps::ShellWindowRegistry::Get(app_profile), - kTestKioskApp).Wait(); + apps::ShellWindowRegistry* shell_window_registry = + apps::ShellWindowRegistry::Get(app_profile); + apps::ShellWindow* window = + ShellWindowObserver(shell_window_registry, kTestKioskApp).Wait(); EXPECT_TRUE(window); - // Login screen should be fading out. - EXPECT_EQ(0.0f, - LoginDisplayHostImpl::default_host() - ->GetNativeWindow() - ->layer() - ->GetTargetOpacity()); + // Login screen should be gone or fading out. + chromeos::LoginDisplayHost* login_display_host = + chromeos::LoginDisplayHostImpl::default_host(); + EXPECT_TRUE( + login_display_host == NULL || + login_display_host->GetNativeWindow()->layer()->GetTargetOpacity() == + 0.0f); - // Wait until the app terminates. - content::RunMessageLoop(); + // Wait until the app terminates if it is still running. + if (!shell_window_registry->GetShellWindowsForApp(kTestKioskApp).empty()) + content::RunMessageLoop(); // Check that the app had been informed that it is running in a kiosk // session. -- cgit v1.1