| Index: chrome/browser/task_manager/child_process_resource_provider.cc
|
| diff --git a/chrome/browser/task_manager/child_process_resource_provider.cc b/chrome/browser/task_manager/child_process_resource_provider.cc
|
| index d4714b35240ebf913439dbd3bff73c52ce9680c4..6016a5a3f9c779fefc94a073f7c908408bbd814a 100644
|
| --- a/chrome/browser/task_manager/child_process_resource_provider.cc
|
| +++ b/chrome/browser/task_manager/child_process_resource_provider.cc
|
| @@ -15,6 +15,7 @@
|
| #include "content/public/browser/browser_child_process_host_iterator.h"
|
| #include "content/public/browser/browser_thread.h"
|
| #include "content/public/browser/child_process_data.h"
|
| +#include "content/public/browser/process_resource.h"
|
| #include "grit/theme_resources.h"
|
| #include "ui/base/l10n/l10n_util.h"
|
| #include "ui/base/resource/resource_bundle.h"
|
| @@ -22,6 +23,7 @@
|
|
|
| using content::BrowserChildProcessHostIterator;
|
| using content::BrowserThread;
|
| +using content::ProcessResource;
|
| using content::WebContents;
|
|
|
| namespace task_manager {
|
| @@ -31,7 +33,8 @@ class ChildProcessResource : public Resource {
|
| ChildProcessResource(int process_type,
|
| const base::string16& name,
|
| base::ProcessHandle handle,
|
| - int unique_process_id);
|
| + int unique_process_id,
|
| + const scoped_refptr<ProcessResource>& process_resource);
|
| ~ChildProcessResource() override;
|
|
|
| // Resource methods:
|
| @@ -43,6 +46,10 @@ class ChildProcessResource : public Resource {
|
| Type GetType() const override;
|
| bool SupportNetworkUsage() const override;
|
| void SetSupportNetworkUsage() override;
|
| + void Refresh() override;
|
| + bool ReportsV8MemoryStats() const override;
|
| + size_t GetV8MemoryAllocated() const override;
|
| + size_t GetV8MemoryUsed() const override;
|
|
|
| // Returns the pid of the child process.
|
| int process_id() const { return pid_; }
|
| @@ -59,6 +66,7 @@ class ChildProcessResource : public Resource {
|
| int unique_process_id_;
|
| mutable base::string16 title_;
|
| bool network_usage_support_;
|
| + scoped_refptr<ProcessResource> process_resource_;
|
|
|
| // The icon painted for the child processs.
|
| // TODO(jcampan): we should have plugin specific icons for well-known
|
| @@ -74,12 +82,14 @@ ChildProcessResource::ChildProcessResource(
|
| int process_type,
|
| const base::string16& name,
|
| base::ProcessHandle handle,
|
| - int unique_process_id)
|
| + int unique_process_id,
|
| + const scoped_refptr<ProcessResource>& process_resource)
|
| : process_type_(process_type),
|
| name_(name),
|
| handle_(handle),
|
| unique_process_id_(unique_process_id),
|
| - network_usage_support_(false) {
|
| + network_usage_support_(false),
|
| + process_resource_(process_resource) {
|
| // 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.
|
| pid_ = base::GetProcId(handle);
|
| @@ -200,6 +210,29 @@ base::string16 ChildProcessResource::GetLocalizedTitle() const {
|
| return title;
|
| }
|
|
|
| +void ChildProcessResource::Refresh() {
|
| + if (process_resource_)
|
| + process_resource_->Refresh();
|
| +}
|
| +
|
| +bool ChildProcessResource::ReportsV8MemoryStats() const {
|
| + if (process_resource_)
|
| + return process_resource_->ReportsV8MemoryStats();
|
| + return false;
|
| +}
|
| +
|
| +size_t ChildProcessResource::GetV8MemoryAllocated() const {
|
| + if (process_resource_)
|
| + return process_resource_->GetV8MemoryAllocated();
|
| + return 0;
|
| +}
|
| +
|
| +size_t ChildProcessResource::GetV8MemoryUsed() const {
|
| + if (process_resource_)
|
| + return process_resource_->GetV8MemoryUsed();
|
| + return 0;
|
| +}
|
| +
|
| ////////////////////////////////////////////////////////////////////////////////
|
| // ChildProcessResourceProvider class
|
| ////////////////////////////////////////////////////////////////////////////////
|
| @@ -300,7 +333,8 @@ void ChildProcessResourceProvider::AddToTaskManager(
|
| child_process_data.process_type,
|
| child_process_data.name,
|
| child_process_data.handle,
|
| - child_process_data.id);
|
| + child_process_data.id,
|
| + child_process_data.process_resource);
|
| resources_[child_process_data.handle] = resource;
|
| pid_to_resources_[resource->process_id()] = resource;
|
| task_manager_->AddResource(resource);
|
|
|