| OLD | NEW |
| 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/memory_details.h" | 5 #include "chrome/browser/memory_details.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <set> | 8 #include <set> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 209 | 209 |
| 210 info.process_type = iter.GetData().process_type; | 210 info.process_type = iter.GetData().process_type; |
| 211 info.renderer_type = ProcessMemoryInformation::RENDERER_UNKNOWN; | 211 info.renderer_type = ProcessMemoryInformation::RENDERER_UNKNOWN; |
| 212 info.titles.push_back(iter.GetData().name); | 212 info.titles.push_back(iter.GetData().name); |
| 213 child_info.push_back(info); | 213 child_info.push_back(info); |
| 214 } | 214 } |
| 215 | 215 |
| 216 // Now go do expensive memory lookups in a thread pool. | 216 // Now go do expensive memory lookups in a thread pool. |
| 217 base::PostTaskWithTraits( | 217 base::PostTaskWithTraits( |
| 218 FROM_HERE, | 218 FROM_HERE, |
| 219 base::TaskTraits() | 219 {base::MayBlock(), base::TaskPriority::BACKGROUND, |
| 220 .MayBlock() | 220 base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN}, |
| 221 .WithPriority(base::TaskPriority::BACKGROUND) | |
| 222 .WithShutdownBehavior( | |
| 223 base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN), | |
| 224 base::BindOnce(&MemoryDetails::CollectProcessData, this, child_info)); | 221 base::BindOnce(&MemoryDetails::CollectProcessData, this, child_info)); |
| 225 } | 222 } |
| 226 | 223 |
| 227 void MemoryDetails::CollectChildInfoOnUIThread() { | 224 void MemoryDetails::CollectChildInfoOnUIThread() { |
| 228 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 225 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 229 ProcessData* const chrome_browser = ChromeBrowser(); | 226 ProcessData* const chrome_browser = ChromeBrowser(); |
| 230 | 227 |
| 231 // First pass, collate the widgets by process ID. | 228 // First pass, collate the widgets by process ID. |
| 232 std::map<base::ProcessId, std::vector<RenderWidgetHost*>> widgets_by_pid; | 229 std::map<base::ProcessId, std::vector<RenderWidgetHost*>> widgets_by_pid; |
| 233 std::unique_ptr<content::RenderWidgetHostIterator> widget_it( | 230 std::unique_ptr<content::RenderWidgetHostIterator> widget_it( |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 358 // Get rid of other Chrome processes that are from a different profile. | 355 // Get rid of other Chrome processes that are from a different profile. |
| 359 auto is_unknown = [](ProcessMemoryInformation& process) { | 356 auto is_unknown = [](ProcessMemoryInformation& process) { |
| 360 return process.process_type == content::PROCESS_TYPE_UNKNOWN; | 357 return process.process_type == content::PROCESS_TYPE_UNKNOWN; |
| 361 }; | 358 }; |
| 362 auto& vector = chrome_browser->processes; | 359 auto& vector = chrome_browser->processes; |
| 363 vector.erase(std::remove_if(vector.begin(), vector.end(), is_unknown), | 360 vector.erase(std::remove_if(vector.begin(), vector.end(), is_unknown), |
| 364 vector.end()); | 361 vector.end()); |
| 365 | 362 |
| 366 OnDetailsAvailable(); | 363 OnDetailsAvailable(); |
| 367 } | 364 } |
| OLD | NEW |