Fix --force-fieldtrials= changing group of unrelated trials.

The command-line flag would turn off UMA, so as not to bias server-
side data. But this had the consequence of changing how all field
trials are randomized (causing the low entropy source to be used),
which would cause unintended side-effects and in particular make it
very hard to effectively debug trial behavior.

This change updates the logic so that specifying that flag does not
change the state of UMA consent, but instead changes the state of
UMA reporting. This way, field trials are still randomized the
same way, but UMA data is not reported.

Includes a unit test.

Bug: 932273
Change-Id: I4216bb23a9784d963f30d0e2516e1e4d31784ab7
Reviewed-on: https://chromium-review.googlesource.com/c/1479632
Reviewed-by: Jesse Doherty <jwd@chromium.org>
Commit-Queue: Alexei Svitkine <asvitkine@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#634885}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 047cb6b71b9f55363c1408b83099b3dac406ed64
2 files changed
tree: dd876f1c9cbd32688bbd6395ff6081a99af5c265
  1. gpu/
  2. net/
  3. public/
  4. serialization/
  5. ui/
  6. BUILD.gn
  7. call_stack_profile_builder.cc
  8. call_stack_profile_builder.h
  9. call_stack_profile_builder_unittest.cc
  10. call_stack_profile_collector.cc
  11. call_stack_profile_collector.h
  12. call_stack_profile_encoding.cc
  13. call_stack_profile_encoding.h
  14. call_stack_profile_metrics_provider.cc
  15. call_stack_profile_metrics_provider.h
  16. call_stack_profile_metrics_provider_unittest.cc
  17. call_stack_profile_params.h
  18. child_call_stack_profile_collector.cc
  19. child_call_stack_profile_collector.h
  20. child_call_stack_profile_collector_unittest.cc
  21. clean_exit_beacon.cc
  22. clean_exit_beacon.h
  23. client_info.cc
  24. client_info.h
  25. cloned_install_detector.cc
  26. cloned_install_detector.h
  27. cloned_install_detector_unittest.cc
  28. component_metrics_provider.cc
  29. component_metrics_provider.h
  30. component_metrics_provider_unittest.cc
  31. cpu_metrics_provider.cc
  32. cpu_metrics_provider.h
  33. daily_event.cc
  34. daily_event.h
  35. daily_event_unittest.cc
  36. data_use_tracker.cc
  37. data_use_tracker.h
  38. data_use_tracker_unittest.cc
  39. delegating_provider.cc
  40. delegating_provider.h
  41. DEPS
  42. drive_metrics_provider.cc
  43. drive_metrics_provider.h
  44. drive_metrics_provider_android.cc
  45. drive_metrics_provider_fuchsia.cc
  46. drive_metrics_provider_ios.mm
  47. drive_metrics_provider_linux.cc
  48. drive_metrics_provider_mac.mm
  49. drive_metrics_provider_unittest.cc
  50. drive_metrics_provider_win.cc
  51. enabled_state_provider.cc
  52. enabled_state_provider.h
  53. environment_recorder.cc
  54. environment_recorder.h
  55. environment_recorder_unittest.cc
  56. expired_histogram_util.cc
  57. expired_histogram_util.h
  58. expired_histograms_checker.cc
  59. expired_histograms_checker.h
  60. expired_histograms_checker_unittest.cc
  61. field_trials_provider.cc
  62. field_trials_provider.h
  63. field_trials_provider_unittest.cc
  64. file_metrics_provider.cc
  65. file_metrics_provider.h
  66. file_metrics_provider_unittest.cc
  67. generate_expired_histograms_array.gni
  68. histogram_encoder.cc
  69. histogram_encoder.h
  70. histogram_encoder_unittest.cc
  71. log_decoder.cc
  72. log_decoder.h
  73. log_store.h
  74. machine_id_provider.h
  75. machine_id_provider_stub.cc
  76. machine_id_provider_win.cc
  77. machine_id_provider_win_unittest.cc
  78. metrics_log.cc
  79. metrics_log.h
  80. metrics_log_manager.cc
  81. metrics_log_manager.h
  82. metrics_log_manager_unittest.cc
  83. metrics_log_store.cc
  84. metrics_log_store.h
  85. metrics_log_store_unittest.cc
  86. metrics_log_unittest.cc
  87. metrics_log_uploader.h
  88. metrics_pref_names.cc
  89. metrics_pref_names.h
  90. metrics_provider.cc
  91. metrics_provider.h
  92. metrics_reporting_default_state.cc
  93. metrics_reporting_default_state.h
  94. metrics_reporting_service.cc
  95. metrics_reporting_service.h
  96. metrics_rotation_scheduler.cc
  97. metrics_rotation_scheduler.h
  98. metrics_scheduler.cc
  99. metrics_scheduler.h
  100. metrics_service.cc
  101. metrics_service.h
  102. metrics_service_accessor.cc
  103. metrics_service_accessor.h
  104. metrics_service_client.cc
  105. metrics_service_client.h
  106. metrics_service_unittest.cc
  107. metrics_state_manager.cc
  108. metrics_state_manager.h
  109. metrics_state_manager_unittest.cc
  110. metrics_switches.cc
  111. metrics_switches.h
  112. metrics_upload_scheduler.cc
  113. metrics_upload_scheduler.h
  114. OWNERS
  115. persisted_logs.cc
  116. persisted_logs.h
  117. persisted_logs_metrics.h
  118. persisted_logs_metrics_impl.cc
  119. persisted_logs_metrics_impl.h
  120. persisted_logs_unittest.cc
  121. persistent_system_profile.cc
  122. persistent_system_profile.h
  123. persistent_system_profile_unittest.cc
  124. README
  125. reporting_service.cc
  126. reporting_service.h
  127. reporting_service_unittest.cc
  128. single_sample_metrics.cc
  129. single_sample_metrics.h
  130. single_sample_metrics_factory_impl.cc
  131. single_sample_metrics_factory_impl.h
  132. single_sample_metrics_factory_impl_unittest.cc
  133. stability_metrics_helper.cc
  134. stability_metrics_helper.h
  135. stability_metrics_helper_unittest.cc
  136. stability_metrics_provider.cc
  137. stability_metrics_provider.h
  138. stability_metrics_provider_unittest.cc
  139. system_memory_stats_recorder.h
  140. system_memory_stats_recorder_linux.cc
  141. system_memory_stats_recorder_win.cc
  142. system_session_analyzer_win.cc
  143. system_session_analyzer_win.h
  144. system_session_analyzer_win_unittest.cc
  145. test_enabled_state_provider.cc
  146. test_enabled_state_provider.h
  147. test_metrics_log_uploader.cc
  148. test_metrics_log_uploader.h
  149. test_metrics_provider.cc
  150. test_metrics_provider.h
  151. test_metrics_service_client.cc
  152. test_metrics_service_client.h
  153. url_constants.cc
  154. url_constants.h
  155. version_utils.cc
  156. version_utils.h