Chromium Code Reviews| Index: chrome/browser/ui/task_manager/task_manager_table_model.cc |
| diff --git a/chrome/browser/ui/task_manager/task_manager_table_model.cc b/chrome/browser/ui/task_manager/task_manager_table_model.cc |
| index 75bf306bc78a4b294667f23dd19e53bb1f52a327..3e33451ce51f1ce6e854ca711043f0794d02c523 100644 |
| --- a/chrome/browser/ui/task_manager/task_manager_table_model.cc |
| +++ b/chrome/browser/ui/task_manager/task_manager_table_model.cc |
| @@ -33,6 +33,11 @@ namespace task_management { |
| namespace { |
| +// Captures the first instance of TaskManagerTableModel, for use in |
| +// browsertests. Nothing prevents other TaskManagerTableModel instances, but in |
| +// practice this will be model driving the visible task manager dialog. |
|
afakhry
2016/05/02 18:58:17
... will be 'the' model driving ...
ncarter (slow)
2016/05/02 23:09:57
Done.
|
| +TaskManagerTableModel* g_instance_for_testing = nullptr; |
| + |
| #if defined(OS_MACOSX) |
| // Match Activity Monitor's default refresh rate. |
| const int64_t kRefreshTimeMS = 2000; |
| @@ -270,11 +275,18 @@ TaskManagerTableModel::TaskManagerTableModel(int64_t refresh_flags, |
| #else |
| is_nacl_debugging_flag_enabled_(false) { |
| #endif // !defined(DISABLE_NACL) |
| + |
| + if (!g_instance_for_testing) |
| + g_instance_for_testing = this; |
| + |
| DCHECK(delegate); |
| StartUpdating(); |
| } |
| TaskManagerTableModel::~TaskManagerTableModel() { |
| + if (g_instance_for_testing == this) |
| + g_instance_for_testing = nullptr; |
| + |
| StopUpdating(); |
| } |
| @@ -804,6 +816,11 @@ void TaskManagerTableModel::ToggleColumnVisibility(int column_id) { |
| UpdateRefreshTypes(column_id, new_visibility); |
| } |
| +// static |
| +TaskManagerTableModel* TaskManagerTableModel::GetInstanceForTesting() { |
| + return g_instance_for_testing; |
| +} |
| + |
| void TaskManagerTableModel::StartUpdating() { |
| TaskManagerInterface::GetTaskManager()->AddObserver(this); |
| tasks_ = observed_task_manager()->GetTaskIdsList(); |