| 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;
 | 
|  }
 | 
|  
 | 
| 
 |