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

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: ncarter and tapted's comments 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
19 #if defined(OS_MACOSX)
20 #include "chrome/browser/task_manager/legacy_task_manager_tester.h"
21 #endif // defined(OS_MACOSX)
22
20 namespace task_management { 23 namespace task_management {
21 24
22 namespace { 25 namespace {
23 26
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, 27 // Temporarily intercepts the calls between a TableModel and its Observer,
35 // running |callback| whenever anything happens. 28 // running |callback| whenever anything happens.
36 class ScopedInterceptTableModelObserver : public ui::TableModelObserver { 29 class ScopedInterceptTableModelObserver : public ui::TableModelObserver {
37 public: 30 public:
38 ScopedInterceptTableModelObserver( 31 ScopedInterceptTableModelObserver(
39 ui::TableModel* model_to_intercept, 32 ui::TableModel* model_to_intercept,
40 ui::TableModelObserver* real_table_model_observer, 33 ui::TableModelObserver* real_table_model_observer,
41 const base::Closure& callback) 34 const base::Closure& callback)
42 : model_to_intercept_(model_to_intercept), 35 : model_to_intercept_(model_to_intercept),
43 real_table_model_observer_(real_table_model_observer), 36 real_table_model_observer_(real_table_model_observer),
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 142
150 void Kill(int row) override { model_->KillTask(row); } 143 void Kill(int row) override { model_->KillTask(row); }
151 144
152 private: 145 private:
153 task_management::TaskManagerInterface* task_manager() { 146 task_management::TaskManagerInterface* task_manager() {
154 return model_->observed_task_manager(); 147 return model_->observed_task_manager();
155 } 148 }
156 149
157 // Returns the TaskManagerTableModel for the the visible NewTaskManagerView. 150 // Returns the TaskManagerTableModel for the the visible NewTaskManagerView.
158 static task_management::TaskManagerTableModel* GetRealModel() { 151 static task_management::TaskManagerTableModel* GetRealModel() {
159 CHECK(IsNewTaskManagerViewEnabled());
160 // This downcast is safe, as long as the new task manager is enabled. 152 // This downcast is safe, as long as the new task manager is enabled.
161 task_management::TaskManagerTableModel* result = 153 task_management::TaskManagerTableModel* result =
162 static_cast<task_management::TaskManagerTableModel*>( 154 static_cast<task_management::TaskManagerTableModel*>(
163 chrome::ShowTaskManager(nullptr)); 155 chrome::ShowTaskManager(nullptr));
164 return result; 156 return result;
165 } 157 }
166 158
167 task_management::TaskManagerTableModel* model_; 159 task_management::TaskManagerTableModel* model_;
168 std::unique_ptr<ScopedInterceptTableModelObserver> interceptor_; 160 std::unique_ptr<ScopedInterceptTableModelObserver> interceptor_;
169 }; 161 };
170 162
171 // static 163 // static
172 std::unique_ptr<TaskManagerTester> TaskManagerTester::Create( 164 std::unique_ptr<TaskManagerTester> TaskManagerTester::Create(
173 const base::Closure& callback) { 165 const base::Closure& callback) {
174 if (IsNewTaskManagerViewEnabled()) 166 #if defined(OS_MACOSX)
175 return base::WrapUnique(new TaskManagerTesterImpl(callback)); 167 if (!TaskManagerInterface::IsNewTaskManagerEnabled())
176 else
177 return task_manager::CreateLegacyTaskManagerTester(callback); 168 return task_manager::CreateLegacyTaskManagerTester(callback);
afakhry 2016/05/20 02:32:50 I suspect that this might cause problems since the
tapted 2016/05/20 09:52:33 Hm - you're quite right. For some reason when I lo
tapted 2016/05/23 04:34:56 OK - I've updated https://codereview.chromium.org/
afakhry 2016/05/23 18:21:52 You need to build browsertests in order to test th
afakhry 2016/05/23 18:21:52 Done.
169 #endif // defined(OS_MACOSX)
170
171 return base::WrapUnique(new TaskManagerTesterImpl(callback));
178 } 172 }
179 173
180 } // namespace task_management 174 } // namespace task_management
OLDNEW
« no previous file with comments | « chrome/browser/task_management/task_manager_interface.cc ('k') | chrome/browser/task_manager/printing_information.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698