Index: chrome/browser/task_manager/sampling/task_manager_impl.cc |
diff --git a/chrome/browser/task_manager/sampling/task_manager_impl.cc b/chrome/browser/task_manager/sampling/task_manager_impl.cc |
index afd1ca1514b513670949f16ce3f709cb9f5e3e30..aab3f46770eaf7fd4be07856bc040329d76adf91 100644 |
--- a/chrome/browser/task_manager/sampling/task_manager_impl.cc |
+++ b/chrome/browser/task_manager/sampling/task_manager_impl.cc |
@@ -50,7 +50,8 @@ TaskManagerImpl::TaskManagerImpl() |
base::Unretained(this))), |
blocking_pool_runner_(GetBlockingPoolRunner()), |
shared_sampler_(new SharedSampler(blocking_pool_runner_)), |
- is_running_(false) { |
+ is_running_(false), |
+ weak_ptr_factory_(this) { |
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
task_providers_.emplace_back(new BrowserProcessTaskProvider()); |
@@ -60,12 +61,9 @@ TaskManagerImpl::TaskManagerImpl() |
if (arc::IsArcAvailable()) |
task_providers_.emplace_back(new ArcProcessTaskProvider()); |
#endif // defined(OS_CHROMEOS) |
- |
- content::GpuDataManager::GetInstance()->AddObserver(this); |
} |
TaskManagerImpl::~TaskManagerImpl() { |
- content::GpuDataManager::GetInstance()->RemoveObserver(this); |
} |
// static |
@@ -452,13 +450,6 @@ void TaskManagerImpl::TaskUnresponsive(Task* task) { |
NotifyObserversOnTaskUnresponsive(task->task_id()); |
} |
-void TaskManagerImpl::OnVideoMemoryUsageStatsUpdate( |
- const gpu::VideoMemoryUsageStats& gpu_memory_stats) { |
- DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
- |
- gpu_memory_stats_ = gpu_memory_stats; |
-} |
- |
// static |
void TaskManagerImpl::OnMultipleBytesReadUI( |
std::vector<BytesReadParam>* params) { |
@@ -481,10 +472,18 @@ void TaskManagerImpl::OnMultipleBytesReadUI( |
} |
} |
+void TaskManagerImpl::OnVideoMemoryUsageStatsUpdate( |
+ const gpu::VideoMemoryUsageStats& gpu_memory_stats) { |
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
+ |
+ gpu_memory_stats_ = gpu_memory_stats; |
+} |
+ |
void TaskManagerImpl::Refresh() { |
if (IsResourceRefreshEnabled(REFRESH_TYPE_GPU_MEMORY)) { |
- content::GpuDataManager::GetInstance()-> |
- RequestVideoMemoryUsageStatsUpdate(); |
+ content::GpuDataManager::GetInstance()->RequestVideoMemoryUsageStatsUpdate( |
+ base::Bind(&TaskManagerImpl::OnVideoMemoryUsageStatsUpdate, |
+ weak_ptr_factory_.GetWeakPtr())); |
} |
for (auto& groups_itr : task_groups_by_proc_id_) { |