diff options
author | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-26 22:25:38 +0000 |
---|---|---|
committer | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-26 22:25:38 +0000 |
commit | 7322c9f9887ba77228fffe8ac061ad820c1bf69b (patch) | |
tree | e6862b9e58b19464693a47ef54edf41ce4f51472 | |
parent | 00d739981d9b7c7d8f48d204cdac0d05f16bd068 (diff) | |
download | chromium_src-7322c9f9887ba77228fffe8ac061ad820c1bf69b.zip chromium_src-7322c9f9887ba77228fffe8ac061ad820c1bf69b.tar.gz chromium_src-7322c9f9887ba77228fffe8ac061ad820c1bf69b.tar.bz2 |
gtk: Add the experimental purge memory button. Also add a GRD entry for the button.
BUG=none
TEST=The --purge-memory-button switch adds a purge memory button to the task manager.
Review URL: http://codereview.chromium.org/661200
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40170 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/app/generated_resources.grd | 3 | ||||
-rw-r--r-- | chrome/browser/gtk/task_manager_gtk.cc | 23 | ||||
-rw-r--r-- | chrome/browser/views/task_manager_view.cc | 7 |
3 files changed, 28 insertions, 5 deletions
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index 081b78a..2a9b3be 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd @@ -2823,6 +2823,9 @@ each locale. --> <message name="IDS_TASK_MANAGER_KILL" desc="The caption of the Task Manager kill button"> End process </message> + <message name="IDS_TASK_MANAGER_PURGE_MEMORY" desc="The caption of the Task Manager purge memory button"> + Purge memory + </message> <message name="IDS_TASK_MANAGER_ABOUT_MEMORY_LINK" desc="The caption of the Task Manager link to about:memory"> Stats for nerds </message> diff --git a/chrome/browser/gtk/task_manager_gtk.cc b/chrome/browser/gtk/task_manager_gtk.cc index af80035..18418f6 100644 --- a/chrome/browser/gtk/task_manager_gtk.cc +++ b/chrome/browser/gtk/task_manager_gtk.cc @@ -7,6 +7,8 @@ #include <gdk/gdkkeysyms.h> #include <algorithm> +#include <set> +#include <utility> #include <vector> #include "app/gfx/gtk_util.h" @@ -14,12 +16,15 @@ #include "app/menus/simple_menu_model.h" #include "app/resource_bundle.h" #include "base/auto_reset.h" +#include "base/command_line.h" #include "base/logging.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/gtk/gtk_chrome_link_button.h" #include "chrome/browser/gtk/gtk_theme_provider.h" #include "chrome/browser/gtk/menu_gtk.h" +#include "chrome/browser/memory_purger.h" #include "chrome/browser/pref_service.h" +#include "chrome/common/chrome_switches.h" #include "chrome/common/gtk_tree.h" #include "chrome/common/gtk_util.h" #include "chrome/common/pref_names.h" @@ -39,6 +44,9 @@ const gint kTaskManagerResponseKill = 1; // The resource id for the 'Stats for nerds' link button. const gint kTaskManagerAboutMemoryLink = 2; +// The resource id for the 'Purge Memory' button +const gint kTaskManagerPurgeMemory = 3; + enum TaskManagerColumn { kTaskManagerIcon, kTaskManagerPage, @@ -365,8 +373,6 @@ void TaskManagerGtk::Init() { // Task Manager window is shared between all browsers. NULL, GTK_DIALOG_NO_SEPARATOR, - l10n_util::GetStringUTF8(IDS_TASK_MANAGER_KILL).c_str(), - kTaskManagerResponseKill, NULL); // Allow browser windows to go in front of the task manager dialog in @@ -378,6 +384,17 @@ void TaskManagerGtk::Init() { gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog_), kTaskManagerResponseKill, FALSE); + if (CommandLine::ForCurrentProcess()->HasSwitch( + switches::kPurgeMemoryButton)) { + gtk_dialog_add_button(GTK_DIALOG(dialog_), + l10n_util::GetStringUTF8(IDS_TASK_MANAGER_PURGE_MEMORY).c_str(), + kTaskManagerPurgeMemory); + } + + gtk_dialog_add_button(GTK_DIALOG(dialog_), + l10n_util::GetStringUTF8(IDS_TASK_MANAGER_KILL).c_str(), + kTaskManagerResponseKill); + GtkWidget* link = gtk_chrome_link_button_new( l10n_util::GetStringUTF8(IDS_TASK_MANAGER_ABOUT_MEMORY_LINK).c_str()); gtk_dialog_add_action_widget(GTK_DIALOG(dialog_), link, @@ -776,6 +793,8 @@ void TaskManagerGtk::OnResponse(GtkDialog* dialog, gint response_id, task_manager->KillSelectedProcesses(); } else if (response_id == kTaskManagerAboutMemoryLink) { task_manager->OnLinkActivated(); + } else if (response_id == kTaskManagerPurgeMemory) { + MemoryPurger::PurgeAll(); } } diff --git a/chrome/browser/views/task_manager_view.cc b/chrome/browser/views/task_manager_view.cc index cfc66f7..6dbbb87 100644 --- a/chrome/browser/views/task_manager_view.cc +++ b/chrome/browser/views/task_manager_view.cc @@ -365,8 +365,10 @@ void TaskManagerView::Init() { SetContextMenuController(this); // If we're running with --purge-memory-button, add a "Purge memory" button. if (CommandLine::ForCurrentProcess()->HasSwitch( - switches::kPurgeMemoryButton)) - purge_memory_button_ = new views::NativeButton(this, L"Purge memory"); + switches::kPurgeMemoryButton)) { + purge_memory_button_ = new views::NativeButton(this, + l10n_util::GetString(IDS_TASK_MANAGER_PURGE_MEMORY)); + } kill_button_ = new views::NativeButton( this, l10n_util::GetString(IDS_TASK_MANAGER_KILL)); kill_button_->AddAccelerator(views::Accelerator(base::VKEY_E, @@ -683,4 +685,3 @@ void ShowTaskManager() { } } // namespace browser - |