| 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 // This file defines a service that collects information about the user | 5 // This file defines a service that collects information about the user |
| 6 // experience in order to help improve future versions of the app. | 6 // experience in order to help improve future versions of the app. |
| 7 | 7 |
| 8 #ifndef COMPONENTS_METRICS_METRICS_SERVICE_H_ | 8 #ifndef COMPONENTS_METRICS_METRICS_SERVICE_H_ |
| 9 #define COMPONENTS_METRICS_METRICS_SERVICE_H_ | 9 #define COMPONENTS_METRICS_METRICS_SERVICE_H_ |
| 10 | 10 |
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 SENDING_INITIAL_METRICS_LOG, // Initial metrics log being sent. | 237 SENDING_INITIAL_METRICS_LOG, // Initial metrics log being sent. |
| 238 SENDING_OLD_LOGS, // Sending unsent logs from last session. | 238 SENDING_OLD_LOGS, // Sending unsent logs from last session. |
| 239 SENDING_CURRENT_LOGS, // Sending ongoing logs as they accrue. | 239 SENDING_CURRENT_LOGS, // Sending ongoing logs as they accrue. |
| 240 }; | 240 }; |
| 241 | 241 |
| 242 enum ShutdownCleanliness { | 242 enum ShutdownCleanliness { |
| 243 CLEANLY_SHUTDOWN = 0xdeadbeef, | 243 CLEANLY_SHUTDOWN = 0xdeadbeef, |
| 244 NEED_TO_SHUTDOWN = ~CLEANLY_SHUTDOWN | 244 NEED_TO_SHUTDOWN = ~CLEANLY_SHUTDOWN |
| 245 }; | 245 }; |
| 246 | 246 |
| 247 friend class ::MetricsServiceAccessor; |
| 248 |
| 247 typedef std::vector<SyntheticTrialGroup> SyntheticTrialGroups; | 249 typedef std::vector<SyntheticTrialGroup> SyntheticTrialGroups; |
| 248 | 250 |
| 249 // Calls into the client to start metrics gathering. | 251 // Calls into the client to start metrics gathering. |
| 250 void StartGatheringMetrics(); | 252 void StartGatheringMetrics(); |
| 251 | 253 |
| 252 // Callback that moves the state to INIT_TASK_DONE. When this is called, the | 254 // Callback that moves the state to INIT_TASK_DONE. When this is called, the |
| 253 // state should be INIT_TASK_SCHEDULED. | 255 // state should be INIT_TASK_SCHEDULED. |
| 254 void FinishedGatheringInitialMetrics(); | 256 void FinishedGatheringInitialMetrics(); |
| 255 | 257 |
| 256 void OnUserAction(const std::string& action); | 258 void OnUserAction(const std::string& action); |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 423 // Whether there is a current log upload in progress. | 425 // Whether there is a current log upload in progress. |
| 424 bool log_upload_in_progress_; | 426 bool log_upload_in_progress_; |
| 425 | 427 |
| 426 // Whether the MetricsService object has received any notifications since | 428 // Whether the MetricsService object has received any notifications since |
| 427 // the last time a transmission was sent. | 429 // the last time a transmission was sent. |
| 428 bool idle_since_last_transmission_; | 430 bool idle_since_last_transmission_; |
| 429 | 431 |
| 430 // A number that identifies the how many times the app has been launched. | 432 // A number that identifies the how many times the app has been launched. |
| 431 int session_id_; | 433 int session_id_; |
| 432 | 434 |
| 433 // Weak pointers factory used to post task on different threads. All weak | |
| 434 // pointers managed by this factory have the same lifetime as MetricsService. | |
| 435 base::WeakPtrFactory<MetricsService> self_ptr_factory_; | |
| 436 | |
| 437 // Weak pointers factory used for saving state. All weak pointers managed by | |
| 438 // this factory are invalidated in ScheduleNextStateSave. | |
| 439 base::WeakPtrFactory<MetricsService> state_saver_factory_; | |
| 440 | |
| 441 // The scheduler for determining when uploads should happen. | 435 // The scheduler for determining when uploads should happen. |
| 442 scoped_ptr<MetricsReportingScheduler> scheduler_; | 436 scoped_ptr<MetricsReportingScheduler> scheduler_; |
| 443 | 437 |
| 444 // Stores the time of the first call to |GetUptimes()|. | 438 // Stores the time of the first call to |GetUptimes()|. |
| 445 base::TimeTicks first_updated_time_; | 439 base::TimeTicks first_updated_time_; |
| 446 | 440 |
| 447 // Stores the time of the last call to |GetUptimes()|. | 441 // Stores the time of the last call to |GetUptimes()|. |
| 448 base::TimeTicks last_updated_time_; | 442 base::TimeTicks last_updated_time_; |
| 449 | 443 |
| 450 // Field trial groups that map to Chrome configuration states. | 444 // Field trial groups that map to Chrome configuration states. |
| 451 SyntheticTrialGroups synthetic_trial_groups_; | 445 SyntheticTrialGroups synthetic_trial_groups_; |
| 452 | 446 |
| 453 // Execution phase the browser is in. | 447 // Execution phase the browser is in. |
| 454 static ExecutionPhase execution_phase_; | 448 static ExecutionPhase execution_phase_; |
| 455 | 449 |
| 456 // Reduntant marker to check that we completed our shutdown, and set the | 450 // Reduntant marker to check that we completed our shutdown, and set the |
| 457 // exited-cleanly bit in the prefs. | 451 // exited-cleanly bit in the prefs. |
| 458 static ShutdownCleanliness clean_shutdown_status_; | 452 static ShutdownCleanliness clean_shutdown_status_; |
| 459 | 453 |
| 460 friend class ::MetricsServiceAccessor; | |
| 461 | |
| 462 FRIEND_TEST_ALL_PREFIXES(MetricsServiceTest, IsPluginProcess); | 454 FRIEND_TEST_ALL_PREFIXES(MetricsServiceTest, IsPluginProcess); |
| 463 FRIEND_TEST_ALL_PREFIXES(MetricsServiceTest, | 455 FRIEND_TEST_ALL_PREFIXES(MetricsServiceTest, |
| 464 PermutedEntropyCacheClearedWhenLowEntropyReset); | 456 PermutedEntropyCacheClearedWhenLowEntropyReset); |
| 465 FRIEND_TEST_ALL_PREFIXES(MetricsServiceTest, RegisterSyntheticTrial); | 457 FRIEND_TEST_ALL_PREFIXES(MetricsServiceTest, RegisterSyntheticTrial); |
| 466 | 458 |
| 459 // Weak pointers factory used to post task on different threads. All weak |
| 460 // pointers managed by this factory have the same lifetime as MetricsService. |
| 461 base::WeakPtrFactory<MetricsService> self_ptr_factory_; |
| 462 |
| 463 // Weak pointers factory used for saving state. All weak pointers managed by |
| 464 // this factory are invalidated in ScheduleNextStateSave. |
| 465 base::WeakPtrFactory<MetricsService> state_saver_factory_; |
| 466 |
| 467 DISALLOW_COPY_AND_ASSIGN(MetricsService); | 467 DISALLOW_COPY_AND_ASSIGN(MetricsService); |
| 468 }; | 468 }; |
| 469 | 469 |
| 470 } // namespace metrics | 470 } // namespace metrics |
| 471 | 471 |
| 472 #endif // COMPONENTS_METRICS_METRICS_SERVICE_H_ | 472 #endif // COMPONENTS_METRICS_METRICS_SERVICE_H_ |
| OLD | NEW |