| Index: chrome/browser/task_manager/providers/arc/arc_process_task.cc
|
| diff --git a/chrome/browser/task_manager/providers/arc/arc_process_task.cc b/chrome/browser/task_manager/providers/arc/arc_process_task.cc
|
| index e0b44c0825700c1fce30a2f988aab6f9e4d6840d..6b32713dd621529b5140de183f99e6bec2c4a1bd 100644
|
| --- a/chrome/browser/task_manager/providers/arc/arc_process_task.cc
|
| +++ b/chrome/browser/task_manager/providers/arc/arc_process_task.cc
|
| @@ -113,10 +113,14 @@ void ArcProcessTask::StartIconLoading() {
|
| }
|
|
|
| ArcProcessTask::~ArcProcessTask() {
|
| - arc::ArcServiceManager::Get()
|
| - ->arc_bridge_service()
|
| - ->intent_helper()
|
| - ->RemoveObserver(this);
|
| + auto* service_manager = arc::ArcServiceManager::Get();
|
| + // This destructor can also be called when TaskManagerImpl is destructed.
|
| + // Since TaskManagerImpl is a LAZY_INSTANCE, arc::ArcServiceManager may have
|
| + // already been destructed. In that case, arc_bridge_service() has also been
|
| + // destructed, and it is safe to just return.
|
| + if (!service_manager)
|
| + return;
|
| + service_manager->arc_bridge_service()->intent_helper()->RemoveObserver(this);
|
| }
|
|
|
| Task::Type ArcProcessTask::GetType() const {
|
|
|