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

Unified Diff: chrome/browser/task_management/providers/child_process_task.cc

Issue 1439213004: Fix various TaskManager bugs and add new enhancements (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: auto*& --> auto* Created 5 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/task_management/providers/child_process_task.cc
diff --git a/chrome/browser/task_management/providers/child_process_task.cc b/chrome/browser/task_management/providers/child_process_task.cc
index b5a8cb7e5e74ff0f5a954dcee2036daa34443b88..58d81c502d985d174b12aff21dc7bd630a8b3d4d 100644
--- a/chrome/browser/task_management/providers/child_process_task.cc
+++ b/chrome/browser/task_management/providers/child_process_task.cc
@@ -6,7 +6,10 @@
#include "base/i18n/rtl.h"
#include "base/numerics/safe_conversions.h"
+#include "base/strings/utf_string_conversions.h"
+#include "chrome/browser/browser_process.h"
#include "chrome/browser/process_resource_usage.h"
+#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/task_management/task_manager_observer.h"
#include "chrome/grit/generated_resources.h"
#include "components/nacl/common/nacl_process_type.h"
@@ -15,6 +18,8 @@
#include "content/public/browser/child_process_data.h"
#include "content/public/common/process_type.h"
#include "content/public/common/service_registry.h"
+#include "extensions/browser/extension_registry.h"
+#include "extensions/common/extension_set.h"
#include "grit/theme_resources.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/resource/resource_bundle.h"
@@ -72,9 +77,26 @@ base::string16 GetLocalizedTitle(const base::string16& title,
result_title);
case PROCESS_TYPE_NACL_BROKER:
return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NACL_BROKER_PREFIX);
- case PROCESS_TYPE_NACL_LOADER:
+ case PROCESS_TYPE_NACL_LOADER: {
+ auto* profile_manager = g_browser_process->profile_manager();
+ if (profile_manager) {
+ // TODO(afakhry): Fix the below looping by plumbing a way to get the
+ // profile or the profile path from the child process host if any.
+ auto loaded_profiles = profile_manager->GetLoadedProfiles();
+ for (auto* profile : loaded_profiles) {
+ auto& enabled_extensions =
+ extensions::ExtensionRegistry::Get(profile)->enabled_extensions();
+ auto extension =
+ enabled_extensions.GetExtensionOrAppByURL(GURL(result_title));
+ if (extension) {
+ result_title = base::UTF8ToUTF16(extension->name());
+ break;
+ }
+ }
+ }
return l10n_util::GetStringFUTF16(IDS_TASK_MANAGER_NACL_PREFIX,
result_title);
+ }
// These types don't need display names or get them from elsewhere.
case content::PROCESS_TYPE_BROWSER:
case content::PROCESS_TYPE_RENDERER:
@@ -127,6 +149,18 @@ ProcessResourceUsage* CreateProcessResourcesSampler(
return new ProcessResourceUsage(service.Pass());
}
+bool UsesV8Memory(int process_type) {
+ switch (process_type) {
+ case content::PROCESS_TYPE_UTILITY:
+ case content::PROCESS_TYPE_BROWSER:
+ case content::PROCESS_TYPE_RENDERER:
+ return true;
+
+ default:
+ return false;
+ }
+}
+
} // namespace
ChildProcessTask::ChildProcessTask(const content::ChildProcessData& data)
@@ -137,7 +171,8 @@ ChildProcessTask::ChildProcessTask(const content::ChildProcessData& data)
v8_memory_allocated_(-1),
v8_memory_used_(-1),
unique_child_process_id_(data.id),
- process_type_(data.process_type) {
+ process_type_(data.process_type),
+ uses_v8_memory_(UsesV8Memory(process_type_)) {
}
ChildProcessTask::~ChildProcessTask() {
@@ -150,6 +185,9 @@ void ChildProcessTask::Refresh(const base::TimeDelta& update_interval,
if ((refresh_flags & REFRESH_TYPE_V8_MEMORY) == 0)
return;
+ if (!uses_v8_memory_)
+ return;
+
// The child process resources refresh is performed asynchronously, we will
// invoke it and record the current values (which might be invalid at the
// moment. We can safely ignore that and count on future refresh cycles
@@ -190,7 +228,7 @@ int ChildProcessTask::GetChildProcessUniqueID() const {
}
bool ChildProcessTask::ReportsV8Memory() const {
- return process_resources_sampler_->ReportsV8MemoryStats();
+ return uses_v8_memory_ && process_resources_sampler_->ReportsV8MemoryStats();
}
int64 ChildProcessTask::GetV8MemoryAllocated() const {
« no previous file with comments | « chrome/browser/task_management/providers/child_process_task.h ('k') | chrome/browser/task_management/providers/task.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698