| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/policy/cloud_policy_controller.h" | 5 #include "chrome/browser/policy/cloud_policy_controller.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 | 132 |
| 133 void CloudPolicyController::OnError(DeviceManagementBackend::ErrorCode code) { | 133 void CloudPolicyController::OnError(DeviceManagementBackend::ErrorCode code) { |
| 134 switch (code) { | 134 switch (code) { |
| 135 case DeviceManagementBackend::kErrorServiceDeviceNotFound: | 135 case DeviceManagementBackend::kErrorServiceDeviceNotFound: |
| 136 case DeviceManagementBackend::kErrorServiceDeviceIdConflict: | 136 case DeviceManagementBackend::kErrorServiceDeviceIdConflict: |
| 137 case DeviceManagementBackend::kErrorServiceManagementTokenInvalid: { | 137 case DeviceManagementBackend::kErrorServiceManagementTokenInvalid: { |
| 138 LOG(WARNING) << "The device token was either invalid or unknown to the " | 138 LOG(WARNING) << "The device token was either invalid or unknown to the " |
| 139 << "device manager, re-registering device."; | 139 << "device manager, re-registering device."; |
| 140 // Will retry fetching a token but gracefully backing off. | 140 // Will retry fetching a token but gracefully backing off. |
| 141 SetState(STATE_TOKEN_ERROR); | 141 SetState(STATE_TOKEN_ERROR); |
| 142 break; | 142 return; |
| 143 } | 143 } |
| 144 case DeviceManagementBackend::kErrorServiceInvalidSerialNumber: { | 144 case DeviceManagementBackend::kErrorServiceInvalidSerialNumber: { |
| 145 VLOG(1) << "The device is no longer enlisted for the domain."; | 145 VLOG(1) << "The device is no longer enlisted for the domain."; |
| 146 token_fetcher_->SetSerialNumberInvalidState(); | 146 token_fetcher_->SetSerialNumberInvalidState(); |
| 147 SetState(STATE_TOKEN_ERROR); | 147 SetState(STATE_TOKEN_ERROR); |
| 148 break; | 148 return; |
| 149 } | 149 } |
| 150 case DeviceManagementBackend::kErrorServiceManagementNotSupported: { | 150 case DeviceManagementBackend::kErrorServiceManagementNotSupported: { |
| 151 VLOG(1) << "The device is no longer managed."; | 151 VLOG(1) << "The device is no longer managed."; |
| 152 token_fetcher_->SetUnmanagedState(); | 152 token_fetcher_->SetUnmanagedState(); |
| 153 SetState(STATE_TOKEN_UNMANAGED); | 153 SetState(STATE_TOKEN_UNMANAGED); |
| 154 break; | 154 return; |
| 155 } | 155 } |
| 156 case DeviceManagementBackend::kErrorServicePolicyNotFound: | 156 case DeviceManagementBackend::kErrorServicePolicyNotFound: |
| 157 case DeviceManagementBackend::kErrorRequestInvalid: | 157 case DeviceManagementBackend::kErrorRequestInvalid: |
| 158 case DeviceManagementBackend::kErrorServiceActivationPending: | 158 case DeviceManagementBackend::kErrorServiceActivationPending: |
| 159 case DeviceManagementBackend::kErrorResponseDecoding: | 159 case DeviceManagementBackend::kErrorResponseDecoding: |
| 160 case DeviceManagementBackend::kErrorHttpStatus: { | 160 case DeviceManagementBackend::kErrorHttpStatus: { |
| 161 VLOG(1) << "An error in the communication with the policy server occurred" | 161 VLOG(1) << "An error in the communication with the policy server occurred" |
| 162 << ", will retry in a few hours."; | 162 << ", will retry in a few hours."; |
| 163 SetState(STATE_POLICY_UNAVAILABLE); | 163 SetState(STATE_POLICY_UNAVAILABLE); |
| 164 break; | 164 return; |
| 165 } | 165 } |
| 166 case DeviceManagementBackend::kErrorRequestFailed: | 166 case DeviceManagementBackend::kErrorRequestFailed: |
| 167 case DeviceManagementBackend::kErrorTemporaryUnavailable: { | 167 case DeviceManagementBackend::kErrorTemporaryUnavailable: { |
| 168 VLOG(1) << "A temporary error in the communication with the policy server" | 168 VLOG(1) << "A temporary error in the communication with the policy server" |
| 169 << " occurred."; | 169 << " occurred."; |
| 170 } | |
| 171 default: | |
| 172 // Will retry last operation but gracefully backing off. | 170 // Will retry last operation but gracefully backing off. |
| 173 SetState(STATE_POLICY_ERROR); | 171 SetState(STATE_POLICY_ERROR); |
| 172 return; |
| 173 } |
| 174 } | 174 } |
| 175 |
| 176 NOTREACHED(); |
| 177 SetState(STATE_POLICY_ERROR); |
| 175 } | 178 } |
| 176 | 179 |
| 177 void CloudPolicyController::OnDeviceTokenChanged() { | 180 void CloudPolicyController::OnDeviceTokenChanged() { |
| 178 if (data_store_->device_token().empty()) | 181 if (data_store_->device_token().empty()) |
| 179 SetState(STATE_TOKEN_UNAVAILABLE); | 182 SetState(STATE_TOKEN_UNAVAILABLE); |
| 180 else | 183 else |
| 181 SetState(STATE_TOKEN_VALID); | 184 SetState(STATE_TOKEN_VALID); |
| 182 } | 185 } |
| 183 | 186 |
| 184 void CloudPolicyController::OnCredentialsChanged() { | 187 void CloudPolicyController::OnCredentialsChanged() { |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 381 } | 384 } |
| 382 | 385 |
| 383 int64 CloudPolicyController::GetRefreshDelay() { | 386 int64 CloudPolicyController::GetRefreshDelay() { |
| 384 int64 deviation = (kPolicyRefreshDeviationFactorPercent * | 387 int64 deviation = (kPolicyRefreshDeviationFactorPercent * |
| 385 policy_refresh_rate_ms_) / 100; | 388 policy_refresh_rate_ms_) / 100; |
| 386 deviation = std::min(deviation, kPolicyRefreshDeviationMaxInMilliseconds); | 389 deviation = std::min(deviation, kPolicyRefreshDeviationMaxInMilliseconds); |
| 387 return policy_refresh_rate_ms_ - base::RandGenerator(deviation + 1); | 390 return policy_refresh_rate_ms_ - base::RandGenerator(deviation + 1); |
| 388 } | 391 } |
| 389 | 392 |
| 390 } // namespace policy | 393 } // namespace policy |
| OLD | NEW |