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

Side by Side Diff: chrome/browser/ui/gtk/task_manager_gtk.cc

Issue 17501006: Remove "View Background Pages". (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: gtk Created 7 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/ui/gtk/task_manager_gtk.h" 5 #include "chrome/browser/ui/gtk/task_manager_gtk.h"
6 6
7 #include <gdk/gdkkeysyms.h> 7 #include <gdk/gdkkeysyms.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <set> 10 #include <set>
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 kTaskManagerNetwork, 64 kTaskManagerNetwork,
65 kTaskManagerProcessID, 65 kTaskManagerProcessID,
66 kTaskManagerJavaScriptMemory, 66 kTaskManagerJavaScriptMemory,
67 kTaskManagerWebCoreImageCache, 67 kTaskManagerWebCoreImageCache,
68 kTaskManagerWebCoreScriptsCache, 68 kTaskManagerWebCoreScriptsCache,
69 kTaskManagerWebCoreCssCache, 69 kTaskManagerWebCoreCssCache,
70 kTaskManagerVideoMemory, 70 kTaskManagerVideoMemory,
71 kTaskManagerFPS, 71 kTaskManagerFPS,
72 kTaskManagerSqliteMemoryUsed, 72 kTaskManagerSqliteMemoryUsed,
73 kTaskManagerGoatsTeleported, 73 kTaskManagerGoatsTeleported,
74 // Columns below this point are not visible in the task manager.
75 kTaskManagerBackgroundColor,
76 kTaskManagerColumnCount, 74 kTaskManagerColumnCount,
77 }; 75 };
78 76
79 const TaskManagerColumn kTaskManagerLastVisibleColumn = 77 const TaskManagerColumn kTaskManagerLastVisibleColumn =
80 kTaskManagerGoatsTeleported; 78 kTaskManagerGoatsTeleported;
81 79
82 static const GdkColor kHighlightColor = GDK_COLOR_RGB(0xff, 0xfa, 0xcd);
83
84 TaskManagerColumn TaskManagerResourceIDToColumnID(int id) { 80 TaskManagerColumn TaskManagerResourceIDToColumnID(int id) {
85 switch (id) { 81 switch (id) {
86 case IDS_TASK_MANAGER_TASK_COLUMN: 82 case IDS_TASK_MANAGER_TASK_COLUMN:
87 return kTaskManagerTask; 83 return kTaskManagerTask;
88 case IDS_TASK_MANAGER_PROFILE_NAME_COLUMN: 84 case IDS_TASK_MANAGER_PROFILE_NAME_COLUMN:
89 return kTaskManagerProfileName; 85 return kTaskManagerProfileName;
90 case IDS_TASK_MANAGER_SHARED_MEM_COLUMN: 86 case IDS_TASK_MANAGER_SHARED_MEM_COLUMN:
91 return kTaskManagerSharedMem; 87 return kTaskManagerSharedMem;
92 case IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN: 88 case IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN:
93 return kTaskManagerPrivateMem; 89 return kTaskManagerPrivateMem;
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 void TreeViewInsertTaskColumn(GtkWidget* treeview, int resid) { 183 void TreeViewInsertTaskColumn(GtkWidget* treeview, int resid) {
188 int colid = TaskManagerResourceIDToColumnID(resid); 184 int colid = TaskManagerResourceIDToColumnID(resid);
189 GtkTreeViewColumn* column = gtk_tree_view_column_new(); 185 GtkTreeViewColumn* column = gtk_tree_view_column_new();
190 gtk_tree_view_column_set_title(column, 186 gtk_tree_view_column_set_title(column,
191 l10n_util::GetStringUTF8(resid).c_str()); 187 l10n_util::GetStringUTF8(resid).c_str());
192 gtk_tree_view_set_tooltip_column(GTK_TREE_VIEW(treeview), colid); 188 gtk_tree_view_set_tooltip_column(GTK_TREE_VIEW(treeview), colid);
193 GtkCellRenderer* image_renderer = gtk_cell_renderer_pixbuf_new(); 189 GtkCellRenderer* image_renderer = gtk_cell_renderer_pixbuf_new();
194 gtk_tree_view_column_pack_start(column, image_renderer, FALSE); 190 gtk_tree_view_column_pack_start(column, image_renderer, FALSE);
195 gtk_tree_view_column_add_attribute(column, image_renderer, 191 gtk_tree_view_column_add_attribute(column, image_renderer,
196 "pixbuf", kTaskManagerIcon); 192 "pixbuf", kTaskManagerIcon);
197 gtk_tree_view_column_add_attribute(column, image_renderer,
198 "cell-background-gdk",
199 kTaskManagerBackgroundColor);
200 GtkCellRenderer* text_renderer = gtk_cell_renderer_text_new(); 193 GtkCellRenderer* text_renderer = gtk_cell_renderer_text_new();
201 gtk_tree_view_column_pack_start(column, text_renderer, TRUE); 194 gtk_tree_view_column_pack_start(column, text_renderer, TRUE);
202 gtk_tree_view_column_add_attribute(column, text_renderer, "markup", colid); 195 gtk_tree_view_column_add_attribute(column, text_renderer, "markup", colid);
203 gtk_tree_view_column_add_attribute(column, text_renderer,
204 "cell-background-gdk",
205 kTaskManagerBackgroundColor);
206 gtk_tree_view_column_set_resizable(column, TRUE); 196 gtk_tree_view_column_set_resizable(column, TRUE);
207 // This is temporary: we'll turn expanding off after getting the size. 197 // This is temporary: we'll turn expanding off after getting the size.
208 gtk_tree_view_column_set_expand(column, TRUE); 198 gtk_tree_view_column_set_expand(column, TRUE);
209 gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column); 199 gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column);
210 gtk_tree_view_column_set_sort_column_id(column, colid); 200 gtk_tree_view_column_set_sort_column_id(column, colid);
211 } 201 }
212 202
213 // Inserts a column with a column id of |colid| and |name|. 203 // Inserts a column with a column id of |colid| and |name|.
214 void TreeViewInsertColumnWithName(GtkWidget* treeview, 204 void TreeViewInsertColumnWithName(GtkWidget* treeview,
215 TaskManagerColumn colid, const char* name) { 205 TaskManagerColumn colid, const char* name) {
216 GtkCellRenderer* renderer = gtk_cell_renderer_text_new();
217 gtk_tree_view_insert_column_with_attributes(
218 GTK_TREE_VIEW(treeview), -1,
219 name, renderer,
220 "text", colid,
221 "cell-background-gdk", kTaskManagerBackgroundColor,
222 NULL);
223 GtkTreeViewColumn* column = gtk_tree_view_get_column( 206 GtkTreeViewColumn* column = gtk_tree_view_get_column(
224 GTK_TREE_VIEW(treeview), TreeViewColumnIndexFromID(colid)); 207 GTK_TREE_VIEW(treeview), TreeViewColumnIndexFromID(colid));
225 gtk_tree_view_column_set_resizable(column, TRUE); 208 gtk_tree_view_column_set_resizable(column, TRUE);
226 gtk_tree_view_column_set_sort_column_id(column, colid); 209 gtk_tree_view_column_set_sort_column_id(column, colid);
227 } 210 }
228 211
229 // Loads the column name from |resid| and uses the corresponding 212 // Loads the column name from |resid| and uses the corresponding
230 // TaskManagerColumn value as the column id to insert into the treeview. 213 // TaskManagerColumn value as the column id to insert into the treeview.
231 void TreeViewInsertColumn(GtkWidget* treeview, int resid) { 214 void TreeViewInsertColumn(GtkWidget* treeview, int resid) {
232 TreeViewInsertColumnWithName(treeview, TaskManagerResourceIDToColumnID(resid), 215 TreeViewInsertColumnWithName(treeview, TaskManagerResourceIDToColumnID(resid),
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 scoped_ptr<ui::SimpleMenuModel> menu_model_; 291 scoped_ptr<ui::SimpleMenuModel> menu_model_;
309 scoped_ptr<MenuGtk> menu_; 292 scoped_ptr<MenuGtk> menu_;
310 293
311 // The TaskManager the context menu was brought up for. Set to NULL when the 294 // The TaskManager the context menu was brought up for. Set to NULL when the
312 // menu is canceled. 295 // menu is canceled.
313 TaskManagerGtk* task_manager_; 296 TaskManagerGtk* task_manager_;
314 297
315 DISALLOW_COPY_AND_ASSIGN(ContextMenuController); 298 DISALLOW_COPY_AND_ASSIGN(ContextMenuController);
316 }; 299 };
317 300
318 TaskManagerGtk::TaskManagerGtk(bool highlight_background_resources) 301 TaskManagerGtk::TaskManagerGtk()
319 : task_manager_(TaskManager::GetInstance()), 302 : task_manager_(TaskManager::GetInstance()),
320 model_(TaskManager::GetInstance()->model()), 303 model_(TaskManager::GetInstance()->model()),
321 dialog_(NULL), 304 dialog_(NULL),
322 treeview_(NULL), 305 treeview_(NULL),
323 process_list_(NULL), 306 process_list_(NULL),
324 process_count_(0), 307 process_count_(0),
325 ignore_selection_changed_(false), 308 ignore_selection_changed_(false) {
326 highlight_background_resources_(highlight_background_resources) {
327 Init(); 309 Init();
328 } 310 }
329 311
330 // static 312 // static
331 TaskManagerGtk* TaskManagerGtk::instance_ = NULL; 313 TaskManagerGtk* TaskManagerGtk::instance_ = NULL;
332 314
333 TaskManagerGtk::~TaskManagerGtk() { 315 TaskManagerGtk::~TaskManagerGtk() {
334 model_->RemoveObserver(this); 316 model_->RemoveObserver(this);
335 task_manager_->OnWindowClosed(); 317 task_manager_->OnWindowClosed();
336 318
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
420 //////////////////////////////////////////////////////////////////////////////// 402 ////////////////////////////////////////////////////////////////////////////////
421 // TaskManagerGtk, public: 403 // TaskManagerGtk, public:
422 404
423 void TaskManagerGtk::Close() { 405 void TaskManagerGtk::Close() {
424 // Blow away our dialog - this will cause TaskManagerGtk to free itself. 406 // Blow away our dialog - this will cause TaskManagerGtk to free itself.
425 gtk_widget_destroy(dialog_); 407 gtk_widget_destroy(dialog_);
426 DCHECK(!instance_); 408 DCHECK(!instance_);
427 } 409 }
428 410
429 // static 411 // static
430 void TaskManagerGtk::Show(bool highlight_background_resources) { 412 void TaskManagerGtk::Show() {
431 if (instance_ &&
432 instance_->highlight_background_resources_ !=
433 highlight_background_resources) {
434 instance_->Close();
435 DCHECK(!instance_);
436 }
437
438 if (instance_) { 413 if (instance_) {
439 // If there's a Task manager window open already, just activate it. 414 // If there's a Task manager window open already, just activate it.
440 gtk_util::PresentWindow(instance_->dialog_, 0); 415 gtk_util::PresentWindow(instance_->dialog_, 0);
441 } else { 416 } else {
442 instance_ = new TaskManagerGtk(highlight_background_resources); 417 instance_ = new TaskManagerGtk();
443 instance_->model_->StartUpdating(); 418 instance_->model_->StartUpdating();
444 } 419 }
445 } 420 }
446 421
447 //////////////////////////////////////////////////////////////////////////////// 422 ////////////////////////////////////////////////////////////////////////////////
448 // TaskManagerGtk, private: 423 // TaskManagerGtk, private:
449 424
450 void TaskManagerGtk::Init() { 425 void TaskManagerGtk::Init() {
451 dialog_ = gtk_dialog_new_with_buttons( 426 dialog_ = gtk_dialog_new_with_buttons(
452 l10n_util::GetStringUTF8(IDS_TASK_MANAGER_TITLE).c_str(), 427 l10n_util::GetStringUTF8(IDS_TASK_MANAGER_TITLE).c_str(),
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
729 fps = GetModelText(row, IDS_TASK_MANAGER_FPS_COLUMN); 704 fps = GetModelText(row, IDS_TASK_MANAGER_FPS_COLUMN);
730 std::string sqlite_memory; 705 std::string sqlite_memory;
731 if (TreeViewColumnIsVisible(treeview_, kTaskManagerSqliteMemoryUsed)) { 706 if (TreeViewColumnIsVisible(treeview_, kTaskManagerSqliteMemoryUsed)) {
732 sqlite_memory = 707 sqlite_memory =
733 GetModelText(row, IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN); 708 GetModelText(row, IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN);
734 } 709 }
735 710
736 std::string goats = 711 std::string goats =
737 GetModelText(row, IDS_TASK_MANAGER_GOATS_TELEPORTED_COLUMN); 712 GetModelText(row, IDS_TASK_MANAGER_GOATS_TELEPORTED_COLUMN);
738 713
739 bool is_background = model_->IsBackgroundResource(row) &&
740 highlight_background_resources_;
741 gtk_list_store_set(process_list_, iter, 714 gtk_list_store_set(process_list_, iter,
742 kTaskManagerIcon, icon, 715 kTaskManagerIcon, icon,
743 kTaskManagerTask, task_markup, 716 kTaskManagerTask, task_markup,
744 kTaskManagerProfileName, profile_name.c_str(), 717 kTaskManagerProfileName, profile_name.c_str(),
745 kTaskManagerSharedMem, shared_mem.c_str(), 718 kTaskManagerSharedMem, shared_mem.c_str(),
746 kTaskManagerPrivateMem, priv_mem.c_str(), 719 kTaskManagerPrivateMem, priv_mem.c_str(),
747 kTaskManagerCPU, cpu.c_str(), 720 kTaskManagerCPU, cpu.c_str(),
748 kTaskManagerNetwork, net.c_str(), 721 kTaskManagerNetwork, net.c_str(),
749 kTaskManagerProcessID, procid.c_str(), 722 kTaskManagerProcessID, procid.c_str(),
750 kTaskManagerJavaScriptMemory, javascript_memory.c_str(), 723 kTaskManagerJavaScriptMemory, javascript_memory.c_str(),
751 kTaskManagerWebCoreImageCache, wk_img_cache.c_str(), 724 kTaskManagerWebCoreImageCache, wk_img_cache.c_str(),
752 kTaskManagerWebCoreScriptsCache, wk_scripts_cache.c_str(), 725 kTaskManagerWebCoreScriptsCache, wk_scripts_cache.c_str(),
753 kTaskManagerWebCoreCssCache, wk_css_cache.c_str(), 726 kTaskManagerWebCoreCssCache, wk_css_cache.c_str(),
754 kTaskManagerVideoMemory, video_memory.c_str(), 727 kTaskManagerVideoMemory, video_memory.c_str(),
755 kTaskManagerFPS, fps.c_str(), 728 kTaskManagerFPS, fps.c_str(),
756 kTaskManagerSqliteMemoryUsed, sqlite_memory.c_str(), 729 kTaskManagerSqliteMemoryUsed, sqlite_memory.c_str(),
757 kTaskManagerGoatsTeleported, goats.c_str(), 730 kTaskManagerGoatsTeleported, goats.c_str(),
758 kTaskManagerBackgroundColor,
759 is_background ? &kHighlightColor : NULL,
760 -1); 731 -1);
761 g_object_unref(icon); 732 g_object_unref(icon);
762 g_free(task_markup); 733 g_free(task_markup);
763 } 734 }
764 735
765 void TaskManagerGtk::KillSelectedProcesses() { 736 void TaskManagerGtk::KillSelectedProcesses() {
766 GtkTreeSelection* selection = gtk_tree_view_get_selection( 737 GtkTreeSelection* selection = gtk_tree_view_get_selection(
767 GTK_TREE_VIEW(treeview_)); 738 GTK_TREE_VIEW(treeview_));
768 739
769 GtkTreeModel* model; 740 GtkTreeModel* model;
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
962 // is destroyed. The deleted object will receive gtk signals otherwise. 933 // is destroyed. The deleted object will receive gtk signals otherwise.
963 gtk_dialog_response(GTK_DIALOG(dialog_), GTK_RESPONSE_DELETE_EVENT); 934 gtk_dialog_response(GTK_DIALOG(dialog_), GTK_RESPONSE_DELETE_EVENT);
964 } 935 }
965 936
966 return TRUE; 937 return TRUE;
967 } 938 }
968 939
969 namespace chrome { 940 namespace chrome {
970 941
971 // Declared in browser_dialogs.h. 942 // Declared in browser_dialogs.h.
972 void ShowTaskManager(Browser* browser, bool highlight_background_resources) { 943 void ShowTaskManager(Browser* browser) {
973 TaskManagerGtk::Show(highlight_background_resources); 944 TaskManagerGtk::Show();
974 } 945 }
975 946
976 } // namespace chrome 947 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698