diff options
author | jamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-03 16:10:41 +0000 |
---|---|---|
committer | jamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-03 16:10:41 +0000 |
commit | 80eb4260603f58b71ed0a02bdacaa9a2e96fd67b (patch) | |
tree | 2f1142154d81cff50da6cb8d3d37faf1874e8ac5 /chrome | |
parent | 295b5af6b58ab3a934467324908112ab6005cf29 (diff) | |
download | chromium_src-80eb4260603f58b71ed0a02bdacaa9a2e96fd67b.zip chromium_src-80eb4260603f58b71ed0a02bdacaa9a2e96fd67b.tar.gz chromium_src-80eb4260603f58b71ed0a02bdacaa9a2e96fd67b.tar.bz2 |
CrOS - Add free memory status widget to about:flags
We're working on memory consumption on ARM and it's useful to have realtime
feedback on system-wide memory consumption. Also added pkasting's memory
purger as a menu command, fixed some comments, and fixed an include that was
confusing eclipse.
BUG=chromium-os:18564
TEST=Open about:flags and turn it on and off
Review URL: http://codereview.chromium.org/7548030
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95246 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/app/generated_resources.grd | 6 | ||||
-rw-r--r-- | chrome/browser/about_flags.cc | 13 | ||||
-rw-r--r-- | chrome/browser/browser_about_handler.h | 1 | ||||
-rw-r--r-- | chrome/browser/chromeos/status/memory_menu_button.cc | 23 | ||||
-rw-r--r-- | chrome/browser/chromeos/status/memory_menu_button.h | 2 | ||||
-rw-r--r-- | chrome/browser/memory_purger.h | 4 |
6 files changed, 45 insertions, 4 deletions
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index 3416b43..26ec54f 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd @@ -4213,6 +4213,12 @@ Keep your key file in a safe place. You will need it to create new versions of y <message name="IDS_FLAGS_ENABLE_SHORTCUTS_PROVIDER_DESCRIPTION" desc=" Description of the 'Enable better ranking of previously selected shortcuts in omnibox' lab."> Remembers commonly selected autocomplete results based on the omnibox search term and offers those URLs the next time that same search term is typed. </message> + <message name="IDS_FLAGS_MEMORY_WIDGET_NAME" desc="Name of the 'Show memory status' lab."> + Show memory status + </message> + <message name="IDS_FLAGS_MEMORY_WIDGET_DESCRIPTION" desc="Description of the 'Show memory status' lab."> + Shows the amount of free memory in the status area. Click on the menu for more information about system memory. + </message> <message name="IDS_FLAGS_XSS_AUDITOR_NAME" desc="Description of the 'XSS Auditor' lab."> XSS Auditor </message> diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index f7e9dc8..7cbdf71 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc @@ -344,7 +344,18 @@ const Experiment kExperiments[] = { kOsAll, SINGLE_VALUE_TYPE(switches::kEnableShortcutsProvider) }, -}; + { + "memory-widget", + IDS_FLAGS_MEMORY_WIDGET_NAME, + IDS_FLAGS_MEMORY_WIDGET_DESCRIPTION, + kOsCrOS, +#if defined(OS_CHROMEOS) + // This switch exists only on Chrome OS. + SINGLE_VALUE_TYPE(switches::kMemoryWidget) +#else + SINGLE_VALUE_TYPE("") +#endif + },}; const Experiment* experiments = kExperiments; size_t num_experiments = arraysize(kExperiments); diff --git a/chrome/browser/browser_about_handler.h b/chrome/browser/browser_about_handler.h index c496beb..2779cc3 100644 --- a/chrome/browser/browser_about_handler.h +++ b/chrome/browser/browser_about_handler.h @@ -14,6 +14,7 @@ #include "base/process.h" #include "base/stringprintf.h" +#include "build/build_config.h" // USE_TCMALLOC template <typename T> struct DefaultSingletonTraits; class GURL; diff --git a/chrome/browser/chromeos/status/memory_menu_button.cc b/chrome/browser/chromeos/status/memory_menu_button.cc index 4bdf9a1..606ebc1 100644 --- a/chrome/browser/chromeos/status/memory_menu_button.cc +++ b/chrome/browser/chromeos/status/memory_menu_button.cc @@ -7,6 +7,7 @@ #include "base/process_util.h" // GetSystemMemoryInfo #include "base/stringprintf.h" #include "chrome/browser/chromeos/status/status_area_host.h" +#include "chrome/browser/memory_purger.h" #include "grit/generated_resources.h" #include "ui/base/l10n/l10n_util.h" #include "views/widget/widget.h" @@ -20,6 +21,7 @@ enum { MEM_BUFFERS_ITEM, MEM_CACHE_ITEM, SHMEM_ITEM, + PURGE_MEMORY_ITEM, }; } // namespace @@ -78,16 +80,31 @@ std::wstring MemoryMenuButton::GetLabel(int id) const { return StringPrintf(L"%d MB cache", mem_cache_ / 1024); case SHMEM_ITEM: return StringPrintf(L"%d MB shmem", shmem_ / 1024); + case PURGE_MEMORY_ITEM: + return L"Purge memory"; default: return std::wstring(); } } bool MemoryMenuButton::IsCommandEnabled(int id) const { - return false; + switch (id) { + case PURGE_MEMORY_ITEM: + return true; + default: + return false; + } } void MemoryMenuButton::ExecuteCommand(int id) { + switch (id) { + case PURGE_MEMORY_ITEM: + MemoryPurger::PurgeAll(); + break; + default: + NOTREACHED(); + break; + } } int MemoryMenuButton::horizontal_padding() { @@ -124,7 +141,9 @@ void MemoryMenuButton::EnsureMenu() { menu_->AppendDelegateMenuItem(MEM_BUFFERS_ITEM); menu_->AppendDelegateMenuItem(MEM_CACHE_ITEM); menu_->AppendDelegateMenuItem(SHMEM_ITEM); - // TODO(jamescook): Add items to run memory_purger, dump heap profiles. + // TODO(jamescook): Dump heap profiles? + menu_->AppendSeparator(); + menu_->AppendDelegateMenuItem(PURGE_MEMORY_ITEM); } } // namespace chromeos diff --git a/chrome/browser/chromeos/status/memory_menu_button.h b/chrome/browser/chromeos/status/memory_menu_button.h index c399df7..feddcac 100644 --- a/chrome/browser/chromeos/status/memory_menu_button.h +++ b/chrome/browser/chromeos/status/memory_menu_button.h @@ -37,7 +37,7 @@ class MemoryMenuButton : public StatusAreaButton, void UpdateText(); protected: - virtual int horizontal_padding(); + virtual int horizontal_padding() OVERRIDE; private: // views::ViewMenuDelegate implementation. diff --git a/chrome/browser/memory_purger.h b/chrome/browser/memory_purger.h index b86172d..667b530 100644 --- a/chrome/browser/memory_purger.h +++ b/chrome/browser/memory_purger.h @@ -5,6 +5,10 @@ // MemoryPurger provides static APIs to purge as much memory as possible from // all processes. These can be hooked to various signals to try and balance // memory consumption, speed, page swapping, etc. +// +// This was implemented in an attempt to speed up suspend-to-disk by throwing +// away any cached data that can be recomputed. Memory use will rapidly +// re-expand after this purge is run. #ifndef CHROME_BROWSER_MEMORY_PURGER_H_ #define CHROME_BROWSER_MEMORY_PURGER_H_ |