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

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

Issue 292433015: Refactor MetricsLogChromeOS to ChromeOSMetricsProvider. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 7 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 #include "base/android/build_info.h" 48 #include "base/android/build_info.h"
49 #endif 49 #endif
50 50
51 #if defined(OS_WIN) 51 #if defined(OS_WIN)
52 #include "base/win/metro.h" 52 #include "base/win/metro.h"
53 53
54 // http://blogs.msdn.com/oldnewthing/archive/2004/10/25/247180.aspx 54 // http://blogs.msdn.com/oldnewthing/archive/2004/10/25/247180.aspx
55 extern "C" IMAGE_DOS_HEADER __ImageBase; 55 extern "C" IMAGE_DOS_HEADER __ImageBase;
56 #endif 56 #endif
57 57
58 #if defined(OS_CHROMEOS)
59 #include "chrome/browser/metrics/metrics_log_chromeos.h"
60 #endif // OS_CHROMEOS
61
62 using content::GpuDataManager; 58 using content::GpuDataManager;
63 using metrics::MetricsLogBase; 59 using metrics::MetricsLogBase;
64 using metrics::ProfilerEventProto; 60 using metrics::ProfilerEventProto;
65 using metrics::SystemProfileProto; 61 using metrics::SystemProfileProto;
66 using tracked_objects::ProcessDataSnapshot; 62 using tracked_objects::ProcessDataSnapshot;
67 typedef variations::ActiveGroupId ActiveGroupId; 63 typedef variations::ActiveGroupId ActiveGroupId;
68 64
69 namespace { 65 namespace {
70 66
71 // Returns the date at which the current metrics client ID was created as 67 // Returns the date at which the current metrics client ID was created as
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 282
287 MetricsLog::MetricsLog(const std::string& client_id, 283 MetricsLog::MetricsLog(const std::string& client_id,
288 int session_id, 284 int session_id,
289 LogType log_type) 285 LogType log_type)
290 : MetricsLogBase(client_id, session_id, log_type, 286 : MetricsLogBase(client_id, session_id, log_type,
291 MetricsLog::GetVersionString()), 287 MetricsLog::GetVersionString()),
292 creation_time_(base::TimeTicks::Now()), 288 creation_time_(base::TimeTicks::Now()),
293 extension_metrics_(uma_proto()->client_id()) { 289 extension_metrics_(uma_proto()->client_id()) {
294 uma_proto()->mutable_system_profile()->set_channel( 290 uma_proto()->mutable_system_profile()->set_channel(
295 AsProtobufChannel(chrome::VersionInfo::GetChannel())); 291 AsProtobufChannel(chrome::VersionInfo::GetChannel()));
296
297 #if defined(OS_CHROMEOS)
298 metrics_log_chromeos_.reset(new MetricsLogChromeOS(uma_proto()));
299 #endif // OS_CHROMEOS
300 } 292 }
301 293
302 MetricsLog::~MetricsLog() {} 294 MetricsLog::~MetricsLog() {}
303 295
304 // static 296 // static
305 void MetricsLog::RegisterPrefs(PrefRegistrySimple* registry) { 297 void MetricsLog::RegisterPrefs(PrefRegistrySimple* registry) {
306 registry->RegisterListPref(prefs::kStabilityPluginStats); 298 registry->RegisterListPref(prefs::kStabilityPluginStats);
307 } 299 }
308 300
309 // static 301 // static
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
548 stability->set_renderer_hang_count(count); 540 stability->set_renderer_hang_count(count);
549 pref->SetInteger(prefs::kStabilityRendererHangCount, 0); 541 pref->SetInteger(prefs::kStabilityRendererHangCount, 0);
550 } 542 }
551 543
552 count = pref->GetInteger(prefs::kStabilityChildProcessCrashCount); 544 count = pref->GetInteger(prefs::kStabilityChildProcessCrashCount);
553 if (count) { 545 if (count) {
554 stability->set_child_process_crash_count(count); 546 stability->set_child_process_crash_count(count);
555 pref->SetInteger(prefs::kStabilityChildProcessCrashCount, 0); 547 pref->SetInteger(prefs::kStabilityChildProcessCrashCount, 0);
556 } 548 }
557 549
558 #if defined(OS_CHROMEOS)
559 metrics_log_chromeos_->WriteRealtimeStabilityAttributes(pref);
560 #endif // OS_CHROMEOS
561
562 const uint64 incremental_uptime_sec = incremental_uptime.InSeconds(); 550 const uint64 incremental_uptime_sec = incremental_uptime.InSeconds();
563 if (incremental_uptime_sec) 551 if (incremental_uptime_sec)
564 stability->set_incremental_uptime_sec(incremental_uptime_sec); 552 stability->set_incremental_uptime_sec(incremental_uptime_sec);
565 const uint64 uptime_sec = uptime.InSeconds(); 553 const uint64 uptime_sec = uptime.InSeconds();
566 if (uptime_sec) 554 if (uptime_sec)
567 stability->set_uptime_sec(uptime_sec); 555 stability->set_uptime_sec(uptime_sec);
568 } 556 }
569 557
570 void MetricsLog::WritePluginList( 558 void MetricsLog::WritePluginList(
571 const std::vector<content::WebPluginInfo>& plugin_list) { 559 const std::vector<content::WebPluginInfo>& plugin_list) {
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
677 #endif 665 #endif
678 666
679 WritePluginList(plugin_list); 667 WritePluginList(plugin_list);
680 extension_metrics_.WriteExtensionList(uma_proto()->mutable_system_profile()); 668 extension_metrics_.WriteExtensionList(uma_proto()->mutable_system_profile());
681 669
682 std::vector<ActiveGroupId> field_trial_ids; 670 std::vector<ActiveGroupId> field_trial_ids;
683 GetFieldTrialIds(&field_trial_ids); 671 GetFieldTrialIds(&field_trial_ids);
684 WriteFieldTrials(field_trial_ids, system_profile); 672 WriteFieldTrials(field_trial_ids, system_profile);
685 WriteFieldTrials(synthetic_trials, system_profile); 673 WriteFieldTrials(synthetic_trials, system_profile);
686 674
687 #if defined(OS_CHROMEOS)
688 metrics_log_chromeos_->LogChromeOSMetrics();
689 #endif // OS_CHROMEOS
690
691 for (size_t i = 0; i < metrics_providers.size(); ++i) 675 for (size_t i = 0; i < metrics_providers.size(); ++i)
692 metrics_providers[i]->ProvideSystemProfileMetrics(system_profile); 676 metrics_providers[i]->ProvideSystemProfileMetrics(system_profile);
693 677
694 std::string serialied_system_profile; 678 std::string serialied_system_profile;
695 std::string base64_system_profile; 679 std::string base64_system_profile;
696 if (system_profile->SerializeToString(&serialied_system_profile)) { 680 if (system_profile->SerializeToString(&serialied_system_profile)) {
697 base::Base64Encode(serialied_system_profile, &base64_system_profile); 681 base::Base64Encode(serialied_system_profile, &base64_system_profile);
698 PrefService* local_state = GetPrefService(); 682 PrefService* local_state = GetPrefService();
699 local_state->SetString(prefs::kStabilitySavedSystemProfile, 683 local_state->SetString(prefs::kStabilitySavedSystemProfile,
700 base64_system_profile); 684 base64_system_profile);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
739 profile = uma_proto()->add_profiler_event(); 723 profile = uma_proto()->add_profiler_event();
740 profile->set_profile_type(ProfilerEventProto::STARTUP_PROFILE); 724 profile->set_profile_type(ProfilerEventProto::STARTUP_PROFILE);
741 profile->set_time_source(ProfilerEventProto::WALL_CLOCK_TIME); 725 profile->set_time_source(ProfilerEventProto::WALL_CLOCK_TIME);
742 } else { 726 } else {
743 // For the remaining calls, re-use the existing field. 727 // For the remaining calls, re-use the existing field.
744 profile = uma_proto()->mutable_profiler_event(0); 728 profile = uma_proto()->mutable_profiler_event(0);
745 } 729 }
746 730
747 WriteProfilerData(process_data, process_type, profile); 731 WriteProfilerData(process_data, process_type, profile);
748 } 732 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698