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

Side by Side Diff: chrome/browser/metrics/metrics_log.cc

Issue 6077013: Add support for collecting non-Chrome crash stats in Chrome OS (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 11 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/metrics/metrics_log.h ('k') | chrome/browser/metrics/metrics_log_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/metrics/metrics_log.h" 5 #include "chrome/browser/metrics/metrics_log.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 102
103 { 103 {
104 OPEN_ELEMENT_FOR_SCOPE("stability"); // Minimal set of stability elements. 104 OPEN_ELEMENT_FOR_SCOPE("stability"); // Minimal set of stability elements.
105 WriteRequiredStabilityAttributes(pref); 105 WriteRequiredStabilityAttributes(pref);
106 WriteRealtimeStabilityAttributes(pref); 106 WriteRealtimeStabilityAttributes(pref);
107 107
108 WritePluginStabilityElements(pref); 108 WritePluginStabilityElements(pref);
109 } 109 }
110 } 110 }
111 111
112 void MetricsLog::WriteStabilityElement() { 112 void MetricsLog::WriteStabilityElement(PrefService* pref) {
113 DCHECK(!locked_); 113 DCHECK(!locked_);
114 114
115 PrefService* pref = g_browser_process->local_state();
116 DCHECK(pref); 115 DCHECK(pref);
117 116
118 // Get stability attributes out of Local State, zeroing out stored values. 117 // Get stability attributes out of Local State, zeroing out stored values.
119 // NOTE: This could lead to some data loss if this report isn't successfully 118 // NOTE: This could lead to some data loss if this report isn't successfully
120 // sent, but that's true for all the metrics. 119 // sent, but that's true for all the metrics.
121 120
122 OPEN_ELEMENT_FOR_SCOPE("stability"); 121 OPEN_ELEMENT_FOR_SCOPE("stability");
123 WriteRequiredStabilityAttributes(pref); 122 WriteRequiredStabilityAttributes(pref);
124 WriteRealtimeStabilityAttributes(pref); 123 WriteRealtimeStabilityAttributes(pref);
125 124
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 WriteIntAttribute("rendererhangcount", count); 224 WriteIntAttribute("rendererhangcount", count);
226 pref->SetInteger(prefs::kStabilityRendererHangCount, 0); 225 pref->SetInteger(prefs::kStabilityRendererHangCount, 0);
227 } 226 }
228 227
229 count = pref->GetInteger(prefs::kStabilityChildProcessCrashCount); 228 count = pref->GetInteger(prefs::kStabilityChildProcessCrashCount);
230 if (count) { 229 if (count) {
231 WriteIntAttribute("childprocesscrashcount", count); 230 WriteIntAttribute("childprocesscrashcount", count);
232 pref->SetInteger(prefs::kStabilityChildProcessCrashCount, 0); 231 pref->SetInteger(prefs::kStabilityChildProcessCrashCount, 0);
233 } 232 }
234 233
234 #if defined(OS_CHROMEOS)
235 count = pref->GetInteger(prefs::kStabilityOtherUserCrashCount);
236 if (count) {
237 // TODO(kmixter): Write attribute once log server supports it
238 // and remove warning log.
239 // WriteIntAttribute("otherusercrashcount", count);
240 LOG(WARNING) << "Not yet able to send otherusercrashcount="
241 << count;
242 pref->SetInteger(prefs::kStabilityOtherUserCrashCount, 0);
243 }
244
245 count = pref->GetInteger(prefs::kStabilityKernelCrashCount);
246 if (count) {
247 // TODO(kmixter): Write attribute once log server supports it
248 // and remove warning log.
249 // WriteIntAttribute("kernelcrashcount", count);
250 LOG(WARNING) << "Not yet able to send kernelcrashcount="
251 << count;
252 pref->SetInteger(prefs::kStabilityKernelCrashCount, 0);
253 }
254
255 count = pref->GetInteger(prefs::kStabilitySystemUncleanShutdownCount);
256 if (count) {
257 // TODO(kmixter): Write attribute once log server supports it
258 // and remove warning log.
259 // WriteIntAttribute("systemuncleanshutdowns", count);
260 LOG(WARNING) << "Not yet able to send systemuncleanshutdowns="
261 << count;
262 pref->SetInteger(prefs::kStabilitySystemUncleanShutdownCount, 0);
263 }
264 #endif // OS_CHROMEOS
265
235 int64 recent_duration = GetIncrementalUptime(pref); 266 int64 recent_duration = GetIncrementalUptime(pref);
236 if (recent_duration) 267 if (recent_duration)
237 WriteInt64Attribute("uptimesec", recent_duration); 268 WriteInt64Attribute("uptimesec", recent_duration);
238 } 269 }
239 270
240 void MetricsLog::WritePluginList( 271 void MetricsLog::WritePluginList(
241 const std::vector<webkit::npapi::WebPluginInfo>& plugin_list) { 272 const std::vector<webkit::npapi::WebPluginInfo>& plugin_list) {
242 DCHECK(!locked_); 273 DCHECK(!locked_);
243 274
244 OPEN_ELEMENT_FOR_SCOPE("plugins"); 275 OPEN_ELEMENT_FOR_SCOPE("plugins");
(...skipping 25 matching lines...) Expand all
270 301
271 PrefService* pref = g_browser_process->local_state(); 302 PrefService* pref = g_browser_process->local_state();
272 303
273 OPEN_ELEMENT_FOR_SCOPE("profile"); 304 OPEN_ELEMENT_FOR_SCOPE("profile");
274 WriteCommonEventAttributes(); 305 WriteCommonEventAttributes();
275 306
276 WriteInstallElement(); 307 WriteInstallElement();
277 308
278 WritePluginList(plugin_list); 309 WritePluginList(plugin_list);
279 310
280 WriteStabilityElement(); 311 WriteStabilityElement(pref);
281 312
282 { 313 {
283 OPEN_ELEMENT_FOR_SCOPE("cpu"); 314 OPEN_ELEMENT_FOR_SCOPE("cpu");
284 WriteAttribute("arch", base::SysInfo::CPUArchitecture()); 315 WriteAttribute("arch", base::SysInfo::CPUArchitecture());
285 } 316 }
286 317
287 { 318 {
288 OPEN_ELEMENT_FOR_SCOPE("memory"); 319 OPEN_ELEMENT_FOR_SCOPE("memory");
289 WriteIntAttribute("mb", base::SysInfo::AmountOfPhysicalMemoryMB()); 320 WriteIntAttribute("mb", base::SysInfo::AmountOfPhysicalMemoryMB());
290 #if defined(OS_WIN) 321 #if defined(OS_WIN)
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 const std::string result_type(AutocompleteMatch::TypeToString(i->type)); 480 const std::string result_type(AutocompleteMatch::TypeToString(i->type));
450 if (!result_type.empty()) 481 if (!result_type.empty())
451 WriteAttribute("resulttype", result_type); 482 WriteAttribute("resulttype", result_type);
452 WriteIntAttribute("relevance", i->relevance); 483 WriteIntAttribute("relevance", i->relevance);
453 WriteIntAttribute("isstarred", i->starred ? 1 : 0); 484 WriteIntAttribute("isstarred", i->starred ? 1 : 0);
454 } 485 }
455 } 486 }
456 487
457 ++num_events_; 488 ++num_events_;
458 } 489 }
OLDNEW
« no previous file with comments | « chrome/browser/metrics/metrics_log.h ('k') | chrome/browser/metrics/metrics_log_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698