| Index: chrome/browser/policy/device_token_fetcher.cc
|
| diff --git a/chrome/browser/policy/device_token_fetcher.cc b/chrome/browser/policy/device_token_fetcher.cc
|
| index 2d514b603aae312e454ad2f1e5247e9f01e418c7..3f977c1a25ccfdbc754e1f8d841cda5ccd9bb9fc 100644
|
| --- a/chrome/browser/policy/device_token_fetcher.cc
|
| +++ b/chrome/browser/policy/device_token_fetcher.cc
|
| @@ -65,6 +65,7 @@ DeviceTokenFetcher::ObserverRegistrar::~ObserverRegistrar() {
|
|
|
| void DeviceTokenFetcher::ObserverRegistrar::Init(
|
| DeviceTokenFetcher* token_fetcher) {
|
| + RemoveAll();
|
| token_fetcher_ = token_fetcher;
|
| }
|
|
|
| @@ -192,7 +193,11 @@ void DeviceTokenFetcher::OnError(DeviceManagementBackend::ErrorCode code) {
|
| }
|
|
|
| void DeviceTokenFetcher::Restart() {
|
| - DCHECK(!IsTokenPending());
|
| + // Complain if there's currently an asynchronous operation going on.
|
| + DCHECK(state_ == kStateNotStarted ||
|
| + state_ == kStateHasDeviceToken ||
|
| + state_ == kStateFailure ||
|
| + state_ == kStateNotManaged);
|
| device_token_.clear();
|
| device_token_load_complete_event_.Reset();
|
| MakeReadyToRequestDeviceToken();
|
|
|