Commit c5316880 authored by Roman Arora's avatar Roman Arora Committed by Chromium LUCI CQ

WebUIBubbleManager: Specify task manager process label.

Tags the web contents created in the WebUIBubbleManager so that the
specified label shows up in the task manager.

Screenshot: https://drive.google.com/file/d/1cql788sSWWh2aRYrB05-IayXZUVGAzWP/view
See 'Tool: Search Tabs'

Bug: 1151373
Change-Id: Ibbef901623a0bb31a6c2e36eca6dcd13c1327e15
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2587624Reviewed-by: default avatarCaroline Rising <corising@chromium.org>
Reviewed-by: default avatarThomas Lukaszewicz <tluk@chromium.org>
Commit-Queue: Roman Arora <romanarora@chromium.org>
Cr-Commit-Position: refs/heads/master@{#837798}
parent 95f64623
......@@ -17,11 +17,13 @@ constexpr base::TimeDelta kWebViewRetentionTime =
} // namespace
WebUIBubbleManagerBase::WebUIBubbleManagerBase(
int task_manager_string_id,
views::View* anchor_view,
content::BrowserContext* browser_context,
const GURL& webui_url,
bool enable_extension_apis)
: anchor_view_(anchor_view),
: task_manager_string_id_(task_manager_string_id),
anchor_view_(anchor_view),
browser_context_(browser_context),
webui_url_(webui_url),
enable_extension_apis_(enable_extension_apis),
......
......@@ -10,6 +10,7 @@
#include "base/scoped_observation.h"
#include "chrome/browser/extensions/chrome_extension_web_contents_observer.h"
#include "chrome/browser/task_manager/web_contents_tags.h"
#include "chrome/browser/ui/views/bubble/webui_bubble_view.h"
#include "chrome/browser/ui/views/close_bubble_on_tab_activation_helper.h"
#include "ui/views/controls/webview/webview.h"
......@@ -27,7 +28,8 @@ class WebUIBubbleDialogView;
// and caching of the WebView.
class WebUIBubbleManagerBase : public views::WidgetObserver {
public:
WebUIBubbleManagerBase(views::View* anchor_view,
WebUIBubbleManagerBase(int task_manager_string_id,
views::View* anchor_view,
content::BrowserContext* browser_context,
const GURL& webui_url,
bool enable_extension_apis = false);
......@@ -43,6 +45,7 @@ class WebUIBubbleManagerBase : public views::WidgetObserver {
// views::WidgetObserver:
void OnWidgetDestroying(views::Widget* widget) override;
int task_manager_string_id() const { return task_manager_string_id_; }
content::BrowserContext* browser_context() { return browser_context_; }
const GURL& webui_url() const { return webui_url_; }
bool enable_extension_apis() const { return enable_extension_apis_; }
......@@ -59,6 +62,10 @@ class WebUIBubbleManagerBase : public views::WidgetObserver {
virtual std::unique_ptr<WebUIBubbleView> CreateWebView() = 0;
void ResetWebView();
// Used for tagging the web contents so that a distinctive name shows up in
// the task manager.
const int task_manager_string_id_;
views::View* anchor_view_;
content::BrowserContext* browser_context_;
GURL webui_url_;
......@@ -93,12 +100,17 @@ class WebUIBubbleManager : public WebUIBubbleManagerBase {
private:
std::unique_ptr<WebUIBubbleView> CreateWebView() override {
auto web_view = std::make_unique<WebUIBubbleView>(browser_context());
content::WebContents* web_contents = web_view->GetWebContents();
if (enable_extension_apis()) {
// In order for the WebUI in the renderer to use extensions APIs we must
// add a ChromeExtensionWebContentsObserver to the WebView's WebContents.
extensions::ChromeExtensionWebContentsObserver::CreateForWebContents(
web_view->GetWebContents());
web_contents);
}
task_manager::WebContentsTags::CreateForToolContents(
web_contents, task_manager_string_id());
web_view->template LoadURL<T>(webui_url());
return web_view;
}
......
......@@ -7,6 +7,7 @@
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/views/bubble/webui_bubble_dialog_view.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/grit/generated_resources.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "content/public/test/browser_test.h"
......@@ -15,7 +16,8 @@ namespace {
class TestWebUIBubbleManager : public WebUIBubbleManagerBase {
public:
explicit TestWebUIBubbleManager(Browser* browser)
: WebUIBubbleManagerBase(BrowserView::GetBrowserViewForBrowser(browser),
: WebUIBubbleManagerBase(IDS_ACCNAME_TAB_SEARCH,
BrowserView::GetBrowserViewForBrowser(browser),
browser->profile(),
GURL("chrome://about")) {}
TestWebUIBubbleManager(const TestWebUIBubbleManager&) = delete;
......
......@@ -38,6 +38,7 @@ ReadLaterButton::ReadLaterButton(Browser* browser)
l10n_util::GetStringUTF16(IDS_READ_LATER_TITLE)),
browser_(browser),
webui_bubble_manager_(std::make_unique<WebUIBubbleManager<ReadLaterUI>>(
IDS_READ_LATER_TITLE,
this,
browser->profile(),
GURL(chrome::kChromeUIReadLaterURL))) {
......
......@@ -9,6 +9,7 @@
#include "chrome/app/vector_icons/vector_icons.h"
#include "chrome/browser/ui/views/tabs/tab_strip_controller.h"
#include "chrome/common/webui_url_constants.h"
#include "chrome/grit/generated_resources.h"
#include "ui/gfx/paint_vector_icon.h"
#include "ui/gfx/presentation_feedback.h"
#include "ui/views/widget/widget.h"
......@@ -37,7 +38,8 @@ TabSearchOpenAction GetActionForEvent(const ui::Event& event) {
TabSearchButton::TabSearchButton(TabStrip* tab_strip)
: NewTabButton(tab_strip, PressedCallback()),
webui_bubble_manager_(this,
webui_bubble_manager_(IDS_ACCNAME_TAB_SEARCH,
this,
tab_strip->controller()->GetProfile(),
GURL(chrome::kChromeUITabSearchURL),
true),
......
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