Commit f6140584 authored by Avi Drissman's avatar Avi Drissman Committed by Commit Bot

Correctly label the "Manage People" window in the Task Manager

The "Manage People" window is not correctly labeled in the
Task Manager. Do so.

Bug: 1115850
Change-Id: Ib749091a49c34e5666b2b82d14c7852f40a2e829
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2364954Reviewed-by: default avatarAhmed Fakhry <afakhry@chromium.org>
Commit-Queue: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#800312}
parent f8e874c9
......@@ -3616,6 +3616,9 @@ are declared in tools/grit/grit_rule.gni.
<message name="IDS_TASK_MANAGER_ARC_PREFIX" desc="The prefix for an ARC general process row">
App: <ph name="ARC_PROCESS_NAME">$1<ex>com.android.systemui</ex></ph>
</message>
<message name="IDS_TASK_MANAGER_TOOL_PREFIX" desc="The prefix for a tool process row in the Task Manager">
Tool: <ph name="PRINT_NAME">$1<ex>Manage People</ex></ph>
</message>
<message name="IDS_TASK_MANAGER_ARC_PREFIX_BACKGROUND_SERVICE" desc="The prefix for an ARC service process row">
Service: <ph name="ARC_PROCESS_NAME">$1<ex>com.android.systemui</ex></ph>
</message>
......
358531a42a6ee1a14c88561c6d74d753dd7f0b99
\ No newline at end of file
......@@ -3747,6 +3747,10 @@ static_library("browser") {
"task_manager/providers/web_contents/tab_contents_tag.h",
"task_manager/providers/web_contents/tab_contents_task.cc",
"task_manager/providers/web_contents/tab_contents_task.h",
"task_manager/providers/web_contents/tool_tag.cc",
"task_manager/providers/web_contents/tool_tag.h",
"task_manager/providers/web_contents/tool_task.cc",
"task_manager/providers/web_contents/tool_task.h",
"task_manager/providers/web_contents/web_contents_tag.cc",
"task_manager/providers/web_contents/web_contents_tag.h",
"task_manager/providers/web_contents/web_contents_tags_manager.cc",
......
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/task_manager/providers/web_contents/tool_tag.h"
#include <memory>
#include "chrome/browser/task_manager/providers/web_contents/tool_task.h"
#include "content/public/browser/web_contents.h"
namespace task_manager {
std::unique_ptr<RendererTask> ToolTag::CreateTask(
WebContentsTaskProvider*) const {
return std::make_unique<ToolTask>(web_contents(), tool_name_);
}
ToolTag::ToolTag(content::WebContents* web_contents, int tool_name)
: WebContentsTag(web_contents), tool_name_(tool_name) {}
ToolTag::~ToolTag() = default;
} // namespace task_manager
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_TASK_MANAGER_PROVIDERS_WEB_CONTENTS_TOOL_TAG_H_
#define CHROME_BROWSER_TASK_MANAGER_PROVIDERS_WEB_CONTENTS_TOOL_TAG_H_
#include "chrome/browser/task_manager/providers/web_contents/tool_task.h"
#include "chrome/browser/task_manager/providers/web_contents/web_contents_tag.h"
namespace task_manager {
// Defines a concrete UserData type for WebContents owned by extensions.
class ToolTag : public WebContentsTag {
public:
~ToolTag() override;
ToolTag(const ToolTag&) = delete;
ToolTag& operator=(const ToolTag&) = delete;
// task_manager::WebContentsTag:
std::unique_ptr<RendererTask> CreateTask(
WebContentsTaskProvider*) const override;
private:
friend class WebContentsTags;
ToolTag(content::WebContents* web_contents, int tool_name);
// The string ID of the name of this tool.
const int tool_name_;
};
} // namespace task_manager
#endif // CHROME_BROWSER_TASK_MANAGER_PROVIDERS_WEB_CONTENTS_TOOL_TAG_H_
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/task_manager/providers/web_contents/tool_task.h"
#include "chrome/grit/generated_resources.h"
#include "chrome/grit/theme_resources.h"
#include "ui/base/l10n/l10n_util.h"
namespace task_manager {
namespace {
base::string16 GetTitle(int tool_name) {
return l10n_util::GetStringFUTF16(IDS_TASK_MANAGER_TOOL_PREFIX,
l10n_util::GetStringUTF16(tool_name));
}
} // namespace
gfx::ImageSkia* ToolTask::s_icon_ = nullptr;
ToolTask::ToolTask(content::WebContents* web_contents, int tool_name)
: RendererTask(GetTitle(tool_name),
FetchIcon(IDR_PLUGINS_FAVICON, &s_icon_),
web_contents) {}
ToolTask::~ToolTask() = default;
void ToolTask::UpdateTitle() {
// The title never needs to change.
}
void ToolTask::UpdateFavicon() {
// The icon never needs to change.
}
} // namespace task_manager
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_TASK_MANAGER_PROVIDERS_WEB_CONTENTS_TOOL_TASK_H_
#define CHROME_BROWSER_TASK_MANAGER_PROVIDERS_WEB_CONTENTS_TOOL_TASK_H_
#include "chrome/browser/task_manager/providers/web_contents/renderer_task.h"
namespace task_manager {
// Defines a task manager representation for WebContents that are created for
// various UI tools.
class ToolTask : public RendererTask {
public:
ToolTask(content::WebContents* web_contents, int tool_name);
~ToolTask() override;
ToolTask(const ToolTask&) = delete;
ToolTask& operator=(const ToolTask&) = delete;
// task_manager::RendererTask:
void UpdateTitle() override;
void UpdateFavicon() override;
private:
static gfx::ImageSkia* s_icon_;
};
} // namespace task_manager
#endif // CHROME_BROWSER_TASK_MANAGER_PROVIDERS_WEB_CONTENTS_TOOL_TASK_H_
......@@ -22,6 +22,7 @@
#include "chrome/browser/task_manager/providers/web_contents/prerender_tag.h"
#include "chrome/browser/task_manager/providers/web_contents/printing_tag.h"
#include "chrome/browser/task_manager/providers/web_contents/tab_contents_tag.h"
#include "chrome/browser/task_manager/providers/web_contents/tool_tag.h"
#include "chrome/browser/task_manager/providers/web_contents/web_contents_tags_manager.h"
#endif // !defined(OS_ANDROID)
......@@ -166,6 +167,18 @@ void WebContentsTags::CreateForPortal(content::WebContents* web_contents) {
#endif // !defined(OS_ANDROID)
}
// static
void WebContentsTags::CreateForToolContents(content::WebContents* web_contents,
int tool_name) {
#if !defined(OS_ANDROID)
if (!WebContentsTag::FromWebContents(web_contents)) {
TagWebContents(web_contents,
base::WrapUnique(new ToolTag(web_contents, tool_name)),
WebContentsTag::kTagKey);
}
#endif // !defined(OS_ANDROID)
}
// static
void WebContentsTags::ClearTag(content::WebContents* web_contents) {
#if !defined(OS_ANDROID)
......
......@@ -85,6 +85,14 @@ class WebContentsTags {
// owned by |web_contents|.
static void CreateForPortal(content::WebContents* web_contents);
// Tag a WebContents created for a tool so that it shows up in the task
// manager. Calling this function creates a ToolTag, and attaches it to
// |web_contents|. If an instance is already attached, this does nothing. The
// resulting tag does not have to be cleaned up by the caller, as it is owned
// by |web_contents|. |tool_name| is the string ID of the name of the tool.
static void CreateForToolContents(content::WebContents* web_contents,
int tool_name);
// Clears the task-manager tag, created by any of the above functions, from
// the given |web_contents| if any.
// Clearing the tag is necessary only when you need to re-tag an existing
......
......@@ -19,6 +19,7 @@
#include "chrome/browser/profiles/profiles_state.h"
#include "chrome/browser/signin/signin_promo.h"
#include "chrome/browser/signin/signin_util.h"
#include "chrome/browser/task_manager/web_contents_tags.h"
#include "chrome/browser/ui/autofill/chrome_autofill_client.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_dialogs.h"
......@@ -388,6 +389,11 @@ void UserManagerView::Init(Profile* system_profile, const GURL& url) {
AddAccelerator(ui::Accelerator(ui::VKEY_W, ui::EF_CONTROL_DOWN));
AddAccelerator(ui::Accelerator(ui::VKEY_F4, ui::EF_ALT_DOWN));
// Make the user manager WebContents show up in the task manager.
content::WebContents* web_contents = web_view_->GetWebContents();
task_manager::WebContentsTags::CreateForToolContents(
web_contents, IDS_PROFILES_MANAGE_USERS_BUTTON);
// If the user manager is being displayed from an existing profile, use
// its last active browser to determine where the user manager should be
// placed. This is used so that we can center the dialog on the correct
......@@ -435,8 +441,7 @@ void UserManagerView::Init(Profile* system_profile, const GURL& url) {
#endif
web_view_->LoadInitialURL(url);
content::RenderWidgetHostView* rwhv =
web_view_->GetWebContents()->GetRenderWidgetHostView();
content::RenderWidgetHostView* rwhv = web_contents->GetRenderWidgetHostView();
if (rwhv)
rwhv->SetBackgroundColor(profiles::kUserManagerBackgroundColor);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment