OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 //------------------------------------------------------------------------------ | 5 //------------------------------------------------------------------------------ |
6 // Description of the life cycle of a instance of MetricsService. | 6 // Description of the life cycle of a instance of MetricsService. |
7 // | 7 // |
8 // OVERVIEW | 8 // OVERVIEW |
9 // | 9 // |
10 // A MetricsService instance is typically created at application startup. It is | 10 // A MetricsService instance is typically created at application startup. It is |
(...skipping 765 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
776 bool MetricsService::PrepareInitialStabilityLog( | 776 bool MetricsService::PrepareInitialStabilityLog( |
777 const std::string& prefs_previous_version) { | 777 const std::string& prefs_previous_version) { |
778 DCHECK_EQ(INITIALIZED, state_); | 778 DCHECK_EQ(INITIALIZED, state_); |
779 | 779 |
780 std::unique_ptr<MetricsLog> initial_stability_log( | 780 std::unique_ptr<MetricsLog> initial_stability_log( |
781 CreateLog(MetricsLog::INITIAL_STABILITY_LOG)); | 781 CreateLog(MetricsLog::INITIAL_STABILITY_LOG)); |
782 | 782 |
783 // Do not call NotifyOnDidCreateMetricsLog here because the stability | 783 // Do not call NotifyOnDidCreateMetricsLog here because the stability |
784 // log describes stats from the _previous_ session. | 784 // log describes stats from the _previous_ session. |
785 std::string system_profile_app_version; | 785 std::string system_profile_app_version; |
786 if (!initial_stability_log->LoadSavedEnvironmentFromPrefs( | 786 for (auto& provider : metrics_providers_) { |
787 &system_profile_app_version)) { | 787 if (initial_stability_log->LoadSavedEnvironmentFromProvider( |
788 return false; | 788 provider.get(), &system_profile_app_version)) { |
Alexei Svitkine (slow)
2017/05/31 20:31:24
Instead of replacing the profile of the stability
bcwhite
2017/05/31 20:48:29
Currently there is only ever one persistent histog
Alexei Svitkine (slow)
2017/06/01 15:00:29
Per offline discussion, I prefer to not have this
| |
789 break; | |
790 } | |
791 } | |
792 if (system_profile_app_version.empty()) { | |
793 if (!initial_stability_log->LoadSavedEnvironmentFromPrefs( | |
794 &system_profile_app_version)) { | |
795 return false; | |
796 } | |
789 } | 797 } |
790 if (system_profile_app_version != prefs_previous_version) | 798 if (system_profile_app_version != prefs_previous_version) |
791 StabilityMetricsProvider(local_state_).LogStabilityVersionMismatch(); | 799 StabilityMetricsProvider(local_state_).LogStabilityVersionMismatch(); |
792 | 800 |
793 log_manager_.PauseCurrentLog(); | 801 log_manager_.PauseCurrentLog(); |
794 log_manager_.BeginLoggingWithLog(std::move(initial_stability_log)); | 802 log_manager_.BeginLoggingWithLog(std::move(initial_stability_log)); |
795 | 803 |
796 // Note: Some stability providers may record stability stats via histograms, | 804 // Note: Some stability providers may record stability stats via histograms, |
797 // so this call has to be after BeginLoggingWithLog(). | 805 // so this call has to be after BeginLoggingWithLog(). |
798 log_manager_.current_log()->RecordStabilityMetrics( | 806 log_manager_.current_log()->RecordStabilityMetrics( |
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
993 // Redundant setting to assure that we always reset this value at shutdown | 1001 // Redundant setting to assure that we always reset this value at shutdown |
994 // (and that we don't use some alternate path, and not call LogCleanShutdown). | 1002 // (and that we don't use some alternate path, and not call LogCleanShutdown). |
995 clean_shutdown_status_ = CLEANLY_SHUTDOWN; | 1003 clean_shutdown_status_ = CLEANLY_SHUTDOWN; |
996 client_->OnLogCleanShutdown(); | 1004 client_->OnLogCleanShutdown(); |
997 clean_exit_beacon_.WriteBeaconValue(true); | 1005 clean_exit_beacon_.WriteBeaconValue(true); |
998 SetExecutionPhase(ExecutionPhase::SHUTDOWN_COMPLETE, local_state_); | 1006 SetExecutionPhase(ExecutionPhase::SHUTDOWN_COMPLETE, local_state_); |
999 StabilityMetricsProvider(local_state_).MarkSessionEndCompleted(end_completed); | 1007 StabilityMetricsProvider(local_state_).MarkSessionEndCompleted(end_completed); |
1000 } | 1008 } |
1001 | 1009 |
1002 } // namespace metrics | 1010 } // namespace metrics |
OLD | NEW |