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

Unified Diff: chrome/browser/task_manager/providers/web_contents/subframe_task.cc

Issue 2437253002: Improve TDI render process naming in the task manager. (Closed)
Patch Set: typo Created 4 years, 2 months 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_manager/providers/web_contents/subframe_task.cc
diff --git a/chrome/browser/task_manager/providers/web_contents/subframe_task.cc b/chrome/browser/task_manager/providers/web_contents/subframe_task.cc
index c43cc227fba33a063db84eb96c622c8ea9b1399d..4f772bdd0ae667ec3203781d3794561d6d074b5b 100644
--- a/chrome/browser/task_manager/providers/web_contents/subframe_task.cc
+++ b/chrome/browser/task_manager/providers/web_contents/subframe_task.cc
@@ -19,43 +19,16 @@
namespace task_manager {
-namespace {
-
-base::string16 AdjustTitle(const content::SiteInstance* site_instance) {
- DCHECK(site_instance);
-
- // By default, subframe rows display the site, like this:
- // "Subframe: http://example.com/"
- const GURL& site_url = site_instance->GetSiteURL();
- std::string name = site_url.spec();
-
- // If |site_url| wraps a chrome extension id, we can display the extension
- // name instead, which is more human-readable.
- if (site_url.SchemeIs(extensions::kExtensionScheme)) {
- const extensions::Extension* extension =
- extensions::ExtensionRegistry::Get(site_instance->GetBrowserContext())
- ->enabled_extensions()
- .GetExtensionOrAppByURL(site_url);
- if (extension)
- name = extension->name();
- }
-
- int message_id = site_instance->GetBrowserContext()->IsOffTheRecord() ?
- IDS_TASK_MANAGER_SUBFRAME_INCOGNITO_PREFIX :
- IDS_TASK_MANAGER_SUBFRAME_PREFIX;
- return l10n_util::GetStringFUTF16(message_id, base::UTF8ToUTF16(name));
-}
-
-} // namespace
-
SubframeTask::SubframeTask(content::RenderFrameHost* render_frame_host,
content::WebContents* web_contents,
RendererTask* main_task)
- : RendererTask(AdjustTitle(render_frame_host->GetSiteInstance()),
+ : RendererTask(base::string16(),
nullptr,
web_contents,
render_frame_host->GetProcess()),
+ site_instance_(render_frame_host->GetSiteInstance()),
main_task_(main_task) {
+ set_title(GetTitle());
// Note that we didn't get the RenderProcessHost from the WebContents, but
// rather from the RenderFrameHost. Out-of-process iframes reside on
// different processes than that of their main frame.
@@ -65,8 +38,7 @@ SubframeTask::~SubframeTask() {
}
void SubframeTask::UpdateTitle() {
ncarter (slow) 2016/10/24 22:55:31 Could you add a task_manager_browsertest that does
Avi (use Gerrit) 2016/10/26 00:41:39 Done.
- // This will be called when the title changes on the WebContents's main frame,
- // but this Task represents other frames, so we don't care.
+ set_title(GetTitle());
}
void SubframeTask::UpdateFavicon() {
@@ -83,4 +55,38 @@ void SubframeTask::Activate() {
main_task_->Activate();
}
+base::string16 SubframeTask::GetTitle() {
+ DCHECK(site_instance_);
+
+ if (site_instance_->IsDefaultSubframeSiteInstance()) {
+ base::string16 main_task_title =
+ main_task_->GetTitleFromWebContents(main_task_->web_contents());
+ int message_id = site_instance_->GetBrowserContext()->IsOffTheRecord()
+ ? IDS_TASK_MANAGER_ISOLATED_INCOGNITO_SUBFRAMES_PREFIX
+ : IDS_TASK_MANAGER_ISOLATED_SUBFRAMES_PREFIX;
+ return l10n_util::GetStringFUTF16(message_id, main_task_title);
+ }
+
+ // By default, subframe rows display the site, like this:
+ // "Subframe: http://example.com/"
+ const GURL& site_url = site_instance_->GetSiteURL();
+ std::string name = site_url.spec();
+
+ // If |site_url| wraps a chrome extension id, we can display the extension
+ // name instead, which is more human-readable.
+ if (site_url.SchemeIs(extensions::kExtensionScheme)) {
+ const extensions::Extension* extension =
+ extensions::ExtensionRegistry::Get(site_instance_->GetBrowserContext())
+ ->enabled_extensions()
+ .GetExtensionOrAppByURL(site_url);
+ if (extension)
+ name = extension->name();
+ }
+
+ int message_id = site_instance_->GetBrowserContext()->IsOffTheRecord()
+ ? IDS_TASK_MANAGER_SUBFRAME_INCOGNITO_PREFIX
+ : IDS_TASK_MANAGER_SUBFRAME_PREFIX;
+ return l10n_util::GetStringFUTF16(message_id, base::UTF8ToUTF16(name));
+}
+
} // namespace task_manager

Powered by Google App Engine
This is Rietveld 408576698