Chromium Code Reviews| Index: chrome/browser/task_manager/task_manager_browsertest_util.cc |
| diff --git a/chrome/browser/task_manager/task_manager_browsertest_util.cc b/chrome/browser/task_manager/task_manager_browsertest_util.cc |
| index 7d62584465018360c485612ac19231ae21827d79..a84fce90118ff403652a08fe6a437854154d08d1 100644 |
| --- a/chrome/browser/task_manager/task_manager_browsertest_util.cc |
| +++ b/chrome/browser/task_manager/task_manager_browsertest_util.cc |
| @@ -7,7 +7,6 @@ |
| #include "base/bind_helpers.h" |
| #include "base/command_line.h" |
| #include "base/location.h" |
| -#include "base/memory/ptr_util.h" |
| #include "base/run_loop.h" |
| #include "base/single_thread_task_runner.h" |
| #include "base/strings/pattern.h" |
| @@ -18,15 +17,7 @@ |
| #include "base/thread_task_runner_handle.h" |
| #include "base/timer/timer.h" |
| #include "chrome/browser/browser_process.h" |
| -#include "chrome/browser/profiles/profile.h" |
| -#include "chrome/browser/sessions/session_tab_helper.h" |
| -#include "chrome/browser/task_management/task_manager_interface.h" |
| -#include "chrome/browser/task_manager/legacy_task_manager_tester.h" |
| -#include "chrome/browser/task_manager/resource_provider.h" |
| -#include "chrome/browser/task_manager/task_manager.h" |
| -#include "chrome/browser/ui/browser_dialogs.h" |
| -#include "chrome/browser/ui/task_manager/task_manager_table_model.h" |
| -#include "chrome/common/chrome_switches.h" |
| +#include "chrome/browser/task_management/task_manager_tester.h" |
| #include "chrome/grit/generated_resources.h" |
| #include "extensions/strings/grit/extensions_strings.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| @@ -38,154 +29,7 @@ namespace browsertest_util { |
| namespace { |
| -// Returns whether chrome::ShowTaskManager() will, for the current platform and |
| -// command line, show a view backed by a task_management::TaskManagerTableModel. |
| -bool IsNewTaskManagerViewEnabled() { |
| -#if defined(OS_MACOSX) |
| - if (!chrome::ToolkitViewsDialogsEnabled()) |
| - return false; |
| -#endif |
| - return switches::NewTaskManagerEnabled(); |
| -} |
| - |
| -// Temporarily intercepts the calls between a TableModel and its Observer, |
| -// running |callback| whenever anything happens. |
| -class ScopedInterceptTableModelObserver : public ui::TableModelObserver { |
| - public: |
| - ScopedInterceptTableModelObserver( |
| - ui::TableModel* model_to_intercept, |
| - ui::TableModelObserver* real_table_model_observer, |
| - const base::Closure& callback) |
| - : model_to_intercept_(model_to_intercept), |
| - real_table_model_observer_(real_table_model_observer), |
| - callback_(callback) { |
| - model_to_intercept_->SetObserver(this); |
| - } |
| - |
| - ~ScopedInterceptTableModelObserver() override { |
| - model_to_intercept_->SetObserver(real_table_model_observer_); |
| - } |
| - |
| - // ui::TableModelObserver: |
| - void OnModelChanged() override { |
| - real_table_model_observer_->OnModelChanged(); |
| - callback_.Run(); |
| - } |
| - void OnItemsChanged(int start, int length) override { |
| - real_table_model_observer_->OnItemsChanged(start, length); |
| - callback_.Run(); |
| - } |
| - void OnItemsAdded(int start, int length) override { |
| - real_table_model_observer_->OnItemsAdded(start, length); |
| - callback_.Run(); |
| - } |
| - void OnItemsRemoved(int start, int length) override { |
| - real_table_model_observer_->OnItemsRemoved(start, length); |
| - callback_.Run(); |
| - } |
| - |
| - private: |
| - ui::TableModel* model_to_intercept_; |
| - ui::TableModelObserver* real_table_model_observer_; |
| - base::Closure callback_; |
| -}; |
| - |
| -} // namespace |
| - |
| -// Implementation of TaskManagerTester for the 'new' TaskManager. |
| -class TaskManagerTesterImpl : public TaskManagerTester { |
| - public: |
| - explicit TaskManagerTesterImpl(const base::Closure& on_resource_change) |
| - : model_(GetRealModel()) { |
| - // Eavesdrop the model->view conversation, since the model only supports |
| - // single observation. |
| - if (!on_resource_change.is_null()) { |
| - interceptor_.reset(new ScopedInterceptTableModelObserver( |
| - model_, model_->table_model_observer_, on_resource_change)); |
| - } |
| - } |
| - |
| - ~TaskManagerTesterImpl() override { |
| - CHECK_EQ(GetRealModel(), model_) << "Task Manager should not be hidden " |
| - "while TaskManagerTester is alive. " |
| - "This indicates a test bug."; |
| - } |
| - |
| - // TaskManagerTester: |
| - int GetRowCount() override { return model_->RowCount(); } |
| - |
| - base::string16 GetRowTitle(int row) override { |
| - return model_->GetText(row, IDS_TASK_MANAGER_TASK_COLUMN); |
| - } |
| - |
| - void ToggleColumnVisibility(ColumnSpecifier column) override { |
| - int column_id = 0; |
| - switch (column) { |
| - case ColumnSpecifier::COLUMN_NONE: |
| - return; |
| - case ColumnSpecifier::SQLITE_MEMORY_USED: |
| - column_id = IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN; |
| - break; |
| - case ColumnSpecifier::V8_MEMORY_USED: |
| - case ColumnSpecifier::V8_MEMORY: |
| - column_id = IDS_TASK_MANAGER_JAVASCRIPT_MEMORY_ALLOCATED_COLUMN; |
| - break; |
| - } |
| - model_->ToggleColumnVisibility(column_id); |
| - } |
| - |
| - int64_t GetColumnValue(ColumnSpecifier column, int row) override { |
| - task_management::TaskId task_id = model_->tasks_[row]; |
| - int64_t value = 0; |
| - int64_t ignored = 0; |
| - bool success = false; |
| - |
| - switch (column) { |
| - case ColumnSpecifier::COLUMN_NONE: |
| - break; |
| - case ColumnSpecifier::V8_MEMORY: |
| - success = task_manager()->GetV8Memory(task_id, &value, &ignored); |
| - break; |
| - case ColumnSpecifier::V8_MEMORY_USED: |
| - success = task_manager()->GetV8Memory(task_id, &ignored, &value); |
| - break; |
| - case ColumnSpecifier::SQLITE_MEMORY_USED: |
| - value = task_manager()->GetSqliteMemoryUsed(task_id); |
| - success = true; |
| - break; |
| - } |
| - if (!success) |
| - return 0; |
| - return value; |
| - } |
| - |
| - int32_t GetTabId(int row) override { |
| - task_management::TaskId task_id = model_->tasks_[row]; |
| - return task_manager()->GetTabId(task_id); |
| - } |
| - |
| - void Kill(int row) override { model_->KillTask(row); } |
| - |
| - private: |
| - task_management::TaskManagerInterface* task_manager() { |
| - return model_->observed_task_manager(); |
| - } |
| - |
| - // Returns the TaskManagerTableModel for the the visible NewTaskManagerView. |
| - static task_management::TaskManagerTableModel* GetRealModel() { |
| - CHECK(IsNewTaskManagerViewEnabled()); |
| - // This downcast is safe, as long as the new task manager is enabled. |
| - task_management::TaskManagerTableModel* result = |
| - static_cast<task_management::TaskManagerTableModel*>( |
| - chrome::ShowTaskManager(nullptr)); |
| - return result; |
| - } |
| - |
| - task_management::TaskManagerTableModel* model_; |
| - std::unique_ptr<ScopedInterceptTableModelObserver> interceptor_; |
| -}; |
| - |
| -namespace { |
| +using TaskManagerTester = task_management::TaskManagerTester; |
| // Helper class to run a message loop until a TaskManagerTester is in an |
| // expected state. If timeout occurs, an ASCII version of the task manager's |
| @@ -201,13 +45,8 @@ class ResourceChangeObserver { |
| title_pattern_(title_pattern), |
| column_specifier_(column_specifier), |
| min_column_value_(min_column_value) { |
| - base::Closure callback = base::Bind( |
| - &ResourceChangeObserver::OnResourceChange, base::Unretained(this)); |
| - |
| - if (IsNewTaskManagerViewEnabled()) |
| - task_manager_tester_.reset(new TaskManagerTesterImpl(callback)); |
| - else |
| - task_manager_tester_ = LegacyTaskManagerTester::Create(callback); |
| + task_manager_tester_ = TaskManagerTester::Create(base::Bind( |
| + &ResourceChangeObserver::OnResourceChange, base::Unretained(this))); |
|
afakhry
2016/05/07 00:23:59
mmm, I see you already made it here! :)
ncarter (slow)
2016/05/09 20:26:35
Acknowledged.
|
| } |
| void RunUntilSatisfied() { |
| @@ -320,13 +159,6 @@ class ResourceChangeObserver { |
| } // namespace |
| -std::unique_ptr<TaskManagerTester> GetTaskManagerTester() { |
| - if (IsNewTaskManagerViewEnabled()) |
| - return base::WrapUnique(new TaskManagerTesterImpl(base::Closure())); |
| - else |
| - return LegacyTaskManagerTester::Create(base::Closure()); |
| -} |
| - |
| void WaitForTaskManagerRows(int required_count, |
| const base::string16& title_pattern) { |
| const int column_value_dont_care = 0; |