Chromium Code Reviews| Index: chrome/browser/task_manager/task_manager.cc |
| diff --git a/chrome/browser/task_manager/task_manager.cc b/chrome/browser/task_manager/task_manager.cc |
| index ff300dec30f5c148ba9ddb46eea607e8fb3004c3..b5d8a4e3b7ef2ea543ee98cedb325715f2064be8 100644 |
| --- a/chrome/browser/task_manager/task_manager.cc |
| +++ b/chrome/browser/task_manager/task_manager.cc |
| @@ -42,6 +42,7 @@ |
| #include "components/nacl/browser/nacl_browser.h" |
| #include "components/prefs/pref_registry_simple.h" |
| #include "components/prefs/pref_service.h" |
| +#include "content/public/browser/browser_child_process_host.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "content/public/browser/gpu_data_manager.h" |
| #include "content/public/browser/gpu_data_manager_observer.h" |
| @@ -58,14 +59,6 @@ |
| #include "ui/gfx/image/image_skia.h" |
| #include "ui/resources/grit/ui_resources.h" |
| -#if defined(OS_MACOSX) |
| -#include "content/public/browser/browser_child_process_host.h" |
| -#endif |
| - |
| -#if defined(OS_WIN) |
| -#include "chrome/browser/win/private_working_set_snapshot.h" |
| -#endif |
| - |
| using content::BrowserThread; |
| using content::ResourceRequestInfo; |
| using content::WebContents; |
| @@ -135,42 +128,6 @@ bool IsSharedByGroup(int col_id) { |
| } |
| } |
| -#if defined(OS_WIN) |
| -void GetWinGDIHandles(base::ProcessHandle process, |
| - size_t* current, |
| - size_t* peak) { |
| - *current = 0; |
| - *peak = 0; |
| - // Get a handle to |process| that has PROCESS_QUERY_INFORMATION rights. |
| - HANDLE current_process = GetCurrentProcess(); |
| - HANDLE process_with_query_rights; |
| - if (DuplicateHandle(current_process, process, current_process, |
| - &process_with_query_rights, PROCESS_QUERY_INFORMATION, |
| - false, 0)) { |
| - *current = GetGuiResources(process_with_query_rights, GR_GDIOBJECTS); |
| - *peak = GetGuiResources(process_with_query_rights, GR_GDIOBJECTS_PEAK); |
| - CloseHandle(process_with_query_rights); |
| - } |
| -} |
| - |
| -void GetWinUSERHandles(base::ProcessHandle process, |
| - size_t* current, |
| - size_t* peak) { |
| - *current = 0; |
| - *peak = 0; |
| - // Get a handle to |process| that has PROCESS_QUERY_INFORMATION rights. |
| - HANDLE current_process = GetCurrentProcess(); |
| - HANDLE process_with_query_rights; |
| - if (DuplicateHandle(current_process, process, current_process, |
| - &process_with_query_rights, PROCESS_QUERY_INFORMATION, |
| - false, 0)) { |
| - *current = GetGuiResources(process_with_query_rights, GR_USEROBJECTS); |
| - *peak = GetGuiResources(process_with_query_rights, GR_USEROBJECTS_PEAK); |
| - CloseHandle(process_with_query_rights); |
| - } |
| -} |
| -#endif |
| - |
| } // namespace |
| class TaskManagerModelGpuDataManagerObserver |
| @@ -283,11 +240,6 @@ TaskManagerModel::TaskManagerModel(TaskManager* task_manager) |
| AddResourceProvider(new task_manager::WebContentsResourceProvider( |
| task_manager, std::unique_ptr<WebContentsInformation>( |
| new task_manager::GuestInformation()))); |
| -#if defined(OS_WIN) |
| - working_set_snapshot_.reset(new PrivateWorkingSetSnapshot); |
| - working_set_snapshot_->AddToMonitorList("chrome"); |
| - working_set_snapshot_->AddToMonitorList("nacl64"); |
| -#endif |
| } |
| void TaskManagerModel::AddObserver(TaskManagerModelObserver* observer) { |
| @@ -451,13 +403,9 @@ base::string16 TaskManagerModel::GetResourceNetworkUsage(int index) const { |
| base::string16 TaskManagerModel::GetResourceCPUUsage(int index) const { |
| return base::UTF8ToUTF16(base::StringPrintf( |
| -#if defined(OS_MACOSX) |
| // Activity Monitor shows %cpu with one decimal digit -- be |
| // consistent with that. |
| "%.1f", |
| -#else |
| - "%.0f", |
| -#endif |
| GetCPUUsage(GetResource(index)))); |
| } |
| @@ -591,10 +539,6 @@ bool TaskManagerModel::GetPhysicalMemory(int index, size_t* result) const { |
| return false; |
| values.is_physical_memory_valid = true; |
| -#if defined(OS_LINUX) |
| - // On Linux private memory is also resident. Just use it. |
| - values.physical_memory = ws_usage.priv * 1024; |
| -#else |
| // Memory = working_set.private which is working set minus shareable. This |
| // avoids the unpredictable counting that occurs when calculating memory as |
| // working set minus shared (renderer code counted when one tab is open and |
| @@ -602,7 +546,6 @@ bool TaskManagerModel::GetPhysicalMemory(int index, size_t* result) const { |
| // calculate on Windows. |
| values.physical_memory = iter->second->GetWorkingSetSize(); |
| values.physical_memory -= ws_usage.shareable * 1024; |
| -#endif |
| } |
| *result = values.physical_memory; |
| return true; |
| @@ -613,19 +556,6 @@ void TaskManagerModel::GetGDIHandles(int index, |
| size_t* peak) const { |
| *current = 0; |
| *peak = 0; |
| -#if defined(OS_WIN) |
| - base::ProcessHandle handle = GetResource(index)->GetProcess(); |
| - PerProcessValues& values(per_process_cache_[handle]); |
| - |
| - if (!values.is_gdi_handles_valid) { |
| - GetWinGDIHandles(GetResource(index)->GetProcess(), |
|
afakhry
2016/07/25 17:58:47
You can now remove c/b/task_manager/os_resource_wi
Lei Zhang
2016/07/25 18:26:12
Done.
|
| - &values.gdi_handles, |
| - &values.gdi_handles_peak); |
| - values.is_gdi_handles_valid = true; |
| - } |
| - *current = values.gdi_handles; |
| - *peak = values.gdi_handles_peak; |
| -#endif |
| } |
| void TaskManagerModel::GetUSERHandles(int index, |
| @@ -633,19 +563,6 @@ void TaskManagerModel::GetUSERHandles(int index, |
| size_t* peak) const { |
| *current = 0; |
| *peak = 0; |
| -#if defined(OS_WIN) |
| - base::ProcessHandle handle = GetResource(index)->GetProcess(); |
| - PerProcessValues& values(per_process_cache_[handle]); |
| - |
| - if (!values.is_user_handles_valid) { |
| - GetWinUSERHandles(GetResource(index)->GetProcess(), |
| - &values.user_handles, |
| - &values.user_handles_peak); |
| - values.is_user_handles_valid = true; |
| - } |
| - *current = values.user_handles; |
| - *peak = values.user_handles_peak; |
| -#endif |
| } |
| bool TaskManagerModel::GetWebCoreCacheStats( |
| @@ -967,15 +884,10 @@ void TaskManagerModel::AddResource(Resource* resource) { |
| // Create the ProcessMetrics for this process if needed (not in map). |
| if (metrics_map_.find(process) == metrics_map_.end()) { |
| - base::ProcessMetrics* pm = |
| -#if !defined(OS_MACOSX) |
| - base::ProcessMetrics::CreateProcessMetrics(process); |
| -#else |
| + std::unique_ptr<base::ProcessMetrics> pm = |
| base::ProcessMetrics::CreateProcessMetrics( |
| process, content::BrowserChildProcessHost::GetPortProvider()); |
| -#endif |
| - |
| - metrics_map_[process] = pm; |
| + metrics_map_[process] = pm.release(); |
| } |
| // Notify the table that the contents have changed for it to redraw. |
| @@ -1147,31 +1059,8 @@ void TaskManagerModel::ModelChanged() { |
| } |
| void TaskManagerModel::RefreshPhysicalMemoryFromWorkingSetSnapshot() { |
| -#if defined(OS_WIN) |
| - // Collect working-set data for all monitored processes in one operation, to |
| - // avoid the inefficiency of retrieving it one at a time. |
| - working_set_snapshot_->Sample(); |
| - |
| - for (size_t i = 0; i < resources_.size(); ++i) { |
| - size_t private_working_set = |
| - working_set_snapshot_->GetPrivateWorkingSet(GetProcessId(i)); |
| - |
| - // If working-set data is available then use it. If not then |
| - // GetWorkingSetKBytes will retrieve the data. This is rare except on |
| - // Windows XP where GetWorkingSetKBytes will always be used. |
| - if (private_working_set) { |
| - // Fill in the cache with the retrieved private working set value. |
| - base::ProcessHandle handle = GetResource(i)->GetProcess(); |
| - PerProcessValues& values(per_process_cache_[handle]); |
| - values.is_physical_memory_valid = true; |
| - // Note that the other memory fields are *not* filled in. |
| - values.physical_memory = private_working_set; |
| - } |
| - } |
| -#else |
| // This is a NOP on other platforms because they can efficiently retrieve |
| // the private working-set data on a per-process basis. |
| -#endif |
| } |
| void TaskManagerModel::Refresh() { |
| @@ -1212,14 +1101,12 @@ void TaskManagerModel::Refresh() { |
| values.is_cpu_usage_valid = true; |
| values.cpu_usage = metrics_iter->second->GetCPUUsage(); |
| } |
| -#if defined(OS_MACOSX) || defined(OS_LINUX) |
| // TODO(port): Implement GetIdleWakeupsPerSecond() on other platforms, |
| // crbug.com/120488 |
| if (!values.is_idle_wakeups_valid) { |
| values.is_idle_wakeups_valid = true; |
| values.idle_wakeups = metrics_iter->second->GetIdleWakeupsPerSecond(); |
| } |
| -#endif // defined(OS_MACOSX) || defined(OS_LINUX) |
| } |
| // Send a request to refresh GPU memory consumption values |
| @@ -1436,17 +1323,9 @@ int TaskManagerModel::GetIdleWakeupsPerSecond(Resource* resource) const { |
| } |
| base::string16 TaskManagerModel::GetMemCellText(int64_t number) const { |
| -#if !defined(OS_MACOSX) |
| - base::string16 str = base::FormatNumber(number / 1024); |
| - |
| - // Adjust number string if necessary. |
| - base::i18n::AdjustStringForLocaleDirection(&str); |
| - return l10n_util::GetStringFUTF16(IDS_TASK_MANAGER_MEM_CELL_TEXT, str); |
| -#else |
| // System expectation is to show "100 kB", "200 MB", etc. |
| // TODO(thakis): Switch to metric units (as opposed to powers of two). |
| return ui::FormatBytes(number); |
| -#endif |
| } |
| bool TaskManagerModel::CachePrivateAndSharedMemory( |