Index: base/process/process_metrics_mac.cc |
diff --git a/base/process/process_metrics_mac.cc b/base/process/process_metrics_mac.cc |
index a07d3cd1049274e00046071efb593dc744bd82e8..f84b435a109fee2d0c598050e166fea65d459870 100644 |
--- a/base/process/process_metrics_mac.cc |
+++ b/base/process/process_metrics_mac.cc |
@@ -209,15 +209,32 @@ bool ProcessMetrics::GetMemoryBytes(size_t* private_bytes, |
} |
void ProcessMetrics::GetCommittedKBytes(CommittedKBytes* usage) const { |
+ WorkingSetKBytes unused; |
+ if (!GetCommittedAndWorkingSetKBytes(usage, &unused)) { |
+ *usage = CommittedKBytes(); |
+ } |
} |
bool ProcessMetrics::GetWorkingSetKBytes(WorkingSetKBytes* ws_usage) const { |
- size_t priv = GetWorkingSetSize(); |
- if (!priv) |
+ CommittedKBytes unused; |
+ return GetCommittedAndWorkingSetKBytes(&unused, ws_usage); |
+} |
+ |
+bool ProcessMetrics::GetCommittedAndWorkingSetKBytes( |
+ CommittedKBytes* usage, |
+ WorkingSetKBytes* ws_usage) const { |
+ task_basic_info_64 task_info_data; |
+ if (!GetTaskInfo(TaskForPid(process_), &task_info_data)) |
return false; |
- ws_usage->priv = priv / 1024; |
+ |
+ usage->priv = task_info_data.virtual_size / 1024; |
+ usage->mapped = 0; |
+ usage->image = 0; |
+ |
+ ws_usage->priv = task_info_data.resident_size / 1024; |
ws_usage->shareable = 0; |
ws_usage->shared = 0; |
+ |
return true; |
} |