Support filters in file metrics provider.

Sometimes it is necessary to delay or skip the processing of certain
files (perhaps because it is still being written). Filtering gives
these options to the call site.

Moving all the "source" parameters into a single structure and passing
that allows for more fields to be added in the future with default
values so they don't have to be specified by callers that don't need
to change them.

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