| 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 a6944f7dcf4d27ea43a054b39b8b261d46a5c60a..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_ = CreateLegacyTaskManagerTester(callback);
|
| + task_manager_tester_ = TaskManagerTester::Create(base::Bind(
|
| + &ResourceChangeObserver::OnResourceChange, base::Unretained(this)));
|
| }
|
|
|
| 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 CreateLegacyTaskManagerTester(base::Closure());
|
| -}
|
| -
|
| void WaitForTaskManagerRows(int required_count,
|
| const base::string16& title_pattern) {
|
| const int column_value_dont_care = 0;
|
|
|