diff --git a/chrome/browser/chromeos/login/network_screen.cc b/chrome/browser/chromeos/login/network_screen.cc index 9afeb593e3fb0d1318044462b2c38c330126de9b..381218117652fca97a7192f73c81e3aa8d78277f 100644 --- a/chrome/browser/chromeos/login/network_screen.cc +++ b/chrome/browser/chromeos/login/network_screen.cc @@ -143,7 +143,11 @@ void NetworkScreen::NotifyOnConnection() { void NetworkScreen::OnConnectionTimeout() { StopWaitingForConnection(network_id_); - if (!view()->is_dialog_open() && + NetworkLibrary* network = CrosLibrary::Get()->GetNetworkLibrary(); + bool is_connected = network && network->Connected(); + + if (!is_connected && + !view()->is_dialog_open() && !(help_app_.get() && help_app_->is_open())) { // Show error bubble. ClearErrors(); @@ -166,6 +170,9 @@ void NetworkScreen::UpdateStatus(NetworkLibrary* network) { if (!view() || !network) return; + if (network->Connected()) + ClearErrors(); + if (network->ethernet_connected()) { StopWaitingForConnection( l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET)); diff --git a/chrome/browser/chromeos/login/network_screen_browsertest.cc b/chrome/browser/chromeos/login/network_screen_browsertest.cc index 4802cef8ea64d8ee3448e15d97070c45a5012b3a..aa1e8454528e6ecdee5ef0373434934a539995a9 100644 --- a/chrome/browser/chromeos/login/network_screen_browsertest.cc +++ b/chrome/browser/chromeos/login/network_screen_browsertest.cc @@ -158,7 +158,8 @@ IN_PROC_BROWSER_TEST_F(NetworkScreenTest, Ethernet) { EXPECT_CALL(*mock_network_library_, ethernet_connected()) .WillOnce(Return(true)); EXPECT_CALL(*mock_network_library_, Connected()) - .WillOnce(Return(true)); + .Times(2) + .WillRepeatedly(Return(true)); EXPECT_FALSE(network_view->IsContinueEnabled()); EXPECT_FALSE(network_view->IsConnecting()); network_screen->OnNetworkManagerChanged(mock_network_library_); @@ -199,7 +200,8 @@ IN_PROC_BROWSER_TEST_F(NetworkScreenTest, Wifi) { EXPECT_CALL(*mock_network_library_, ethernet_connected()) .WillOnce(Return(true)); EXPECT_CALL(*mock_network_library_, Connected()) - .WillOnce(Return(true)); + .Times(2) + .WillRepeatedly(Return(true)); EXPECT_FALSE(network_view->IsContinueEnabled()); EXPECT_FALSE(network_view->IsConnecting()); network_screen->OnNetworkManagerChanged(mock_network_library_); @@ -238,7 +240,8 @@ IN_PROC_BROWSER_TEST_F(NetworkScreenTest, Cellular) { EXPECT_CALL(*mock_network_library_, ethernet_connected()) .WillOnce(Return(true)); EXPECT_CALL(*mock_network_library_, Connected()) - .WillOnce(Return(true)); + .Times(2) + .WillRepeatedly(Return(true)); EXPECT_FALSE(network_view->IsContinueEnabled()); EXPECT_FALSE(network_view->IsConnecting()); network_screen->OnNetworkManagerChanged(mock_network_library_); @@ -273,7 +276,8 @@ IN_PROC_BROWSER_TEST_F(NetworkScreenTest, Timeout) { network_screen->OnNetworkManagerChanged(mock_network_library_); EXPECT_CALL(*mock_network_library_, Connected()) - .WillOnce(Return(false)); + .Times(2) + .WillRepeatedly(Return(false)); EXPECT_FALSE(network_view->IsContinueEnabled()); EXPECT_FALSE(network_view->IsConnecting()); network_screen->OnConnectionTimeout();