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

Side by Side Diff: chrome/browser/task_management/providers/web_contents/renderer_task.cc

Issue 1374283003: Reporting top cpu and memory consumers via rappor on chromeos (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: browser/gpu stats by UMA histograms, buckets for cpu cores. 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/task_management/providers/web_contents/renderer_task.h" 5 #include "chrome/browser/task_management/providers/web_contents/renderer_task.h"
6 6
7 #include "base/i18n/rtl.h" 7 #include "base/i18n/rtl.h"
8 #include "base/numerics/safe_conversions.h" 8 #include "base/numerics/safe_conversions.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "chrome/browser/browser_process.h" 10 #include "chrome/browser/browser_process.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 if (index != std::string::npos) 52 if (index != std::string::npos)
53 return cache.GetNameOfProfileAtIndex(index); 53 return cache.GetNameOfProfileAtIndex(index);
54 54
55 return base::string16(); 55 return base::string16();
56 } 56 }
57 57
58 inline bool IsRendererResourceSamplingDisabled(int64 flags) { 58 inline bool IsRendererResourceSamplingDisabled(int64 flags) {
59 return (flags & (REFRESH_TYPE_V8_MEMORY | REFRESH_TYPE_WEBCACHE_STATS)) == 0; 59 return (flags & (REFRESH_TYPE_V8_MEMORY | REFRESH_TYPE_WEBCACHE_STATS)) == 0;
60 } 60 }
61 61
62 std::string GetRapporSampleName(content::WebContents* web_contents) {
63 return web_contents->GetVisibleURL().host();
ncarter (slow) 2015/11/10 23:29:57 I recommend capturing the origin (GURL::GetOrigin(
afakhry 2015/11/12 00:21:28 Done.
64 }
65
62 } // namespace 66 } // namespace
63 67
64 RendererTask::RendererTask(const base::string16& title, 68 RendererTask::RendererTask(const base::string16& title,
65 const gfx::ImageSkia* icon, 69 const gfx::ImageSkia* icon,
66 content::WebContents* web_contents, 70 content::WebContents* web_contents,
67 content::RenderProcessHost* render_process_host) 71 content::RenderProcessHost* render_process_host)
68 : Task(title, icon, render_process_host->GetHandle()), 72 : Task(title,
73 GetRapporSampleName(web_contents),
74 icon,
75 render_process_host->GetHandle()),
69 web_contents_(web_contents), 76 web_contents_(web_contents),
70 render_process_host_(render_process_host), 77 render_process_host_(render_process_host),
71 renderer_resources_sampler_( 78 renderer_resources_sampler_(
72 CreateRendererResourcesSampler(render_process_host_)), 79 CreateRendererResourcesSampler(render_process_host_)),
73 render_process_id_(render_process_host_->GetID()), 80 render_process_id_(render_process_host_->GetID()),
74 v8_memory_allocated_(0), 81 v8_memory_allocated_(0),
75 v8_memory_used_(0), 82 v8_memory_used_(0),
76 webcache_stats_(), 83 webcache_stats_(),
77 profile_name_(GetRendererProfileName(render_process_host_)) { 84 profile_name_(GetRendererProfileName(render_process_host_)) {
78 // All renderer tasks are capable of reporting network usage, so the default 85 // All renderer tasks are capable of reporting network usage, so the default
79 // invalid value of -1 doesn't apply here. 86 // invalid value of -1 doesn't apply here.
80 OnNetworkBytesRead(0); 87 OnNetworkBytesRead(0);
81 88
82 // Tag the web_contents with a |ContentFaviconDriver| (if needed) so that 89 // Tag the web_contents with a |ContentFaviconDriver| (if needed) so that
83 // we can use it to observe favicons changes. 90 // we can use it to observe favicons changes.
84 favicon::CreateContentFaviconDriverForWebContents(web_contents); 91 favicon::CreateContentFaviconDriverForWebContents(web_contents);
85 favicon::ContentFaviconDriver::FromWebContents(web_contents)->AddObserver( 92 favicon::ContentFaviconDriver::FromWebContents(web_contents)->AddObserver(
86 this); 93 this);
87 } 94 }
88 95
89 RendererTask::~RendererTask() { 96 RendererTask::~RendererTask() {
90 favicon::ContentFaviconDriver::FromWebContents(web_contents())-> 97 favicon::ContentFaviconDriver::FromWebContents(web_contents())->
91 RemoveObserver(this); 98 RemoveObserver(this);
92 } 99 }
93 100
101 void RendererTask::UpdateRapporSampleName() {
102 set_rappor_sample_name(GetRapporSampleName(web_contents()));
103 }
104
94 void RendererTask::Activate() { 105 void RendererTask::Activate() {
95 if (!web_contents_->GetDelegate()) 106 if (!web_contents_->GetDelegate())
96 return; 107 return;
97 108
98 web_contents_->GetDelegate()->ActivateContents(web_contents_); 109 web_contents_->GetDelegate()->ActivateContents(web_contents_);
99 } 110 }
100 111
101 void RendererTask::Refresh(const base::TimeDelta& update_interval, 112 void RendererTask::Refresh(const base::TimeDelta& update_interval,
102 int64 refresh_flags) { 113 int64 refresh_flags) {
103 Task::Refresh(update_interval, refresh_flags); 114 Task::Refresh(update_interval, refresh_flags);
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 if (is_incognito) 229 if (is_incognito)
219 message_id = IDS_TASK_MANAGER_EXTENSION_INCOGNITO_PREFIX; 230 message_id = IDS_TASK_MANAGER_EXTENSION_INCOGNITO_PREFIX;
220 else 231 else
221 message_id = IDS_TASK_MANAGER_EXTENSION_PREFIX; 232 message_id = IDS_TASK_MANAGER_EXTENSION_PREFIX;
222 } 233 }
223 234
224 return l10n_util::GetStringFUTF16(message_id, title); 235 return l10n_util::GetStringFUTF16(message_id, title);
225 } 236 }
226 237
227 } // namespace task_management 238 } // namespace task_management
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698