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