Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3672)

Unified Diff: chrome/browser/task_manager/task_manager_browsertest_util.cc

Issue 1956943002: [Part 5 of 6] Move TaskManagerTester to the task_management directory. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@tm_file_split4
Patch Set: Rebase Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
« no previous file with comments | « chrome/browser/task_manager/task_manager_browsertest_util.h ('k') | chrome/browser/ui/task_manager/task_manager_table_model.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698