Index: components/metrics/drive_metrics_provider.h |
diff --git a/components/metrics/drive_metrics_provider.h b/components/metrics/drive_metrics_provider.h |
index cab799d40ea1a85f5ee2160e67b6cb98e4bb0cc5..280b0ae7eacdbdb82c39284fa79e47a3fde009be 100644 |
--- a/components/metrics/drive_metrics_provider.h |
+++ b/components/metrics/drive_metrics_provider.h |
@@ -10,8 +10,7 @@ |
#include "base/macros.h" |
#include "base/memory/ref_counted.h" |
#include "base/memory/weak_ptr.h" |
-#include "base/sequenced_task_runner.h" |
-#include "base/threading/thread_checker.h" |
+#include "base/sequence_checker.h" |
#include "components/metrics/metrics_provider.h" |
#include "components/metrics/proto/system_profile.pb.h" |
@@ -23,13 +22,9 @@ namespace metrics { |
// Provides metrics about the local drives on a user's computer. Currently only |
// checks to see if they incur a seek-time penalty (e.g. if they're SSDs). |
-// |
-// Defers gathering metrics until after "rush hour" (startup) so as to not bog |
-// down the file thread. |
class DriveMetricsProvider : public metrics::MetricsProvider { |
public: |
- DriveMetricsProvider(scoped_refptr<base::SequencedTaskRunner> file_thread, |
- int local_state_path_key); |
+ explicit DriveMetricsProvider(int local_state_path_key); |
~DriveMetricsProvider() override; |
// metrics::MetricsDataProvider: |
@@ -60,15 +55,16 @@ class DriveMetricsProvider : public metrics::MetricsProvider { |
static bool HasSeekPenalty(const base::FilePath& path, |
bool* has_seek_penalty); |
- // Gather metrics about various drives on |file_thread_|. |
- static DriveMetrics GetDriveMetricsOnFileThread(int local_state_path_key); |
+ // Gather metrics about various drives. Should be run on a background thread. |
+ static DriveMetrics GetDriveMetricsOnBackgroundThread( |
+ int local_state_path_key); |
// Tries to determine whether there is a penalty for seeking on the drive that |
// hosts |path_service_key| (for example: the drive that holds "Local State"). |
static void QuerySeekPenalty(int path_service_key, |
SeekPenaltyResponse* response); |
- // Called when metrics are done being gathered from the FILE thread. |
+ // Called when metrics are done being gathered asynchronously. |
// |done_callback| is the callback that should be called once all metrics are |
// gathered. |
void GotDriveMetrics(const base::Closure& done_callback, |
@@ -78,10 +74,6 @@ class DriveMetricsProvider : public metrics::MetricsProvider { |
void FillDriveMetrics(const SeekPenaltyResponse& response, |
metrics::SystemProfileProto::Hardware::Drive* drive); |
- // The thread on which file operations are performed (supplied by the |
- // embedder). |
- scoped_refptr<base::SequencedTaskRunner> file_thread_; |
- |
// The key to give to base::PathService to obtain the path to local state |
// (supplied by the embedder). |
int local_state_path_key_; |
@@ -89,7 +81,7 @@ class DriveMetricsProvider : public metrics::MetricsProvider { |
// Information gathered about various important drives. |
DriveMetrics metrics_; |
- base::ThreadChecker thread_checker_; |
+ SEQUENCE_CHECKER(sequence_checker_); |
base::WeakPtrFactory<DriveMetricsProvider> weak_ptr_factory_; |
DISALLOW_COPY_AND_ASSIGN(DriveMetricsProvider); |