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

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

Issue 31014: Port DictionaryValue to use string16 instead of wstring. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 9 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/importer/importer.cc ('k') | chrome/browser/metrics/metrics_service.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) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "base/file_version_info.h" 9 #include "base/file_version_info.h"
10 #include "base/md5.h" 10 #include "base/md5.h"
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
376 if (plugin_stats_list) { 376 if (plugin_stats_list) {
377 OPEN_ELEMENT_FOR_SCOPE("plugins"); 377 OPEN_ELEMENT_FOR_SCOPE("plugins");
378 for (ListValue::const_iterator iter = plugin_stats_list->begin(); 378 for (ListValue::const_iterator iter = plugin_stats_list->begin();
379 iter != plugin_stats_list->end(); ++iter) { 379 iter != plugin_stats_list->end(); ++iter) {
380 if (!(*iter)->IsType(Value::TYPE_DICTIONARY)) { 380 if (!(*iter)->IsType(Value::TYPE_DICTIONARY)) {
381 NOTREACHED(); 381 NOTREACHED();
382 continue; 382 continue;
383 } 383 }
384 DictionaryValue* plugin_dict = static_cast<DictionaryValue*>(*iter); 384 DictionaryValue* plugin_dict = static_cast<DictionaryValue*>(*iter);
385 385
386 std::wstring plugin_name; 386 string16 plugin_name;
387 plugin_dict->GetString(prefs::kStabilityPluginName, &plugin_name); 387 plugin_dict->GetString(WideToUTF16Hack(prefs::kStabilityPluginName),
388 &plugin_name);
388 389
389 OPEN_ELEMENT_FOR_SCOPE("pluginstability"); 390 OPEN_ELEMENT_FOR_SCOPE("pluginstability");
390 // Use "filename" instead of "name", otherwise we need to update the 391 // Use "filename" instead of "name", otherwise we need to update the
391 // UMA servers. 392 // UMA servers.
392 WriteAttribute("filename", CreateBase64Hash(WideToUTF8(plugin_name))); 393 WriteAttribute("filename", CreateBase64Hash(UTF16ToUTF8(plugin_name)));
393 394
394 int launches = 0; 395 int launches = 0;
395 plugin_dict->GetInteger(prefs::kStabilityPluginLaunches, &launches); 396 plugin_dict->GetInteger(WideToUTF16Hack(prefs::kStabilityPluginLaunches),
397 &launches);
396 WriteIntAttribute("launchcount", launches); 398 WriteIntAttribute("launchcount", launches);
397 399
398 int instances = 0; 400 int instances = 0;
399 plugin_dict->GetInteger(prefs::kStabilityPluginInstances, &instances); 401 plugin_dict->GetInteger(WideToUTF16Hack(prefs::kStabilityPluginInstances),
402 &instances);
400 WriteIntAttribute("instancecount", instances); 403 WriteIntAttribute("instancecount", instances);
401 404
402 int crashes = 0; 405 int crashes = 0;
403 plugin_dict->GetInteger(prefs::kStabilityPluginCrashes, &crashes); 406 plugin_dict->GetInteger(WideToUTF16Hack(prefs::kStabilityPluginCrashes),
407 &crashes);
404 WriteIntAttribute("crashcount", crashes); 408 WriteIntAttribute("crashcount", crashes);
405 } 409 }
406 410
407 pref->ClearPref(prefs::kStabilityPluginStats); 411 pref->ClearPref(prefs::kStabilityPluginStats);
408 } 412 }
409 } 413 }
410 414
411 void MetricsLog::WriteRequiredStabilityAttributes(PrefService* pref) { 415 void MetricsLog::WriteRequiredStabilityAttributes(PrefService* pref) {
412 // The server refuses data that doesn't have certain values. crashcount and 416 // The server refuses data that doesn't have certain values. crashcount and
413 // launchcount are currently "required" in the "stability" group. 417 // launchcount are currently "required" in the "stability" group.
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
561 565
562 if (profile_metrics) 566 if (profile_metrics)
563 WriteAllProfilesMetrics(*profile_metrics); 567 WriteAllProfilesMetrics(*profile_metrics);
564 } 568 }
565 569
566 void MetricsLog::WriteAllProfilesMetrics( 570 void MetricsLog::WriteAllProfilesMetrics(
567 const DictionaryValue& all_profiles_metrics) { 571 const DictionaryValue& all_profiles_metrics) {
568 const std::wstring profile_prefix(prefs::kProfilePrefix); 572 const std::wstring profile_prefix(prefs::kProfilePrefix);
569 for (DictionaryValue::key_iterator i = all_profiles_metrics.begin_keys(); 573 for (DictionaryValue::key_iterator i = all_profiles_metrics.begin_keys();
570 i != all_profiles_metrics.end_keys(); ++i) { 574 i != all_profiles_metrics.end_keys(); ++i) {
571 const std::wstring& key_name = *i; 575 const string16 key_name16 = *i;
576 const std::wstring& key_name = UTF16ToWideHack(key_name16);
572 if (key_name.compare(0, profile_prefix.size(), profile_prefix) == 0) { 577 if (key_name.compare(0, profile_prefix.size(), profile_prefix) == 0) {
573 DictionaryValue* profile; 578 DictionaryValue* profile;
574 if (all_profiles_metrics.GetDictionary(key_name, &profile)) 579 if (all_profiles_metrics.GetDictionary(key_name16, &profile))
575 WriteProfileMetrics(key_name.substr(profile_prefix.size()), *profile); 580 WriteProfileMetrics(key_name.substr(profile_prefix.size()), *profile);
576 } 581 }
577 } 582 }
578 } 583 }
579 584
580 void MetricsLog::WriteProfileMetrics(const std::wstring& profileidhash, 585 void MetricsLog::WriteProfileMetrics(const std::wstring& profileidhash,
581 const DictionaryValue& profile_metrics) { 586 const DictionaryValue& profile_metrics) {
582 OPEN_ELEMENT_FOR_SCOPE("userprofile"); 587 OPEN_ELEMENT_FOR_SCOPE("userprofile");
583 WriteAttribute("profileidhash", WideToUTF8(profileidhash)); 588 WriteAttribute("profileidhash", WideToUTF8(profileidhash));
584 for (DictionaryValue::key_iterator i = profile_metrics.begin_keys(); 589 for (DictionaryValue::key_iterator i = profile_metrics.begin_keys();
585 i != profile_metrics.end_keys(); ++i) { 590 i != profile_metrics.end_keys(); ++i) {
586 Value* value; 591 Value* value;
587 if (profile_metrics.Get(*i, &value)) { 592 if (profile_metrics.Get(*i, &value)) {
588 DCHECK(*i != L"id"); 593 DCHECK(*i != ASCIIToUTF16("id"));
589 switch (value->GetType()) { 594 switch (value->GetType()) {
590 case Value::TYPE_STRING: { 595 case Value::TYPE_STRING: {
591 std::string string_value; 596 std::string string_value;
592 if (value->GetAsString(&string_value)) { 597 if (value->GetAsString(&string_value)) {
593 OPEN_ELEMENT_FOR_SCOPE("profileparam"); 598 OPEN_ELEMENT_FOR_SCOPE("profileparam");
594 WriteAttribute("name", WideToUTF8(*i)); 599 WriteAttribute("name", UTF16ToUTF8(*i));
595 WriteAttribute("value", string_value); 600 WriteAttribute("value", string_value);
596 } 601 }
597 break; 602 break;
598 } 603 }
599 604
600 case Value::TYPE_BOOLEAN: { 605 case Value::TYPE_BOOLEAN: {
601 bool bool_value; 606 bool bool_value;
602 if (value->GetAsBoolean(&bool_value)) { 607 if (value->GetAsBoolean(&bool_value)) {
603 OPEN_ELEMENT_FOR_SCOPE("profileparam"); 608 OPEN_ELEMENT_FOR_SCOPE("profileparam");
604 WriteAttribute("name", WideToUTF8(*i)); 609 WriteAttribute("name", UTF16ToUTF8(*i));
605 WriteIntAttribute("value", bool_value ? 1 : 0); 610 WriteIntAttribute("value", bool_value ? 1 : 0);
606 } 611 }
607 break; 612 break;
608 } 613 }
609 614
610 case Value::TYPE_INTEGER: { 615 case Value::TYPE_INTEGER: {
611 int int_value; 616 int int_value;
612 if (value->GetAsInteger(&int_value)) { 617 if (value->GetAsInteger(&int_value)) {
613 OPEN_ELEMENT_FOR_SCOPE("profileparam"); 618 OPEN_ELEMENT_FOR_SCOPE("profileparam");
614 WriteAttribute("name", WideToUTF8(*i)); 619 WriteAttribute("name", UTF16ToUTF8(*i));
615 WriteIntAttribute("value", int_value); 620 WriteIntAttribute("value", int_value);
616 } 621 }
617 break; 622 break;
618 } 623 }
619 624
620 default: 625 default:
621 NOTREACHED(); 626 NOTREACHED();
622 break; 627 break;
623 } 628 }
624 } 629 }
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
684 689
685 for (size_t i = 0; i < histogram.bucket_count(); i++) { 690 for (size_t i = 0; i < histogram.bucket_count(); i++) {
686 if (snapshot.counts(i)) { 691 if (snapshot.counts(i)) {
687 OPEN_ELEMENT_FOR_SCOPE("histogrambucket"); 692 OPEN_ELEMENT_FOR_SCOPE("histogrambucket");
688 WriteIntAttribute("min", histogram.ranges(i)); 693 WriteIntAttribute("min", histogram.ranges(i));
689 WriteIntAttribute("max", histogram.ranges(i + 1)); 694 WriteIntAttribute("max", histogram.ranges(i + 1));
690 WriteIntAttribute("count", snapshot.counts(i)); 695 WriteIntAttribute("count", snapshot.counts(i));
691 } 696 }
692 } 697 }
693 } 698 }
OLDNEW
« no previous file with comments | « chrome/browser/importer/importer.cc ('k') | chrome/browser/metrics/metrics_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698