| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "components/update_client/update_engine.h" | 5 #include "components/update_client/update_engine.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
| (...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 FROM_HERE, base::Bind(&UpdateEngine::UpdateCheckComplete, | 212 FROM_HERE, base::Bind(&UpdateEngine::UpdateCheckComplete, |
| 213 base::Unretained(this), it)); | 213 base::Unretained(this), it)); |
| 214 } | 214 } |
| 215 | 215 |
| 216 void UpdateEngine::UpdateCheckComplete(const UpdateContextIterator& it) { | 216 void UpdateEngine::UpdateCheckComplete(const UpdateContextIterator& it) { |
| 217 DCHECK(thread_checker_.CalledOnValidThread()); | 217 DCHECK(thread_checker_.CalledOnValidThread()); |
| 218 | 218 |
| 219 const auto& update_context = *it; | 219 const auto& update_context = *it; |
| 220 DCHECK(update_context); | 220 DCHECK(update_context); |
| 221 | 221 |
| 222 if (update_context->update_check_error) { | |
| 223 base::ThreadTaskRunnerHandle::Get()->PostTask( | |
| 224 FROM_HERE, | |
| 225 base::Bind(&UpdateEngine::UpdateComplete, base::Unretained(this), it, | |
| 226 Error::UPDATE_CHECK_ERROR)); | |
| 227 return; | |
| 228 } | |
| 229 | |
| 230 for (const auto& id : update_context->ids) | 222 for (const auto& id : update_context->ids) |
| 231 update_context->component_queue.push(id); | 223 update_context->component_queue.push(id); |
| 232 | 224 |
| 233 base::ThreadTaskRunnerHandle::Get()->PostTask( | 225 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 234 FROM_HERE, | 226 FROM_HERE, |
| 235 base::Bind(&UpdateEngine::HandleComponent, base::Unretained(this), it)); | 227 base::Bind(&UpdateEngine::HandleComponent, base::Unretained(this), it)); |
| 236 } | 228 } |
| 237 | 229 |
| 238 void UpdateEngine::HandleComponent(const UpdateContextIterator& it) { | 230 void UpdateEngine::HandleComponent(const UpdateContextIterator& it) { |
| 239 DCHECK(thread_checker_.CalledOnValidThread()); | 231 DCHECK(thread_checker_.CalledOnValidThread()); |
| 240 | 232 |
| 241 auto& update_context = *it; | 233 auto& update_context = *it; |
| 242 DCHECK(update_context); | 234 DCHECK(update_context); |
| 243 | 235 |
| 244 auto& queue = update_context->component_queue; | 236 auto& queue = update_context->component_queue; |
| 245 | 237 |
| 246 if (queue.empty()) { | 238 if (queue.empty()) { |
| 239 const Error error = update_context->update_check_error |
| 240 ? Error::UPDATE_CHECK_ERROR |
| 241 : Error::NONE; |
| 247 base::ThreadTaskRunnerHandle::Get()->PostTask( | 242 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 248 FROM_HERE, base::Bind(&UpdateEngine::UpdateComplete, | 243 FROM_HERE, base::Bind(&UpdateEngine::UpdateComplete, |
| 249 base::Unretained(this), it, Error::NONE)); | 244 base::Unretained(this), it, error)); |
| 250 return; | 245 return; |
| 251 } | 246 } |
| 252 | 247 |
| 253 const auto& id = queue.front(); | 248 const auto& id = queue.front(); |
| 254 DCHECK_EQ(1u, update_context->components.count(id)); | 249 DCHECK_EQ(1u, update_context->components.count(id)); |
| 255 const auto& component = update_context->components.at(id); | 250 const auto& component = update_context->components.at(id); |
| 256 DCHECK(component); | 251 DCHECK(component); |
| 257 | 252 |
| 258 auto& next_update_delay = (*it)->next_update_delay; | 253 auto& next_update_delay = (*it)->next_update_delay; |
| 259 if (!next_update_delay.is_zero() && component->IsUpdateAvailable()) { | 254 if (!next_update_delay.is_zero() && component->IsUpdateAvailable()) { |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 366 component->Uninstall(version, reason); | 361 component->Uninstall(version, reason); |
| 367 | 362 |
| 368 update_context->component_queue.push(id); | 363 update_context->component_queue.push(id); |
| 369 | 364 |
| 370 base::ThreadTaskRunnerHandle::Get()->PostTask( | 365 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 371 FROM_HERE, | 366 FROM_HERE, |
| 372 base::Bind(&UpdateEngine::HandleComponent, base::Unretained(this), it)); | 367 base::Bind(&UpdateEngine::HandleComponent, base::Unretained(this), it)); |
| 373 } | 368 } |
| 374 | 369 |
| 375 } // namespace update_client | 370 } // namespace update_client |
| OLD | NEW |