Index: chrome/browser/task_management/providers/arc/arc_process_task_provider.cc |
diff --git a/chrome/browser/task_management/providers/arc/arc_process_task_provider.cc b/chrome/browser/task_management/providers/arc/arc_process_task_provider.cc |
index 8756626034d94e5c22b816dae07c8aad040acf15..e119ded47007ad5ff4b871e0cb04f383bb9eb215 100644 |
--- a/chrome/browser/task_management/providers/arc/arc_process_task_provider.cc |
+++ b/chrome/browser/task_management/providers/arc/arc_process_task_provider.cc |
@@ -92,12 +92,15 @@ void ArcProcessTaskProvider::OnUpdateProcessList( |
void ArcProcessTaskProvider::RequestProcessList() { |
arc::ArcProcessService* arc_process_service = |
arc::ArcProcessService::Get(); |
+ auto callback = base::Bind(&ArcProcessTaskProvider::OnUpdateProcessList, |
+ weak_ptr_factory_.GetWeakPtr()); |
if (!arc_process_service || |
- !arc_process_service->RequestProcessList( |
- base::Bind(&ArcProcessTaskProvider::OnUpdateProcessList, |
- weak_ptr_factory_.GetWeakPtr()))) { |
+ !arc_process_service->RequestProcessList(callback)) { |
VLOG(2) << "ARC process instance is not ready."; |
- ScheduleNextRequest(); |
+ // Update with the empty ARC process list. |
+ // Note that this can happen in the middle of the session if the user has |
+ // just opted out from ARC. |
+ callback.Run(std::vector<ArcProcess>()); |
} |
} |