OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/task_manager/providers/child_process_task.h" | 5 #include "chrome/browser/task_manager/providers/child_process_task.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/i18n/rtl.h" | 9 #include "base/i18n/rtl.h" |
10 #include "base/numerics/safe_conversions.h" | 10 #include "base/numerics/safe_conversions.h" |
11 #include "base/strings/utf_string_conversions.h" | 11 #include "base/strings/utf_string_conversions.h" |
12 #include "chrome/browser/browser_process.h" | 12 #include "chrome/browser/browser_process.h" |
13 #include "chrome/browser/process_resource_usage.h" | 13 #include "chrome/browser/process_resource_usage.h" |
14 #include "chrome/browser/profiles/profile_manager.h" | 14 #include "chrome/browser/profiles/profile_manager.h" |
15 #include "chrome/browser/task_manager/task_manager_observer.h" | 15 #include "chrome/browser/task_manager/task_manager_observer.h" |
16 #include "chrome/grit/generated_resources.h" | 16 #include "chrome/grit/generated_resources.h" |
17 #include "components/nacl/common/nacl_process_type.h" | 17 #include "components/nacl/common/nacl_process_type.h" |
18 #include "content/public/browser/browser_child_process_host.h" | 18 #include "content/public/browser/browser_child_process_host.h" |
19 #include "content/public/browser/browser_thread.h" | 19 #include "content/public/browser/browser_thread.h" |
20 #include "content/public/browser/child_process_data.h" | 20 #include "content/public/browser/child_process_data.h" |
21 #include "content/public/common/child_process_host.h" | |
22 #include "content/public/common/process_type.h" | 21 #include "content/public/common/process_type.h" |
23 #include "extensions/browser/extension_registry.h" | 22 #include "extensions/browser/extension_registry.h" |
24 #include "extensions/common/extension_set.h" | 23 #include "extensions/common/extension_set.h" |
25 #include "grit/theme_resources.h" | 24 #include "grit/theme_resources.h" |
26 #include "services/shell/public/cpp/interface_provider.h" | 25 #include "services/shell/public/cpp/interface_provider.h" |
27 #include "ui/base/l10n/l10n_util.h" | 26 #include "ui/base/l10n/l10n_util.h" |
28 #include "ui/base/resource/resource_bundle.h" | 27 #include "ui/base/resource/resource_bundle.h" |
29 | 28 |
30 namespace task_manager { | 29 namespace task_manager { |
31 | 30 |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
105 case content::PROCESS_TYPE_SANDBOX_HELPER: | 104 case content::PROCESS_TYPE_SANDBOX_HELPER: |
106 case content::PROCESS_TYPE_MAX: | 105 case content::PROCESS_TYPE_MAX: |
107 break; | 106 break; |
108 case content::PROCESS_TYPE_UNKNOWN: | 107 case content::PROCESS_TYPE_UNKNOWN: |
109 NOTREACHED() << "Need localized name for child process type."; | 108 NOTREACHED() << "Need localized name for child process type."; |
110 } | 109 } |
111 | 110 |
112 return result_title; | 111 return result_title; |
113 } | 112 } |
114 | 113 |
115 // Connects the |resource_reporter| to the InterfaceRegistry of the | 114 // Connects the |resource_reporter| to the ServiceRegistry of the |
116 // BrowserChildProcessHost whose unique ID is |unique_child_process_id|. | 115 // BrowserChildProcessHost whose unique ID is |unique_child_process_id|. |
117 void ConnectResourceReporterOnIOThread( | 116 void ConnectResourceReporterOnIOThread( |
118 int unique_child_process_id, | 117 int unique_child_process_id, |
119 mojom::ResourceUsageReporterRequest resource_reporter) { | 118 mojo::InterfaceRequest<mojom::ResourceUsageReporter> resource_reporter) { |
120 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); | 119 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); |
121 | 120 |
122 content::BrowserChildProcessHost* host = | 121 content::BrowserChildProcessHost* host = |
123 content::BrowserChildProcessHost::FromID(unique_child_process_id); | 122 content::BrowserChildProcessHost::FromID(unique_child_process_id); |
124 if (!host) | 123 if (!host) |
125 return; | 124 return; |
126 | 125 |
127 shell::InterfaceProvider* interfaces = host->GetHost()->GetRemoteInterfaces(); | 126 shell::InterfaceProvider* interfaces = host->GetRemoteInterfaces(); |
128 if (interfaces) | 127 if (interfaces) |
129 interfaces->GetInterface(std::move(resource_reporter)); | 128 interfaces->GetInterface(std::move(resource_reporter)); |
130 } | 129 } |
131 | 130 |
132 // Creates the Mojo service wrapper that will be used to sample the V8 memory | 131 // Creates the Mojo service wrapper that will be used to sample the V8 memory |
133 // usage of the browser child process whose unique ID is | 132 // usage of the browser child process whose unique ID is |
134 // |unique_child_process_id|. | 133 // |unique_child_process_id|. |
135 ProcessResourceUsage* CreateProcessResourcesSampler( | 134 ProcessResourceUsage* CreateProcessResourcesSampler( |
136 int unique_child_process_id) { | 135 int unique_child_process_id) { |
137 mojom::ResourceUsageReporterPtr usage_reporter; | 136 mojom::ResourceUsageReporterPtr service; |
138 mojom::ResourceUsageReporterRequest request = mojo::GetProxy(&usage_reporter); | 137 mojo::InterfaceRequest<mojom::ResourceUsageReporter> usage_reporter = |
| 138 mojo::GetProxy(&service); |
| 139 |
139 content::BrowserThread::PostTask( | 140 content::BrowserThread::PostTask( |
140 content::BrowserThread::IO, | 141 content::BrowserThread::IO, |
141 FROM_HERE, | 142 FROM_HERE, |
142 base::Bind(&ConnectResourceReporterOnIOThread, | 143 base::Bind(&ConnectResourceReporterOnIOThread, |
143 unique_child_process_id, base::Passed(&request))); | 144 unique_child_process_id, |
| 145 base::Passed(&usage_reporter))); |
144 | 146 |
145 return new ProcessResourceUsage(std::move(usage_reporter)); | 147 return new ProcessResourceUsage(std::move(service)); |
146 } | 148 } |
147 | 149 |
148 bool UsesV8Memory(int process_type) { | 150 bool UsesV8Memory(int process_type) { |
149 switch (process_type) { | 151 switch (process_type) { |
150 case content::PROCESS_TYPE_UTILITY: | 152 case content::PROCESS_TYPE_UTILITY: |
151 case content::PROCESS_TYPE_BROWSER: | 153 case content::PROCESS_TYPE_BROWSER: |
152 case content::PROCESS_TYPE_RENDERER: | 154 case content::PROCESS_TYPE_RENDERER: |
153 return true; | 155 return true; |
154 | 156 |
155 default: | 157 default: |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
229 | 231 |
230 int64_t ChildProcessTask::GetV8MemoryAllocated() const { | 232 int64_t ChildProcessTask::GetV8MemoryAllocated() const { |
231 return v8_memory_allocated_; | 233 return v8_memory_allocated_; |
232 } | 234 } |
233 | 235 |
234 int64_t ChildProcessTask::GetV8MemoryUsed() const { | 236 int64_t ChildProcessTask::GetV8MemoryUsed() const { |
235 return v8_memory_used_; | 237 return v8_memory_used_; |
236 } | 238 } |
237 | 239 |
238 } // namespace task_manager | 240 } // namespace task_manager |
OLD | NEW |