Commit 3c54f1c9 authored by Ella Ge's avatar Ella Ge Committed by Chromium LUCI CQ

Convert 2 CancelableClosure to CancelableOnceCallback

update_state_closure_ and connecting_closure_

Bug: 1152282
Change-Id: Ieef31517ef556e02b016fdbaaaf4436e87d77bba
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2600379Reviewed-by: default avatarRoman Sorokin [CET] <rsorokin@chromium.org>
Commit-Queue: Ella Ge <eirage@chromium.org>
Cr-Commit-Position: refs/heads/master@{#839114}
parent 973f3967
...@@ -534,21 +534,19 @@ void SigninScreenHandler::UpdateStateInternal(NetworkError::ErrorReason reason, ...@@ -534,21 +534,19 @@ void SigninScreenHandler::UpdateStateInternal(NetworkError::ErrorReason reason,
// delayed. // delayed.
if ((state == NetworkStateInformer::OFFLINE || if ((state == NetworkStateInformer::OFFLINE ||
network_state_ignored_until_proxy_auth_) && network_state_ignored_until_proxy_auth_) &&
!force_update && !update_state_closure_.IsCancelled()) { !force_update && !update_state_callback_.IsCancelled()) {
return; return;
} }
update_state_closure_.Cancel(); update_state_callback_.Cancel();
if ((state == NetworkStateInformer::OFFLINE && !force_update) || if ((state == NetworkStateInformer::OFFLINE && !force_update) ||
network_state_ignored_until_proxy_auth_) { network_state_ignored_until_proxy_auth_) {
update_state_closure_.Reset( update_state_callback_.Reset(
base::Bind(&SigninScreenHandler::UpdateStateInternal, base::BindOnce(&SigninScreenHandler::UpdateStateInternal,
weak_factory_.GetWeakPtr(), weak_factory_.GetWeakPtr(), reason, true));
reason,
true));
base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
FROM_HERE, update_state_closure_.callback(), FROM_HERE, update_state_callback_.callback(),
is_offline_timeout_for_test_set_ ? offline_timeout_for_test_ is_offline_timeout_for_test_set_ ? offline_timeout_for_test_
: kOfflineTimeout); : kOfflineTimeout);
return; return;
...@@ -556,19 +554,17 @@ void SigninScreenHandler::UpdateStateInternal(NetworkError::ErrorReason reason, ...@@ -556,19 +554,17 @@ void SigninScreenHandler::UpdateStateInternal(NetworkError::ErrorReason reason,
// Don't show or hide error screen if we're in connecting state. // Don't show or hide error screen if we're in connecting state.
if (state == NetworkStateInformer::CONNECTING && !force_update) { if (state == NetworkStateInformer::CONNECTING && !force_update) {
if (connecting_closure_.IsCancelled()) { if (connecting_callback_.IsCancelled()) {
// First notification about CONNECTING state. // First notification about CONNECTING state.
connecting_closure_.Reset( connecting_callback_.Reset(
base::Bind(&SigninScreenHandler::UpdateStateInternal, base::BindOnce(&SigninScreenHandler::UpdateStateInternal,
weak_factory_.GetWeakPtr(), weak_factory_.GetWeakPtr(), reason, true));
reason,
true));
base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
FROM_HERE, connecting_closure_.callback(), kConnectingTimeout); FROM_HERE, connecting_callback_.callback(), kConnectingTimeout);
} }
return; return;
} }
connecting_closure_.Cancel(); connecting_callback_.Cancel();
const bool is_online = IsOnline(state, reason); const bool is_online = IsOnline(state, reason);
const bool is_behind_captive_portal = IsBehindCaptivePortal(state, reason); const bool is_behind_captive_portal = IsBehindCaptivePortal(state, reason);
...@@ -873,14 +869,14 @@ void SigninScreenHandler::Observe(int type, ...@@ -873,14 +869,14 @@ void SigninScreenHandler::Observe(int type,
if (IsGaiaHiddenByError()) { if (IsGaiaHiddenByError()) {
// Start listening to network state notifications immediately, hoping // Start listening to network state notifications immediately, hoping
// that the network will switch to ONLINE soon. // that the network will switch to ONLINE soon.
update_state_closure_.Cancel(); update_state_callback_.Cancel();
ReenableNetworkStateUpdatesAfterProxyAuth(); ReenableNetworkStateUpdatesAfterProxyAuth();
} else { } else {
// Gaia is not hidden behind an error yet. Discard last cached network // Gaia is not hidden behind an error yet. Discard last cached network
// state notification and wait for `kProxyAuthTimeout` before // state notification and wait for `kProxyAuthTimeout` before
// considering network update notifications again (hoping the network // considering network update notifications again (hoping the network
// will become ONLINE by then). // will become ONLINE by then).
update_state_closure_.Cancel(); update_state_callback_.Cancel();
base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
FROM_HERE, FROM_HERE,
base::BindOnce( base::BindOnce(
...@@ -891,7 +887,7 @@ void SigninScreenHandler::Observe(int type, ...@@ -891,7 +887,7 @@ void SigninScreenHandler::Observe(int type,
break; break;
} }
case chrome::NOTIFICATION_AUTH_CANCELLED: { case chrome::NOTIFICATION_AUTH_CANCELLED: {
update_state_closure_.Cancel(); update_state_callback_.Cancel();
ReenableNetworkStateUpdatesAfterProxyAuth(); ReenableNetworkStateUpdatesAfterProxyAuth();
break; break;
} }
......
...@@ -358,8 +358,8 @@ class SigninScreenHandler ...@@ -358,8 +358,8 @@ class SigninScreenHandler
NetworkStateInformer::State last_network_state_ = NetworkStateInformer::State last_network_state_ =
NetworkStateInformer::UNKNOWN; NetworkStateInformer::UNKNOWN;
base::CancelableClosure update_state_closure_; base::CancelableOnceCallback<void()> update_state_callback_;
base::CancelableClosure connecting_closure_; base::CancelableOnceCallback<void()> connecting_callback_;
content::NotificationRegistrar registrar_; content::NotificationRegistrar registrar_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment