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

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

Issue 4987001: Implement new task manager mocks on windows. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Updated per review feedback Created 10 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
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "app/resource_bundle.h" 8 #include "app/resource_bundle.h"
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/i18n/number_formatting.h" 10 #include "base/i18n/number_formatting.h"
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 71
72 TaskManagerModel::TaskManagerModel(TaskManager* task_manager) 72 TaskManagerModel::TaskManagerModel(TaskManager* task_manager)
73 : update_requests_(0), 73 : update_requests_(0),
74 update_state_(IDLE), 74 update_state_(IDLE),
75 goat_salt_(rand()) { 75 goat_salt_(rand()) {
76 76
77 TaskManagerBrowserProcessResourceProvider* browser_provider = 77 TaskManagerBrowserProcessResourceProvider* browser_provider =
78 new TaskManagerBrowserProcessResourceProvider(task_manager); 78 new TaskManagerBrowserProcessResourceProvider(task_manager);
79 browser_provider->AddRef(); 79 browser_provider->AddRef();
80 providers_.push_back(browser_provider); 80 providers_.push_back(browser_provider);
81 TaskManagerBackgroundContentsResourceProvider* bc_provider =
82 new TaskManagerBackgroundContentsResourceProvider(task_manager);
83 bc_provider->AddRef();
84 providers_.push_back(bc_provider);
81 TaskManagerTabContentsResourceProvider* wc_provider = 85 TaskManagerTabContentsResourceProvider* wc_provider =
82 new TaskManagerTabContentsResourceProvider(task_manager); 86 new TaskManagerTabContentsResourceProvider(task_manager);
83 wc_provider->AddRef(); 87 wc_provider->AddRef();
84 providers_.push_back(wc_provider); 88 providers_.push_back(wc_provider);
85 TaskManagerBackgroundContentsResourceProvider* bc_provider =
86 new TaskManagerBackgroundContentsResourceProvider(task_manager);
87 bc_provider->AddRef();
88 providers_.push_back(bc_provider);
89 TaskManagerChildProcessResourceProvider* child_process_provider = 89 TaskManagerChildProcessResourceProvider* child_process_provider =
90 new TaskManagerChildProcessResourceProvider(task_manager); 90 new TaskManagerChildProcessResourceProvider(task_manager);
91 child_process_provider->AddRef(); 91 child_process_provider->AddRef();
92 providers_.push_back(child_process_provider); 92 providers_.push_back(child_process_provider);
93 TaskManagerExtensionProcessResourceProvider* extension_process_provider = 93 TaskManagerExtensionProcessResourceProvider* extension_process_provider =
94 new TaskManagerExtensionProcessResourceProvider(task_manager); 94 new TaskManagerExtensionProcessResourceProvider(task_manager);
95 extension_process_provider->AddRef(); 95 extension_process_provider->AddRef();
96 providers_.push_back(extension_process_provider); 96 providers_.push_back(extension_process_provider);
97 TaskManagerNotificationResourceProvider* notification_provider = 97 TaskManagerNotificationResourceProvider* notification_provider =
98 new TaskManagerNotificationResourceProvider(task_manager); 98 new TaskManagerNotificationResourceProvider(task_manager);
(...skipping 14 matching lines...) Expand all
113 113
114 void TaskManagerModel::AddObserver(TaskManagerModelObserver* observer) { 114 void TaskManagerModel::AddObserver(TaskManagerModelObserver* observer) {
115 observer_list_.AddObserver(observer); 115 observer_list_.AddObserver(observer);
116 } 116 }
117 117
118 void TaskManagerModel::RemoveObserver(TaskManagerModelObserver* observer) { 118 void TaskManagerModel::RemoveObserver(TaskManagerModelObserver* observer) {
119 observer_list_.RemoveObserver(observer); 119 observer_list_.RemoveObserver(observer);
120 } 120 }
121 121
122 string16 TaskManagerModel::GetResourceTitle(int index) const { 122 string16 TaskManagerModel::GetResourceTitle(int index) const {
123 CHECK(index < ResourceCount()); 123 CHECK_LT(index, ResourceCount());
124 return WideToUTF16Hack(resources_[index]->GetTitle()); 124 return WideToUTF16Hack(resources_[index]->GetTitle());
125 } 125 }
126 126
127 int64 TaskManagerModel::GetNetworkUsage(int index) const { 127 int64 TaskManagerModel::GetNetworkUsage(int index) const {
128 CHECK(index < ResourceCount()); 128 CHECK_LT(index, ResourceCount());
129 return GetNetworkUsage(resources_[index]); 129 return GetNetworkUsage(resources_[index]);
130 } 130 }
131 131
132 string16 TaskManagerModel::GetResourceNetworkUsage(int index) const { 132 string16 TaskManagerModel::GetResourceNetworkUsage(int index) const {
133 int64 net_usage = GetNetworkUsage(index); 133 int64 net_usage = GetNetworkUsage(index);
134 if (net_usage == -1) 134 if (net_usage == -1)
135 return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT); 135 return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT);
136 if (net_usage == 0) 136 if (net_usage == 0)
137 return ASCIIToUTF16("0"); 137 return ASCIIToUTF16("0");
138 string16 net_byte = FormatSpeed(net_usage, GetByteDisplayUnits(net_usage), 138 string16 net_byte = FormatSpeed(net_usage, GetByteDisplayUnits(net_usage),
139 true); 139 true);
140 // Force number string to have LTR directionality. 140 // Force number string to have LTR directionality.
141 return base::i18n::GetDisplayStringInLTRDirectionality(net_byte); 141 return base::i18n::GetDisplayStringInLTRDirectionality(net_byte);
142 } 142 }
143 143
144 double TaskManagerModel::GetCPUUsage(int index) const { 144 double TaskManagerModel::GetCPUUsage(int index) const {
145 CHECK(index < ResourceCount()); 145 CHECK_LT(index, ResourceCount());
146 return GetCPUUsage(resources_[index]); 146 return GetCPUUsage(resources_[index]);
147 } 147 }
148 148
149 string16 TaskManagerModel::GetResourceCPUUsage(int index) const { 149 string16 TaskManagerModel::GetResourceCPUUsage(int index) const {
150 CHECK(index < ResourceCount()); 150 CHECK_LT(index, ResourceCount());
151 return WideToUTF16Hack(StringPrintf( 151 return WideToUTF16Hack(StringPrintf(
152 #if defined(OS_MACOSX) 152 #if defined(OS_MACOSX)
153 // Activity Monitor shows %cpu with one decimal digit -- be 153 // Activity Monitor shows %cpu with one decimal digit -- be
154 // consistent with that. 154 // consistent with that.
155 L"%.1f", 155 L"%.1f",
156 #else 156 #else
157 L"%.0f", 157 L"%.0f",
158 #endif 158 #endif
159 GetCPUUsage(resources_[index]))); 159 GetCPUUsage(resources_[index])));
160 } 160 }
(...skipping 12 matching lines...) Expand all
173 return GetMemCellText(shared_mem); 173 return GetMemCellText(shared_mem);
174 } 174 }
175 175
176 string16 TaskManagerModel::GetResourcePhysicalMemory(int index) const { 176 string16 TaskManagerModel::GetResourcePhysicalMemory(int index) const {
177 size_t phys_mem; 177 size_t phys_mem;
178 GetPhysicalMemory(index, &phys_mem); 178 GetPhysicalMemory(index, &phys_mem);
179 return GetMemCellText(phys_mem); 179 return GetMemCellText(phys_mem);
180 } 180 }
181 181
182 int TaskManagerModel::GetProcessId(int index) const { 182 int TaskManagerModel::GetProcessId(int index) const {
183 CHECK(index < ResourceCount()); 183 CHECK_LT(index, ResourceCount());
184 return base::GetProcId(resources_[index]->GetProcess()); 184 return base::GetProcId(resources_[index]->GetProcess());
185 } 185 }
186 186
187 string16 TaskManagerModel::GetResourceProcessId(int index) const { 187 string16 TaskManagerModel::GetResourceProcessId(int index) const {
188 return base::IntToString16(GetProcessId(index)); 188 return base::IntToString16(GetProcessId(index));
189 } 189 }
190 190
191 string16 TaskManagerModel::GetResourceGoatsTeleported(int index) const { 191 string16 TaskManagerModel::GetResourceGoatsTeleported(int index) const {
192 CHECK(index < ResourceCount()); 192 CHECK_LT(index, ResourceCount());
193 return base::FormatNumber(GetGoatsTeleported(index)); 193 return base::FormatNumber(GetGoatsTeleported(index));
194 } 194 }
195 195
196 string16 TaskManagerModel::GetResourceWebCoreImageCacheSize( 196 string16 TaskManagerModel::GetResourceWebCoreImageCacheSize(
197 int index) const { 197 int index) const {
198 CHECK(index < ResourceCount()); 198 CHECK_LT(index, ResourceCount());
199 if (!resources_[index]->ReportsCacheStats()) 199 if (!resources_[index]->ReportsCacheStats())
200 return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT); 200 return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT);
201 const WebKit::WebCache::ResourceTypeStats stats( 201 const WebKit::WebCache::ResourceTypeStats stats(
202 resources_[index]->GetWebCoreCacheStats()); 202 resources_[index]->GetWebCoreCacheStats());
203 return FormatStatsSize(stats.images); 203 return FormatStatsSize(stats.images);
204 } 204 }
205 205
206 string16 TaskManagerModel::GetResourceWebCoreScriptsCacheSize( 206 string16 TaskManagerModel::GetResourceWebCoreScriptsCacheSize(
207 int index) const { 207 int index) const {
208 CHECK(index < ResourceCount()); 208 CHECK_LT(index, ResourceCount());
209 if (!resources_[index]->ReportsCacheStats()) 209 if (!resources_[index]->ReportsCacheStats())
210 return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT); 210 return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT);
211 const WebKit::WebCache::ResourceTypeStats stats( 211 const WebKit::WebCache::ResourceTypeStats stats(
212 resources_[index]->GetWebCoreCacheStats()); 212 resources_[index]->GetWebCoreCacheStats());
213 return FormatStatsSize(stats.scripts); 213 return FormatStatsSize(stats.scripts);
214 } 214 }
215 215
216 string16 TaskManagerModel::GetResourceWebCoreCSSCacheSize( 216 string16 TaskManagerModel::GetResourceWebCoreCSSCacheSize(
217 int index) const { 217 int index) const {
218 CHECK(index < ResourceCount()); 218 CHECK_LT(index, ResourceCount());
219 if (!resources_[index]->ReportsCacheStats()) 219 if (!resources_[index]->ReportsCacheStats())
220 return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT); 220 return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT);
221 const WebKit::WebCache::ResourceTypeStats stats( 221 const WebKit::WebCache::ResourceTypeStats stats(
222 resources_[index]->GetWebCoreCacheStats()); 222 resources_[index]->GetWebCoreCacheStats());
223 return FormatStatsSize(stats.cssStyleSheets); 223 return FormatStatsSize(stats.cssStyleSheets);
224 } 224 }
225 225
226 string16 TaskManagerModel::GetResourceSqliteMemoryUsed(int index) const { 226 string16 TaskManagerModel::GetResourceSqliteMemoryUsed(int index) const {
227 CHECK(index < ResourceCount()); 227 CHECK_LT(index, ResourceCount());
228 if (!resources_[index]->ReportsSqliteMemoryUsed()) 228 if (!resources_[index]->ReportsSqliteMemoryUsed())
229 return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT); 229 return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT);
230 return GetMemCellText(resources_[index]->SqliteMemoryUsedBytes()); 230 return GetMemCellText(resources_[index]->SqliteMemoryUsedBytes());
231 } 231 }
232 232
233 string16 TaskManagerModel::GetResourceV8MemoryAllocatedSize( 233 string16 TaskManagerModel::GetResourceV8MemoryAllocatedSize(
234 int index) const { 234 int index) const {
235 if (!resources_[index]->ReportsV8MemoryStats()) 235 if (!resources_[index]->ReportsV8MemoryStats())
236 return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT); 236 return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT);
237 return l10n_util::GetStringFUTF16(IDS_TASK_MANAGER_CACHE_SIZE_CELL_TEXT, 237 return l10n_util::GetStringFUTF16(IDS_TASK_MANAGER_CACHE_SIZE_CELL_TEXT,
238 FormatBytes(resources_[index]->GetV8MemoryAllocated(), 238 FormatBytes(resources_[index]->GetV8MemoryAllocated(),
239 DATA_UNITS_KIBIBYTE, 239 DATA_UNITS_KIBIBYTE,
240 false), 240 false),
241 FormatBytes(resources_[index]->GetV8MemoryUsed(), 241 FormatBytes(resources_[index]->GetV8MemoryUsed(),
242 DATA_UNITS_KIBIBYTE, 242 DATA_UNITS_KIBIBYTE,
243 false)); 243 false));
244 } 244 }
245 245
246 bool TaskManagerModel::IsResourceFirstInGroup(int index) const { 246 bool TaskManagerModel::IsResourceFirstInGroup(int index) const {
247 CHECK(index < ResourceCount()); 247 CHECK_LT(index, ResourceCount());
248 TaskManager::Resource* resource = resources_[index]; 248 TaskManager::Resource* resource = resources_[index];
249 GroupMap::const_iterator iter = group_map_.find(resource->GetProcess()); 249 GroupMap::const_iterator iter = group_map_.find(resource->GetProcess());
250 DCHECK(iter != group_map_.end()); 250 DCHECK(iter != group_map_.end());
251 const ResourceList* group = iter->second; 251 const ResourceList* group = iter->second;
252 return ((*group)[0] == resource); 252 return ((*group)[0] == resource);
253 } 253 }
254 254
255 bool TaskManagerModel::IsBackgroundResource(int index) const {
256 CHECK_LT(index, ResourceCount());
257 return resources_[index]->IsBackground();
258 }
259
255 SkBitmap TaskManagerModel::GetResourceIcon(int index) const { 260 SkBitmap TaskManagerModel::GetResourceIcon(int index) const {
256 CHECK(index < ResourceCount()); 261 CHECK_LT(index, ResourceCount());
257 SkBitmap icon = resources_[index]->GetIcon(); 262 SkBitmap icon = resources_[index]->GetIcon();
258 if (!icon.isNull()) 263 if (!icon.isNull())
259 return icon; 264 return icon;
260 265
261 static SkBitmap* default_icon = ResourceBundle::GetSharedInstance(). 266 static SkBitmap* default_icon = ResourceBundle::GetSharedInstance().
262 GetBitmapNamed(IDR_DEFAULT_FAVICON); 267 GetBitmapNamed(IDR_DEFAULT_FAVICON);
263 return *default_icon; 268 return *default_icon;
264 } 269 }
265 270
266 std::pair<int, int> TaskManagerModel::GetGroupRangeForResource(int index) 271 std::pair<int, int> TaskManagerModel::GetGroupRangeForResource(int index)
267 const { 272 const {
268 CHECK(index < ResourceCount()); 273 CHECK_LT(index, ResourceCount());
269 TaskManager::Resource* resource = resources_[index]; 274 TaskManager::Resource* resource = resources_[index];
270 GroupMap::const_iterator group_iter = 275 GroupMap::const_iterator group_iter =
271 group_map_.find(resource->GetProcess()); 276 group_map_.find(resource->GetProcess());
272 DCHECK(group_iter != group_map_.end()); 277 DCHECK(group_iter != group_map_.end());
273 ResourceList* group = group_iter->second; 278 ResourceList* group = group_iter->second;
274 DCHECK(group); 279 DCHECK(group);
275 if (group->size() == 1) { 280 if (group->size() == 1) {
276 return std::make_pair(index, 1); 281 return std::make_pair(index, 1);
277 } else { 282 } else {
278 for (int i = index; i >= 0; --i) { 283 for (int i = index; i >= 0; --i) {
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 } 390 }
386 391
387 default: 392 default:
388 NOTREACHED(); 393 NOTREACHED();
389 return 0; 394 return 0;
390 } 395 }
391 } 396 }
392 397
393 base::ProcessHandle TaskManagerModel::GetResourceProcessHandle(int index) 398 base::ProcessHandle TaskManagerModel::GetResourceProcessHandle(int index)
394 const { 399 const {
395 CHECK(index < ResourceCount()); 400 CHECK_LT(index, ResourceCount());
396 return resources_[index]->GetProcess(); 401 return resources_[index]->GetProcess();
397 } 402 }
398 403
399 TaskManager::Resource::Type TaskManagerModel::GetResourceType(int index) const { 404 TaskManager::Resource::Type TaskManagerModel::GetResourceType(int index) const {
400 CHECK(index < ResourceCount()); 405 CHECK_LT(index, ResourceCount());
401 return resources_[index]->GetType(); 406 return resources_[index]->GetType();
402 } 407 }
403 408
404 TabContents* TaskManagerModel::GetResourceTabContents(int index) const { 409 TabContents* TaskManagerModel::GetResourceTabContents(int index) const {
405 CHECK(index < ResourceCount()); 410 CHECK_LT(index, ResourceCount());
406 return resources_[index]->GetTabContents(); 411 return resources_[index]->GetTabContents();
407 } 412 }
408 413
409 const Extension* TaskManagerModel::GetResourceExtension(int index) const { 414 const Extension* TaskManagerModel::GetResourceExtension(int index) const {
410 CHECK(index < ResourceCount()); 415 CHECK_LT(index, ResourceCount());
411 return resources_[index]->GetExtension(); 416 return resources_[index]->GetExtension();
412 } 417 }
413 418
414 int64 TaskManagerModel::GetNetworkUsage(TaskManager::Resource* resource) 419 int64 TaskManagerModel::GetNetworkUsage(TaskManager::Resource* resource)
415 const { 420 const {
416 int64 net_usage = GetNetworkUsageForResource(resource); 421 int64 net_usage = GetNetworkUsageForResource(resource);
417 if (net_usage == 0 && !resource->SupportNetworkUsage()) 422 if (net_usage == 0 && !resource->SupportNetworkUsage())
418 return -1; 423 return -1;
419 return net_usage; 424 return net_usage;
420 } 425 }
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
604 } else { 609 } else {
605 group_entries = group_iter->second; 610 group_entries = group_iter->second;
606 group_entries->push_back(resource); 611 group_entries->push_back(resource);
607 612
608 // Insert the new entry right after the last entry of its group. 613 // Insert the new entry right after the last entry of its group.
609 ResourceList::iterator iter = 614 ResourceList::iterator iter =
610 std::find(resources_.begin(), 615 std::find(resources_.begin(),
611 resources_.end(), 616 resources_.end(),
612 (*group_entries)[group_entries->size() - 2]); 617 (*group_entries)[group_entries->size() - 2]);
613 DCHECK(iter != resources_.end()); 618 DCHECK(iter != resources_.end());
614 new_entry_index = static_cast<int>(iter - resources_.begin()); 619 new_entry_index = static_cast<int>(iter - resources_.begin()) + 1;
615 resources_.insert(++iter, resource); 620 resources_.insert(++iter, resource);
616 } 621 }
617 622
618 // Create the ProcessMetrics for this process if needed (not in map). 623 // Create the ProcessMetrics for this process if needed (not in map).
619 if (metrics_map_.find(process) == metrics_map_.end()) { 624 if (metrics_map_.find(process) == metrics_map_.end()) {
620 base::ProcessMetrics* pm = 625 base::ProcessMetrics* pm =
621 #if !defined(OS_MACOSX) 626 #if !defined(OS_MACOSX)
622 base::ProcessMetrics::CreateProcessMetrics(process); 627 base::ProcessMetrics::CreateProcessMetrics(process);
623 #else 628 #else
624 base::ProcessMetrics::CreateProcessMetrics(process, 629 base::ProcessMetrics::CreateProcessMetrics(process,
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
708 713
709 // Clear the network maps. 714 // Clear the network maps.
710 current_byte_count_map_.clear(); 715 current_byte_count_map_.clear();
711 displayed_network_usage_map_.clear(); 716 displayed_network_usage_map_.clear();
712 717
713 FOR_EACH_OBSERVER(TaskManagerModelObserver, observer_list_, 718 FOR_EACH_OBSERVER(TaskManagerModelObserver, observer_list_,
714 OnItemsRemoved(0, size)); 719 OnItemsRemoved(0, size));
715 } 720 }
716 } 721 }
717 722
723 void TaskManagerModel::ModelChanged() {
724 // Notify the table that the contents have changed for it to redraw.
725 FOR_EACH_OBSERVER(TaskManagerModelObserver, observer_list_, OnModelChanged());
726 }
727
718 void TaskManagerModel::NotifyResourceTypeStats( 728 void TaskManagerModel::NotifyResourceTypeStats(
719 base::ProcessId renderer_id, 729 base::ProcessId renderer_id,
720 const WebKit::WebCache::ResourceTypeStats& stats) { 730 const WebKit::WebCache::ResourceTypeStats& stats) {
721 for (ResourceList::iterator it = resources_.begin(); 731 for (ResourceList::iterator it = resources_.begin();
722 it != resources_.end(); ++it) { 732 it != resources_.end(); ++it) {
723 if (base::GetProcId((*it)->GetProcess()) == renderer_id) { 733 if (base::GetProcId((*it)->GetProcess()) == renderer_id) {
724 (*it)->NotifyResourceTypeStats(stats); 734 (*it)->NotifyResourceTypeStats(stats);
725 } 735 }
726 } 736 }
727 } 737 }
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
959 } 969 }
960 970
961 void TaskManager::RemoveResource(Resource* resource) { 971 void TaskManager::RemoveResource(Resource* resource) {
962 model_->RemoveResource(resource); 972 model_->RemoveResource(resource);
963 } 973 }
964 974
965 void TaskManager::OnWindowClosed() { 975 void TaskManager::OnWindowClosed() {
966 model_->StopUpdating(); 976 model_->StopUpdating();
967 } 977 }
968 978
979 void TaskManager::ModelChanged() {
980 model_->ModelChanged();
981 }
982
969 // static 983 // static
970 TaskManager* TaskManager::GetInstance() { 984 TaskManager* TaskManager::GetInstance() {
971 return Singleton<TaskManager>::get(); 985 return Singleton<TaskManager>::get();
972 } 986 }
973 987
974 void TaskManager::OpenAboutMemory() { 988 void TaskManager::OpenAboutMemory() {
975 Browser* browser = BrowserList::GetLastActive(); 989 Browser* browser = BrowserList::GetLastActive();
976 990
977 if (!browser) { 991 if (!browser) {
978 // On OS X, the task manager can be open without any open browser windows. 992 // On OS X, the task manager can be open without any open browser windows.
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1010 MetricsMap::const_iterator iter = metrics_map_.find(handle); 1024 MetricsMap::const_iterator iter = metrics_map_.find(handle);
1011 if (iter == metrics_map_.end()) 1025 if (iter == metrics_map_.end())
1012 return false; 1026 return false;
1013 1027
1014 if (!iter->second->GetMemoryBytes(&usage->first, &usage->second)) 1028 if (!iter->second->GetMemoryBytes(&usage->first, &usage->second))
1015 return false; 1029 return false;
1016 1030
1017 memory_usage_map_.insert(std::make_pair(handle, *usage)); 1031 memory_usage_map_.insert(std::make_pair(handle, *usage));
1018 return true; 1032 return true;
1019 } 1033 }
OLDNEW
« no previous file with comments | « chrome/browser/task_manager/task_manager.h ('k') | chrome/browser/task_manager/task_manager_resource_providers.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698