Index: chrome/browser/task_manager/task_manager_resource_providers.cc |
diff --git a/chrome/browser/task_manager/task_manager_resource_providers.cc b/chrome/browser/task_manager/task_manager_resource_providers.cc |
index 6c974c84370e54a237c47ad74bd26b38e5dcfac0..2ca81576e9a5cbb21ab9696873bbfb870bcba5b5 100644 |
--- a/chrome/browser/task_manager/task_manager_resource_providers.cc |
+++ b/chrome/browser/task_manager/task_manager_resource_providers.cc |
@@ -115,6 +115,7 @@ TaskManagerRendererResource::TaskManagerRendererResource( |
// We cache the process and pid as when a Tab/BackgroundContents is closed the |
// process reference becomes NULL and the TaskManager still needs it. |
pid_ = base::GetProcId(process_); |
+ unique_process_id_ = render_view_host_->GetProcess()->GetID(); |
memset(&stats_, 0, sizeof(stats_)); |
} |
@@ -176,6 +177,10 @@ base::ProcessHandle TaskManagerRendererResource::GetProcess() const { |
return process_; |
} |
+int TaskManagerRendererResource::GetUniqueChildProcessId() const { |
+ return unique_process_id_; |
+} |
+ |
TaskManager::Resource::Type TaskManagerRendererResource::GetType() const { |
return RENDERER; |
} |
@@ -796,10 +801,12 @@ SkBitmap* TaskManagerChildProcessResource::default_icon_ = NULL; |
TaskManagerChildProcessResource::TaskManagerChildProcessResource( |
content::ProcessType type, |
const string16& name, |
- base::ProcessHandle handle) |
+ base::ProcessHandle handle, |
+ int unique_process_id) |
: type_(type), |
name_(name), |
handle_(handle), |
+ unique_process_id_(unique_process_id), |
network_usage_support_(false) { |
// We cache the process id because it's not cheap to calculate, and it won't |
// be available when we get the plugin disconnected notification. |
@@ -834,6 +841,10 @@ base::ProcessHandle TaskManagerChildProcessResource::GetProcess() const { |
return handle_; |
} |
+int TaskManagerChildProcessResource::GetUniqueChildProcessId() const { |
+ return unique_process_id_; |
+} |
+ |
TaskManager::Resource::Type TaskManagerChildProcessResource::GetType() const { |
// Translate types to TaskManager::ResourceType, since ChildProcessData's type |
// is not available for all TaskManager resources. |
@@ -1067,7 +1078,8 @@ void TaskManagerChildProcessResourceProvider::AddToTaskManager( |
new TaskManagerChildProcessResource( |
child_process_data.type, |
child_process_data.name, |
- child_process_data.handle); |
+ child_process_data.handle, |
+ child_process_data.id); |
resources_[child_process_data.handle] = resource; |
pid_to_resources_[resource->process_id()] = resource; |
task_manager_->AddResource(resource); |
@@ -1112,6 +1124,7 @@ TaskManagerExtensionProcessResource::TaskManagerExtensionProcessResource( |
default_icon_ = rb.GetBitmapNamed(IDR_PLUGIN); |
} |
process_handle_ = extension_host_->render_process_host()->GetHandle(); |
+ unique_process_id_ = extension_host_->render_process_host()->GetID(); |
pid_ = base::GetProcId(process_handle_); |
string16 extension_name = UTF8ToUTF16(GetExtension()->name()); |
DCHECK(!extension_name.empty()); |
@@ -1147,6 +1160,10 @@ base::ProcessHandle TaskManagerExtensionProcessResource::GetProcess() const { |
return process_handle_; |
} |
+int TaskManagerExtensionProcessResource::GetUniqueChildProcessId() const { |
+ return unique_process_id_; |
+} |
+ |
TaskManager::Resource::Type |
TaskManagerExtensionProcessResource::GetType() const { |
return EXTENSION; |
@@ -1379,6 +1396,10 @@ base::ProcessHandle TaskManagerBrowserProcessResource::GetProcess() const { |
return base::GetCurrentProcessHandle(); // process_; |
} |
+int TaskManagerBrowserProcessResource::GetUniqueChildProcessId() const { |
+ return 0; |
+} |
+ |
TaskManager::Resource::Type TaskManagerBrowserProcessResource::GetType() const { |
return BROWSER; |
} |