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

Side by Side Diff: chrome/browser/task_management/task_manager_tester.cc

Issue 1912773002: Remove the old task manager view (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Nits 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/task_management/task_manager_tester.h" 5 #include "chrome/browser/task_management/task_manager_tester.h"
6 6
7 #include "base/memory/ptr_util.h" 7 #include "base/memory/ptr_util.h"
8 #include "chrome/browser/browser_process.h" 8 #include "chrome/browser/browser_process.h"
9 #include "chrome/browser/profiles/profile.h" 9 #include "chrome/browser/profiles/profile.h"
10 #include "chrome/browser/sessions/session_tab_helper.h" 10 #include "chrome/browser/sessions/session_tab_helper.h"
11 #include "chrome/browser/task_management/task_manager_interface.h" 11 #include "chrome/browser/task_management/task_manager_interface.h"
12 #include "chrome/browser/task_manager/legacy_task_manager_tester.h"
13 #include "chrome/browser/ui/browser_dialogs.h" 12 #include "chrome/browser/ui/browser_dialogs.h"
14 #include "chrome/browser/ui/task_manager/task_manager_table_model.h" 13 #include "chrome/browser/ui/task_manager/task_manager_table_model.h"
15 #include "chrome/common/chrome_switches.h" 14 #include "chrome/common/chrome_switches.h"
16 #include "chrome/grit/generated_resources.h" 15 #include "chrome/grit/generated_resources.h"
17 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
18 #include "ui/base/models/table_model_observer.h" 17 #include "ui/base/models/table_model_observer.h"
19 18
20 namespace task_management { 19 namespace task_management {
21 20
22 namespace { 21 namespace {
23 22
24 // Returns whether chrome::ShowTaskManager() will, for the current platform and
25 // command line, show a view backed by a task_management::TaskManagerTableModel.
26 bool IsNewTaskManagerViewEnabled() {
27 #if defined(OS_MACOSX)
28 if (!chrome::ToolkitViewsDialogsEnabled())
29 return false;
30 #endif
31 return switches::NewTaskManagerEnabled();
32 }
33
34 // Temporarily intercepts the calls between a TableModel and its Observer, 23 // Temporarily intercepts the calls between a TableModel and its Observer,
35 // running |callback| whenever anything happens. 24 // running |callback| whenever anything happens.
36 class ScopedInterceptTableModelObserver : public ui::TableModelObserver { 25 class ScopedInterceptTableModelObserver : public ui::TableModelObserver {
37 public: 26 public:
38 ScopedInterceptTableModelObserver( 27 ScopedInterceptTableModelObserver(
39 ui::TableModel* model_to_intercept, 28 ui::TableModel* model_to_intercept,
40 ui::TableModelObserver* real_table_model_observer, 29 ui::TableModelObserver* real_table_model_observer,
41 const base::Closure& callback) 30 const base::Closure& callback)
42 : model_to_intercept_(model_to_intercept), 31 : model_to_intercept_(model_to_intercept),
43 real_table_model_observer_(real_table_model_observer), 32 real_table_model_observer_(real_table_model_observer),
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 138
150 void Kill(int row) override { model_->KillTask(row); } 139 void Kill(int row) override { model_->KillTask(row); }
151 140
152 private: 141 private:
153 task_management::TaskManagerInterface* task_manager() { 142 task_management::TaskManagerInterface* task_manager() {
154 return model_->observed_task_manager(); 143 return model_->observed_task_manager();
155 } 144 }
156 145
157 // Returns the TaskManagerTableModel for the the visible NewTaskManagerView. 146 // Returns the TaskManagerTableModel for the the visible NewTaskManagerView.
158 static task_management::TaskManagerTableModel* GetRealModel() { 147 static task_management::TaskManagerTableModel* GetRealModel() {
159 CHECK(IsNewTaskManagerViewEnabled());
160 // This downcast is safe, as long as the new task manager is enabled. 148 // This downcast is safe, as long as the new task manager is enabled.
161 task_management::TaskManagerTableModel* result = 149 task_management::TaskManagerTableModel* result =
162 static_cast<task_management::TaskManagerTableModel*>( 150 static_cast<task_management::TaskManagerTableModel*>(
163 chrome::ShowTaskManager(nullptr)); 151 chrome::ShowTaskManager(nullptr));
164 return result; 152 return result;
165 } 153 }
166 154
167 task_management::TaskManagerTableModel* model_; 155 task_management::TaskManagerTableModel* model_;
168 std::unique_ptr<ScopedInterceptTableModelObserver> interceptor_; 156 std::unique_ptr<ScopedInterceptTableModelObserver> interceptor_;
169 }; 157 };
170 158
171 // static 159 // static
172 std::unique_ptr<TaskManagerTester> TaskManagerTester::Create( 160 std::unique_ptr<TaskManagerTester> TaskManagerTester::CreateDefault(
173 const base::Closure& callback) { 161 const base::Closure& callback) {
174 if (IsNewTaskManagerViewEnabled()) 162 return base::WrapUnique(new TaskManagerTesterImpl(callback));
175 return base::WrapUnique(new TaskManagerTesterImpl(callback));
176 else
177 return task_manager::CreateLegacyTaskManagerTester(callback);
178 } 163 }
179 164
180 } // namespace task_management 165 } // namespace task_management
OLDNEW
« no previous file with comments | « chrome/browser/task_management/task_manager_tester.h ('k') | chrome/browser/task_manager/legacy_task_manager_tester.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698