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 495cac92852362afb985d48cf9ad1c074a13c557..0054b4b53e275b9cb93743abc9209af33f3e835a 100644 |
--- a/chrome/browser/task_manager/child_process_resource_provider.cc |
+++ b/chrome/browser/task_manager/child_process_resource_provider.cc |
@@ -60,11 +60,8 @@ class ChildProcessResource : public Resource { |
// process would be "Plugin: Flash" when name is "Flash". |
base::string16 GetLocalizedTitle() const; |
- static mojo::InterfacePtrInfo<ResourceUsageReporter> |
- GetProcessUsageOnIOThread(int id); |
- |
- void OnGetProcessUsageDone( |
- mojo::InterfacePtrInfo<ResourceUsageReporter> info); |
+ static void ConnectResourceReporterOnIOThread( |
+ int id, mojo::InterfaceRequest<ResourceUsageReporter> req); |
int process_type_; |
base::string16 name_; |
@@ -88,21 +85,19 @@ class ChildProcessResource : public Resource { |
gfx::ImageSkia* ChildProcessResource::default_icon_ = NULL; |
// static |
-mojo::InterfacePtrInfo<ResourceUsageReporter> |
-ChildProcessResource::GetProcessUsageOnIOThread(int id) { |
+void ChildProcessResource::ConnectResourceReporterOnIOThread( |
+ int id, mojo::InterfaceRequest<ResourceUsageReporter> req) { |
DCHECK_CURRENTLY_ON(BrowserThread::IO); |
content::BrowserChildProcessHost* host = |
content::BrowserChildProcessHost::FromID(id); |
if (!host) |
- return mojo::InterfacePtrInfo<ResourceUsageReporter>(); |
+ return; |
content::ServiceRegistry* registry = host->GetServiceRegistry(); |
if (!registry) |
- return mojo::InterfacePtrInfo<ResourceUsageReporter>(); |
+ return; |
- ResourceUsageReporterPtr service; |
- registry->ConnectToRemoteService(&service); |
- return service.PassInterface().Pass(); |
+ registry->ConnectToRemoteService(req.Pass()); |
} |
ChildProcessResource::ChildProcessResource(int process_type, |
@@ -123,27 +118,19 @@ ChildProcessResource::ChildProcessResource(int process_type, |
default_icon_ = rb.GetImageSkiaNamed(IDR_PLUGINS_FAVICON); |
// TODO(jabdelmalek): use different icon for web workers. |
} |
- BrowserThread::PostTaskAndReplyWithResult( |
+ ResourceUsageReporterPtr service; |
+ mojo::InterfaceRequest<ResourceUsageReporter> request = |
+ mojo::GetProxy(&service); |
+ BrowserThread::PostTask( |
BrowserThread::IO, FROM_HERE, |
- base::Bind(&ChildProcessResource::GetProcessUsageOnIOThread, |
- unique_process_id), |
- base::Bind(&ChildProcessResource::OnGetProcessUsageDone, |
- weak_factory_.GetWeakPtr())); |
+ base::Bind(&ChildProcessResource::ConnectResourceReporterOnIOThread, |
+ unique_process_id, base::Passed(&request))); |
+ resource_usage_.reset(new ProcessResourceUsage(service.Pass())); |
} |
ChildProcessResource::~ChildProcessResource() { |
} |
-void ChildProcessResource::OnGetProcessUsageDone( |
- mojo::InterfacePtrInfo<ResourceUsageReporter> info) { |
- DCHECK_CURRENTLY_ON(BrowserThread::UI); |
- if (info.is_valid()) { |
- ResourceUsageReporterPtr service; |
- service.Bind(info.Pass()); |
- resource_usage_.reset(new ProcessResourceUsage(service.Pass())); |
- } |
-} |
- |
// Resource methods: |
base::string16 ChildProcessResource::GetTitle() const { |
if (title_.empty()) |