| Index: chrome/browser/policy/device_management_policy_provider.cc
|
| diff --git a/chrome/browser/policy/device_management_policy_provider.cc b/chrome/browser/policy/device_management_policy_provider.cc
|
| index f19156441e51dd1690269ed6149dae4f892b88f6..644f532f35f7df86044afcf2a39c0fc3c3eae95d 100644
|
| --- a/chrome/browser/policy/device_management_policy_provider.cc
|
| +++ b/chrome/browser/policy/device_management_policy_provider.cc
|
| @@ -108,14 +108,21 @@ void DeviceManagementPolicyProvider::HandlePolicyResponse(
|
| void DeviceManagementPolicyProvider::OnError(
|
| DeviceManagementBackend::ErrorCode code) {
|
| policy_request_pending_ = false;
|
| - LOG(WARNING) << "Could not provide policy from the device manager (error = "
|
| - << code << "), will retry in "
|
| - << (policy_refresh_error_delay_ms_/1000) << " seconds.";
|
| - ScheduleRefreshTask(policy_refresh_error_delay_ms_);
|
| - policy_refresh_error_delay_ms_ *= 2;
|
| - if (policy_refresh_rate_ms_ &&
|
| - policy_refresh_rate_ms_ < policy_refresh_error_delay_ms_) {
|
| - policy_refresh_error_delay_ms_ = policy_refresh_rate_ms_;
|
| + if (code == DeviceManagementBackend::kErrorServiceDeviceNotFound ||
|
| + code == DeviceManagementBackend::kErrorServiceManagementTokenInvalid) {
|
| + LOG(WARNING) << "The device token was either invalid or unknown to the "
|
| + << "device manager, re-registering device.";
|
| + token_fetcher_->Restart();
|
| + } else {
|
| + LOG(WARNING) << "Could not provide policy from the device manager (error = "
|
| + << code << "), will retry in "
|
| + << (policy_refresh_error_delay_ms_/1000) << " seconds.";
|
| + ScheduleRefreshTask(policy_refresh_error_delay_ms_);
|
| + policy_refresh_error_delay_ms_ *= 2;
|
| + if (policy_refresh_rate_ms_ &&
|
| + policy_refresh_rate_ms_ < policy_refresh_error_delay_ms_) {
|
| + policy_refresh_error_delay_ms_ = policy_refresh_rate_ms_;
|
| + }
|
| }
|
| }
|
|
|
|
|