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

Side by Side Diff: chrome/browser/task_manager.h

Issue 140044: Reorganize the way the task manager is constructed.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/gtk/task_manager_gtk.cc ('k') | chrome/browser/task_manager.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 #ifndef CHROME_BROWSER_TASK_MANAGER_H_ 5 #ifndef CHROME_BROWSER_TASK_MANAGER_H_
6 #define CHROME_BROWSER_TASK_MANAGER_H_ 6 #define CHROME_BROWSER_TASK_MANAGER_H_
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
11 #include <vector> 11 #include <vector>
12 12
13 #include "base/basictypes.h" 13 #include "base/basictypes.h"
14 #include "base/lock.h" 14 #include "base/lock.h"
15 #include "base/process_util.h" 15 #include "base/process_util.h"
16 #include "base/ref_counted.h" 16 #include "base/ref_counted.h"
17 #include "base/singleton.h" 17 #include "base/singleton.h"
18 #include "base/timer.h" 18 #include "base/timer.h"
19 #include "chrome/browser/renderer_host/web_cache_manager.h" 19 #include "chrome/browser/renderer_host/web_cache_manager.h"
20 #include "chrome/browser/tab_contents/tab_contents.h" 20 #include "chrome/browser/tab_contents/tab_contents.h"
21 #include "net/url_request/url_request_job_tracker.h" 21 #include "net/url_request/url_request_job_tracker.h"
22 #include "testing/gtest/include/gtest/gtest_prod.h" 22 #include "testing/gtest/include/gtest/gtest_prod.h"
23 23
24 class MessageLoop; 24 class MessageLoop;
25 class SkBitmap; 25 class SkBitmap;
26 class TaskManager; 26 class TaskManager;
27 class TaskManagerView;
28 class TaskManagerModel; 27 class TaskManagerModel;
29 28
30 struct BytesReadParam; 29 struct BytesReadParam;
31 30
32 namespace base { 31 namespace base {
33 class ProcessMetrics; 32 class ProcessMetrics;
34 } 33 }
35 34
36 // This class is a singleton. 35 // This class is a singleton.
37 class TaskManager { 36 class TaskManager {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 // the resource does not belong to this provider. 81 // the resource does not belong to this provider.
83 virtual TaskManager::Resource* GetResource(int process_id, 82 virtual TaskManager::Resource* GetResource(int process_id,
84 int render_process_host_id, 83 int render_process_host_id,
85 int routing_id) = 0; 84 int routing_id) = 0;
86 virtual void StartUpdating() = 0; 85 virtual void StartUpdating() = 0;
87 virtual void StopUpdating() = 0; 86 virtual void StopUpdating() = 0;
88 }; 87 };
89 88
90 static void RegisterPrefs(PrefService* prefs); 89 static void RegisterPrefs(PrefService* prefs);
91 90
92 // Call this method to show the Task Manager. 91 // Returns true if the process at the specified index is the browser process.
93 // Only one instance of Task Manager is created, so if the Task Manager has 92 bool IsBrowserProcess(int index) const;
94 // already be opened, it is reopened. If it is currently opened, then it is
95 // moved to the front.
96 static void Open();
97 93
98 // Close the task manager if it's currently opened. 94 // Terminates the process at the specified index.
99 static void Close(); 95 void KillProcess(int index);
100 96
101 // Returns true if the current selection includes the browser process. 97 // Activates the browser tab associated with the process in the specified
102 bool BrowserProcessIsSelected(); 98 // index.
103 99 void ActivateProcess(int index);
104 // Terminates the selected tab(s) in the list.
105 void KillSelectedProcesses();
106
107 // Activates the browser tab associated with the focused row in the task
108 // manager table. This happens when the user double clicks or hits return.
109 void ActivateFocusedTab();
110 100
111 void AddResourceProvider(ResourceProvider* provider); 101 void AddResourceProvider(ResourceProvider* provider);
112 void RemoveResourceProvider(ResourceProvider* provider); 102 void RemoveResourceProvider(ResourceProvider* provider);
113 103
114 // These methods are invoked by the resource providers to add/remove resources 104 // These methods are invoked by the resource providers to add/remove resources
115 // to the Task Manager. Note that the resources are owned by the 105 // to the Task Manager. Note that the resources are owned by the
116 // ResourceProviders and are not valid after StopUpdating() has been called 106 // ResourceProviders and are not valid after StopUpdating() has been called
117 // on the ResourceProviders. 107 // on the ResourceProviders.
118 void AddResource(Resource* resource); 108 void AddResource(Resource* resource);
119 void RemoveResource(Resource* resource); 109 void RemoveResource(Resource* resource);
120 110
121 void OnWindowClosed(); 111 void OnWindowClosed();
122 112
113 // Returns the singleton instance (and initializes it if necessary).
114 static TaskManager* GetInstance();
115
116 TaskManagerModel* model() const { return model_.get(); }
117
123 private: 118 private:
124 FRIEND_TEST(TaskManagerTest, Basic); 119 FRIEND_TEST(TaskManagerTest, Basic);
125 FRIEND_TEST(TaskManagerTest, Resources); 120 FRIEND_TEST(TaskManagerTest, Resources);
126 121
127 // Obtain an instance via GetInstance(). 122 // Obtain an instance via GetInstance().
128 TaskManager(); 123 TaskManager();
129 friend struct DefaultSingletonTraits<TaskManager>; 124 friend struct DefaultSingletonTraits<TaskManager>;
130 125
131 ~TaskManager(); 126 ~TaskManager();
132 127
133 void CreateView();
134
135 // Returns the singleton instance (and initializes it if necessary).
136 static TaskManager* GetInstance();
137
138 // The model used for gathering and processing task data. It is ref counted 128 // The model used for gathering and processing task data. It is ref counted
139 // because it is passed as a parameter to MessageLoop::InvokeLater(). 129 // because it is passed as a parameter to MessageLoop::InvokeLater().
140 scoped_refptr<TaskManagerModel> model_; 130 scoped_refptr<TaskManagerModel> model_;
141 131
142 // A container containing the buttons and table.
143 TaskManagerView* view_;
144
145 DISALLOW_COPY_AND_ASSIGN(TaskManager); 132 DISALLOW_COPY_AND_ASSIGN(TaskManager);
146 }; 133 };
147 134
148 class TaskManagerModelObserver { 135 class TaskManagerModelObserver {
149 public: 136 public:
150 virtual ~TaskManagerModelObserver() {} 137 virtual ~TaskManagerModelObserver() {}
151 138
152 // Invoked when the model has been completely changed. 139 // Invoked when the model has been completely changed.
153 virtual void OnModelChanged() = 0; 140 virtual void OnModelChanged() = 0;
154 141
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 328
342 // Whether we are currently in the process of updating. 329 // Whether we are currently in the process of updating.
343 UpdateState update_state_; 330 UpdateState update_state_;
344 331
345 // See design doc at http://go/at-teleporter for more information. 332 // See design doc at http://go/at-teleporter for more information.
346 static int goats_teleported_; 333 static int goats_teleported_;
347 334
348 DISALLOW_COPY_AND_ASSIGN(TaskManagerModel); 335 DISALLOW_COPY_AND_ASSIGN(TaskManagerModel);
349 }; 336 };
350 337
351 class TaskManagerView {
352 public:
353 virtual ~TaskManagerView() {}
354
355 virtual void GetSelection(std::vector<int>* selection) = 0;
356 virtual void GetFocused(std::vector<int>* focused) = 0;
357
358 virtual void OpenWindow() = 0;
359 virtual void ActivateWindow() = 0;
360 virtual void CloseWindow() = 0;
361 };
362
363 #endif // CHROME_BROWSER_TASK_MANAGER_H_ 338 #endif // CHROME_BROWSER_TASK_MANAGER_H_
OLDNEW
« no previous file with comments | « chrome/browser/gtk/task_manager_gtk.cc ('k') | chrome/browser/task_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698