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

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

Issue 441008: Many changes to DictionaryValues:... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years 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
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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"
11 #include "base/scoped_ptr.h" 11 #include "base/scoped_ptr.h"
(...skipping 552 matching lines...) Expand 10 before | Expand all | Expand 10 after
564 } 564 }
565 565
566 void MetricsLog::WriteAllProfilesMetrics( 566 void MetricsLog::WriteAllProfilesMetrics(
567 const DictionaryValue& all_profiles_metrics) { 567 const DictionaryValue& all_profiles_metrics) {
568 const std::wstring profile_prefix(prefs::kProfilePrefix); 568 const std::wstring profile_prefix(prefs::kProfilePrefix);
569 for (DictionaryValue::key_iterator i = all_profiles_metrics.begin_keys(); 569 for (DictionaryValue::key_iterator i = all_profiles_metrics.begin_keys();
570 i != all_profiles_metrics.end_keys(); ++i) { 570 i != all_profiles_metrics.end_keys(); ++i) {
571 const std::wstring& key_name = *i; 571 const std::wstring& key_name = *i;
572 if (key_name.compare(0, profile_prefix.size(), profile_prefix) == 0) { 572 if (key_name.compare(0, profile_prefix.size(), profile_prefix) == 0) {
573 DictionaryValue* profile; 573 DictionaryValue* profile;
574 if (all_profiles_metrics.GetDictionary(key_name, &profile)) 574 if (all_profiles_metrics.GetDictionaryWithoutPathExpansion(key_name,
575 &profile))
575 WriteProfileMetrics(key_name.substr(profile_prefix.size()), *profile); 576 WriteProfileMetrics(key_name.substr(profile_prefix.size()), *profile);
576 } 577 }
577 } 578 }
578 } 579 }
579 580
580 void MetricsLog::WriteProfileMetrics(const std::wstring& profileidhash, 581 void MetricsLog::WriteProfileMetrics(const std::wstring& profileidhash,
581 const DictionaryValue& profile_metrics) { 582 const DictionaryValue& profile_metrics) {
582 OPEN_ELEMENT_FOR_SCOPE("userprofile"); 583 OPEN_ELEMENT_FOR_SCOPE("userprofile");
583 WriteAttribute("profileidhash", WideToUTF8(profileidhash)); 584 WriteAttribute("profileidhash", WideToUTF8(profileidhash));
584 for (DictionaryValue::key_iterator i = profile_metrics.begin_keys(); 585 for (DictionaryValue::key_iterator i = profile_metrics.begin_keys();
585 i != profile_metrics.end_keys(); ++i) { 586 i != profile_metrics.end_keys(); ++i) {
586 Value* value; 587 Value* value;
587 if (profile_metrics.Get(*i, &value)) { 588 if (profile_metrics.GetWithoutPathExpansion(*i, &value)) {
588 DCHECK(*i != L"id"); 589 DCHECK(*i != L"id");
589 switch (value->GetType()) { 590 switch (value->GetType()) {
590 case Value::TYPE_STRING: { 591 case Value::TYPE_STRING: {
591 std::string string_value; 592 std::string string_value;
592 if (value->GetAsString(&string_value)) { 593 if (value->GetAsString(&string_value)) {
593 OPEN_ELEMENT_FOR_SCOPE("profileparam"); 594 OPEN_ELEMENT_FOR_SCOPE("profileparam");
594 WriteAttribute("name", WideToUTF8(*i)); 595 WriteAttribute("name", WideToUTF8(*i));
595 WriteAttribute("value", string_value); 596 WriteAttribute("value", string_value);
596 } 597 }
597 break; 598 break;
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
684 685
685 for (size_t i = 0; i < histogram.bucket_count(); i++) { 686 for (size_t i = 0; i < histogram.bucket_count(); i++) {
686 if (snapshot.counts(i)) { 687 if (snapshot.counts(i)) {
687 OPEN_ELEMENT_FOR_SCOPE("histogrambucket"); 688 OPEN_ELEMENT_FOR_SCOPE("histogrambucket");
688 WriteIntAttribute("min", histogram.ranges(i)); 689 WriteIntAttribute("min", histogram.ranges(i));
689 WriteIntAttribute("max", histogram.ranges(i + 1)); 690 WriteIntAttribute("max", histogram.ranges(i + 1));
690 WriteIntAttribute("count", snapshot.counts(i)); 691 WriteIntAttribute("count", snapshot.counts(i));
691 } 692 }
692 } 693 }
693 } 694 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698