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

Side by Side Diff: chrome/browser/memory_details.cc

Issue 10895: Add Terminate() to the Process object, have RenderProcessHost use this to avo... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 12 years, 1 month 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
« no previous file with comments | « chrome/browser/memory_details.h ('k') | chrome/browser/plugin_process_host.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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/memory_details.h" 5 #include "chrome/browser/memory_details.h"
6 #include <psapi.h> 6 #include <psapi.h>
7 7
8 #include "base/file_version_info.h" 8 #include "base/file_version_info.h"
9 #include "base/histogram.h" 9 #include "base/histogram.h"
10 #include "base/image_util.h" 10 #include "base/image_util.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 72
73 // Collect the list of plugins. 73 // Collect the list of plugins.
74 for (PluginProcessHostIterator plugin_iter; 74 for (PluginProcessHostIterator plugin_iter;
75 !plugin_iter.Done(); ++plugin_iter) { 75 !plugin_iter.Done(); ++plugin_iter) {
76 PluginProcessHost* plugin = const_cast<PluginProcessHost*>(*plugin_iter); 76 PluginProcessHost* plugin = const_cast<PluginProcessHost*>(*plugin_iter);
77 DCHECK(plugin); 77 DCHECK(plugin);
78 if (!plugin || !plugin->process()) 78 if (!plugin || !plugin->process())
79 continue; 79 continue;
80 80
81 PluginProcessInformation info; 81 PluginProcessInformation info;
82 info.pid = process_util::GetProcId(plugin->process()); 82 info.pid = base::GetProcId(plugin->process());
83 if (info.pid != 0) { 83 if (info.pid != 0) {
84 info.dll_path = plugin->dll_path(); 84 info.dll_path = plugin->dll_path();
85 plugins_.push_back(info); 85 plugins_.push_back(info);
86 } 86 }
87 } 87 }
88 88
89 // Now go do expensive memory lookups from the file thread. 89 // Now go do expensive memory lookups from the file thread.
90 ChromeThread::GetMessageLoop(ChromeThread::FILE)->PostTask(FROM_HERE, 90 ChromeThread::GetMessageLoop(ChromeThread::FILE)->PostTask(FROM_HERE,
91 NewRunnableMethod(this, &MemoryDetails::CollectProcessData)); 91 NewRunnableMethod(this, &MemoryDetails::CollectProcessData));
92 } 92 }
(...skipping 29 matching lines...) Expand all
122 HANDLE handle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, 122 HANDLE handle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
123 FALSE, process_list[index]); 123 FALSE, process_list[index]);
124 if (handle) { 124 if (handle) {
125 TCHAR name[MAX_PATH]; 125 TCHAR name[MAX_PATH];
126 if (GetModuleBaseName(handle, NULL, name, MAX_PATH-1)) { 126 if (GetModuleBaseName(handle, NULL, name, MAX_PATH-1)) {
127 for (int index2 = 0; index2 < arraysize(g_process_template); index2++) { 127 for (int index2 = 0; index2 < arraysize(g_process_template); index2++) {
128 if (_wcsicmp(process_data_[index2].process_name, name) == 0) { 128 if (_wcsicmp(process_data_[index2].process_name, name) == 0) {
129 // Get Memory Information. 129 // Get Memory Information.
130 ProcessMemoryInformation info; 130 ProcessMemoryInformation info;
131 info.pid = process_list[index]; 131 info.pid = process_list[index];
132 scoped_ptr<process_util::ProcessMetrics> metrics; 132 scoped_ptr<base::ProcessMetrics> metrics;
133 metrics.reset( 133 metrics.reset(base::ProcessMetrics::CreateProcessMetrics(handle));
134 process_util::ProcessMetrics::CreateProcessMetrics(handle));
135 metrics->GetCommittedKBytes(&info.committed); 134 metrics->GetCommittedKBytes(&info.committed);
136 metrics->GetWorkingSetKBytes(&info.working_set); 135 metrics->GetWorkingSetKBytes(&info.working_set);
137 136
138 // Get Version Information. 137 // Get Version Information.
139 if (index2 == 0) { // Chrome 138 if (index2 == 0) { // Chrome
140 scoped_ptr<FileVersionInfo> version_info( 139 scoped_ptr<FileVersionInfo> version_info(
141 FileVersionInfo::CreateFileVersionInfoForCurrentModule()); 140 FileVersionInfo::CreateFileVersionInfoForCurrentModule());
142 if (version_info != NULL) 141 if (version_info != NULL)
143 info.version = version_info->file_version(); 142 info.version = version_info->file_version();
144 } else if (GetModuleFileNameEx(handle, NULL, name, MAX_PATH-1)) { 143 } else if (GetModuleFileNameEx(handle, NULL, name, MAX_PATH-1)) {
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 if (trial.get()) { 272 if (trial.get()) {
274 if (trial->boolean_value()) 273 if (trial->boolean_value())
275 UMA_HISTOGRAM_MEMORY_MB(L"Memory.Total_trial_high_memory", total_sample); 274 UMA_HISTOGRAM_MEMORY_MB(L"Memory.Total_trial_high_memory", total_sample);
276 else 275 else
277 UMA_HISTOGRAM_MEMORY_MB(L"Memory.Total_trial_med_memory", total_sample); 276 UMA_HISTOGRAM_MEMORY_MB(L"Memory.Total_trial_med_memory", total_sample);
278 } else { 277 } else {
279 UMA_HISTOGRAM_MEMORY_MB(L"Memory.Total", total_sample); 278 UMA_HISTOGRAM_MEMORY_MB(L"Memory.Total", total_sample);
280 } 279 }
281 } 280 }
282 281
OLDNEW
« no previous file with comments | « chrome/browser/memory_details.h ('k') | chrome/browser/plugin_process_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698