Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(84)

Side by Side Diff: trunk/src/chrome/browser/task_manager/task_manager.cc

Issue 290633006: Revert 270907 "Remove knowledge of nacl from content." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/task_manager.h" 5 #include "chrome/browser/task_manager/task_manager.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/i18n/number_formatting.h" 8 #include "base/i18n/number_formatting.h"
9 #include "base/i18n/rtl.h" 9 #include "base/i18n/rtl.h"
10 #include "base/prefs/pref_registry_simple.h" 10 #include "base/prefs/pref_registry_simple.h"
(...skipping 13 matching lines...) Expand all
24 #include "chrome/browser/task_manager/guest_information.h" 24 #include "chrome/browser/task_manager/guest_information.h"
25 #include "chrome/browser/task_manager/panel_information.h" 25 #include "chrome/browser/task_manager/panel_information.h"
26 #include "chrome/browser/task_manager/printing_information.h" 26 #include "chrome/browser/task_manager/printing_information.h"
27 #include "chrome/browser/task_manager/resource_provider.h" 27 #include "chrome/browser/task_manager/resource_provider.h"
28 #include "chrome/browser/task_manager/tab_contents_information.h" 28 #include "chrome/browser/task_manager/tab_contents_information.h"
29 #include "chrome/browser/task_manager/web_contents_resource_provider.h" 29 #include "chrome/browser/task_manager/web_contents_resource_provider.h"
30 #include "chrome/browser/task_manager/worker_resource_provider.h" 30 #include "chrome/browser/task_manager/worker_resource_provider.h"
31 #include "chrome/browser/ui/browser_navigator.h" 31 #include "chrome/browser/ui/browser_navigator.h"
32 #include "chrome/common/pref_names.h" 32 #include "chrome/common/pref_names.h"
33 #include "chrome/common/url_constants.h" 33 #include "chrome/common/url_constants.h"
34 #include "components/nacl/browser/nacl_browser.h"
35 #include "content/public/browser/browser_thread.h" 34 #include "content/public/browser/browser_thread.h"
36 #include "content/public/browser/gpu_data_manager.h" 35 #include "content/public/browser/gpu_data_manager.h"
37 #include "content/public/browser/gpu_data_manager_observer.h" 36 #include "content/public/browser/gpu_data_manager_observer.h"
38 #include "content/public/browser/resource_request_info.h" 37 #include "content/public/browser/resource_request_info.h"
39 #include "content/public/browser/web_contents.h" 38 #include "content/public/browser/web_contents.h"
40 #include "content/public/browser/web_contents_delegate.h" 39 #include "content/public/browser/web_contents_delegate.h"
41 #include "content/public/common/result_codes.h" 40 #include "content/public/common/result_codes.h"
42 #include "extensions/browser/extension_system.h" 41 #include "extensions/browser/extension_system.h"
43 #include "grit/generated_resources.h" 42 #include "grit/generated_resources.h"
44 #include "grit/ui_resources.h" 43 #include "grit/ui_resources.h"
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 BrowserThread::PostTask( 184 BrowserThread::PostTask(
186 BrowserThread::UI, FROM_HERE, base::Bind( 185 BrowserThread::UI, FROM_HERE, base::Bind(
187 &TaskManagerModelGpuDataManagerObserver:: 186 &TaskManagerModelGpuDataManagerObserver::
188 NotifyVideoMemoryUsageStats, 187 NotifyVideoMemoryUsageStats,
189 video_memory_usage_stats)); 188 video_memory_usage_stats));
190 } 189 }
191 } 190 }
192 }; 191 };
193 192
194 TaskManagerModel::PerResourceValues::PerResourceValues() 193 TaskManagerModel::PerResourceValues::PerResourceValues()
195 : is_title_valid(false), 194 : is_nacl_debug_stub_port_valid(false),
195 nacl_debug_stub_port(0),
196 is_title_valid(false),
196 is_profile_name_valid(false), 197 is_profile_name_valid(false),
197 network_usage(0), 198 network_usage(0),
198 is_process_id_valid(false), 199 is_process_id_valid(false),
199 process_id(0), 200 process_id(0),
200 is_goats_teleported_valid(false), 201 is_goats_teleported_valid(false),
201 goats_teleported(0), 202 goats_teleported(0),
202 is_webcore_stats_valid(false), 203 is_webcore_stats_valid(false),
203 is_fps_valid(false), 204 is_fps_valid(false),
204 fps(0), 205 fps(0),
205 is_sqlite_memory_bytes_valid(false), 206 is_sqlite_memory_bytes_valid(false),
(...skipping 15 matching lines...) Expand all
221 is_physical_memory_valid(false), 222 is_physical_memory_valid(false),
222 physical_memory(0), 223 physical_memory(0),
223 is_video_memory_valid(false), 224 is_video_memory_valid(false),
224 video_memory(0), 225 video_memory(0),
225 video_memory_has_duplicates(false), 226 video_memory_has_duplicates(false),
226 is_gdi_handles_valid(false), 227 is_gdi_handles_valid(false),
227 gdi_handles(0), 228 gdi_handles(0),
228 gdi_handles_peak(0), 229 gdi_handles_peak(0),
229 is_user_handles_valid(0), 230 is_user_handles_valid(0),
230 user_handles(0), 231 user_handles(0),
231 user_handles_peak(0), 232 user_handles_peak(0) {}
232 is_nacl_debug_stub_port_valid(false),
233 nacl_debug_stub_port(0) {}
234 233
235 TaskManagerModel::PerProcessValues::~PerProcessValues() {} 234 TaskManagerModel::PerProcessValues::~PerProcessValues() {}
236 235
237 //////////////////////////////////////////////////////////////////////////////// 236 ////////////////////////////////////////////////////////////////////////////////
238 // TaskManagerModel class 237 // TaskManagerModel class
239 //////////////////////////////////////////////////////////////////////////////// 238 ////////////////////////////////////////////////////////////////////////////////
240 239
241 TaskManagerModel::TaskManagerModel(TaskManager* task_manager) 240 TaskManagerModel::TaskManagerModel(TaskManager* task_manager)
242 : pending_video_memory_usage_stats_update_(false), 241 : pending_video_memory_usage_stats_update_(false),
243 update_requests_(0), 242 update_requests_(0),
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 285
287 int TaskManagerModel::ResourceCount() const { 286 int TaskManagerModel::ResourceCount() const {
288 return resources_.size(); 287 return resources_.size();
289 } 288 }
290 289
291 int TaskManagerModel::GroupCount() const { 290 int TaskManagerModel::GroupCount() const {
292 return group_map_.size(); 291 return group_map_.size();
293 } 292 }
294 293
295 int TaskManagerModel::GetNaClDebugStubPort(int index) const { 294 int TaskManagerModel::GetNaClDebugStubPort(int index) const {
296 base::ProcessHandle handle = GetResource(index)->GetProcess(); 295 PerResourceValues& values(GetPerResourceValues(index));
297 PerProcessValues& values(per_process_cache_[handle]);
298 if (!values.is_nacl_debug_stub_port_valid) { 296 if (!values.is_nacl_debug_stub_port_valid) {
299 return nacl::kGdbDebugStubPortUnknown; 297 values.is_nacl_debug_stub_port_valid = true;
298 values.nacl_debug_stub_port = GetResource(index)->GetNaClDebugStubPort();
300 } 299 }
301 return values.nacl_debug_stub_port; 300 return values.nacl_debug_stub_port;
302 } 301 }
303 302
304 int64 TaskManagerModel::GetNetworkUsage(int index) const { 303 int64 TaskManagerModel::GetNetworkUsage(int index) const {
305 return GetNetworkUsage(GetResource(index)); 304 return GetNetworkUsage(GetResource(index));
306 } 305 }
307 306
308 double TaskManagerModel::GetCPUUsage(int index) const { 307 double TaskManagerModel::GetCPUUsage(int index) const {
309 return GetCPUUsage(GetResource(index)); 308 return GetCPUUsage(GetResource(index));
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
411 PerResourceValues& values(GetPerResourceValues(index)); 410 PerResourceValues& values(GetPerResourceValues(index));
412 if (!values.is_profile_name_valid) { 411 if (!values.is_profile_name_valid) {
413 values.is_profile_name_valid = true; 412 values.is_profile_name_valid = true;
414 values.profile_name = GetResource(index)->GetProfileName(); 413 values.profile_name = GetResource(index)->GetProfileName();
415 } 414 }
416 return values.profile_name; 415 return values.profile_name;
417 } 416 }
418 417
419 base::string16 TaskManagerModel::GetResourceNaClDebugStubPort(int index) const { 418 base::string16 TaskManagerModel::GetResourceNaClDebugStubPort(int index) const {
420 int port = GetNaClDebugStubPort(index); 419 int port = GetNaClDebugStubPort(index);
421 if (port == nacl::kGdbDebugStubPortUnknown) { 420 if (port == 0) {
422 return base::ASCIIToUTF16("Unknown");
423 } else if (port == nacl::kGdbDebugStubPortUnused) {
424 return base::ASCIIToUTF16("N/A"); 421 return base::ASCIIToUTF16("N/A");
425 } else { 422 } else {
426 return base::IntToString16(port); 423 return base::IntToString16(port);
427 } 424 }
428 } 425 }
429 426
430 base::string16 TaskManagerModel::GetResourceNetworkUsage(int index) const { 427 base::string16 TaskManagerModel::GetResourceNetworkUsage(int index) const {
431 int64 net_usage = GetNetworkUsage(index); 428 int64 net_usage = GetNetworkUsage(index);
432 if (net_usage == -1) 429 if (net_usage == -1)
433 return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT); 430 return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT);
(...skipping 741 matching lines...) Expand 10 before | Expand all | Expand 10 after
1175 // Notify the table that the contents have changed for it to redraw. 1172 // Notify the table that the contents have changed for it to redraw.
1176 FOR_EACH_OBSERVER(TaskManagerModelObserver, observer_list_, OnModelChanged()); 1173 FOR_EACH_OBSERVER(TaskManagerModelObserver, observer_list_, OnModelChanged());
1177 } 1174 }
1178 1175
1179 void TaskManagerModel::Refresh() { 1176 void TaskManagerModel::Refresh() {
1180 goat_salt_ = base::RandUint64(); 1177 goat_salt_ = base::RandUint64();
1181 1178
1182 per_resource_cache_.clear(); 1179 per_resource_cache_.clear();
1183 per_process_cache_.clear(); 1180 per_process_cache_.clear();
1184 1181
1185 nacl::NaClBrowser* nacl_browser = nacl::NaClBrowser::GetInstance(); 1182 // Compute the CPU usage values.
1186
1187 // Compute the CPU usage values and check if NaCl GDB debug stub port is
1188 // known.
1189 // Note that we compute the CPU usage for all resources (instead of doing it 1183 // Note that we compute the CPU usage for all resources (instead of doing it
1190 // lazily) as process_util::GetCPUUsage() returns the CPU usage since the last 1184 // lazily) as process_util::GetCPUUsage() returns the CPU usage since the last
1191 // time it was called, and not calling it everytime would skew the value the 1185 // time it was called, and not calling it everytime would skew the value the
1192 // next time it is retrieved (as it would be for more than 1 cycle). 1186 // next time it is retrieved (as it would be for more than 1 cycle).
1193 // The same is true for idle wakeups. 1187 // The same is true for idle wakeups.
1194 for (ResourceList::iterator iter = resources_.begin(); 1188 for (ResourceList::iterator iter = resources_.begin();
1195 iter != resources_.end(); ++iter) { 1189 iter != resources_.end(); ++iter) {
1196 base::ProcessHandle process = (*iter)->GetProcess(); 1190 base::ProcessHandle process = (*iter)->GetProcess();
1197 PerProcessValues& values(per_process_cache_[process]); 1191 PerProcessValues& values(per_process_cache_[process]);
1198 // Debug stub port doesn't change once known.
1199 if (!values.is_nacl_debug_stub_port_valid) {
1200 values.nacl_debug_stub_port = nacl_browser->GetProcessGdbDebugStubPort(
1201 (*iter)->GetUniqueChildProcessId());
1202 if (values.nacl_debug_stub_port != nacl::kGdbDebugStubPortUnknown) {
1203 values.is_nacl_debug_stub_port_valid = true;
1204 }
1205 }
1206 if (values.is_cpu_usage_valid && values.is_idle_wakeups_valid) 1192 if (values.is_cpu_usage_valid && values.is_idle_wakeups_valid)
1207 continue; 1193 continue;
1208 MetricsMap::iterator metrics_iter = metrics_map_.find(process); 1194 MetricsMap::iterator metrics_iter = metrics_map_.find(process);
1209 DCHECK(metrics_iter != metrics_map_.end()); 1195 DCHECK(metrics_iter != metrics_map_.end());
1210 if (!values.is_cpu_usage_valid) { 1196 if (!values.is_cpu_usage_valid) {
1211 values.is_cpu_usage_valid = true; 1197 values.is_cpu_usage_valid = true;
1212 values.cpu_usage = metrics_iter->second->GetCPUUsage(); 1198 values.cpu_usage = metrics_iter->second->GetCPUUsage();
1213 } 1199 }
1214 #if defined(OS_MACOSX) 1200 #if defined(OS_MACOSX)
1215 // TODO: Implement GetIdleWakeupsPerSecond() on other platforms, 1201 // TODO: Implement GetIdleWakeupsPerSecond() on other platforms,
(...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after
1595 params.host_desktop_type = desktop_type; 1581 params.host_desktop_type = desktop_type;
1596 chrome::Navigate(&params); 1582 chrome::Navigate(&params);
1597 } 1583 }
1598 1584
1599 TaskManager::TaskManager() 1585 TaskManager::TaskManager()
1600 : model_(new TaskManagerModel(this)) { 1586 : model_(new TaskManagerModel(this)) {
1601 } 1587 }
1602 1588
1603 TaskManager::~TaskManager() { 1589 TaskManager::~TaskManager() {
1604 } 1590 }
OLDNEW
« no previous file with comments | « trunk/src/chrome/browser/task_manager/task_manager.h ('k') | trunk/src/components/nacl/browser/nacl_browser.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698