Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(356)

Unified Diff: chrome/browser/metrics/drive_metrics_provider.h

Issue 1254983003: Componentize DriveMetricsProvider* (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Response to review Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/metrics/drive_metrics_provider.h
diff --git a/chrome/browser/metrics/drive_metrics_provider.h b/chrome/browser/metrics/drive_metrics_provider.h
deleted file mode 100644
index 6ddccec28bc68a4997389b710d4a272736b77f62..0000000000000000000000000000000000000000
--- a/chrome/browser/metrics/drive_metrics_provider.h
+++ /dev/null
@@ -1,86 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_METRICS_DRIVE_METRICS_PROVIDER_H_
-#define CHROME_BROWSER_METRICS_DRIVE_METRICS_PROVIDER_H_
-
-#include "base/callback.h"
-#include "base/gtest_prod_util.h"
-#include "base/macros.h"
-#include "base/memory/weak_ptr.h"
-#include "base/threading/thread_checker.h"
-#include "components/metrics/metrics_provider.h"
-#include "components/metrics/proto/system_profile.pb.h"
-
-namespace base {
-class FilePath;
-}
-
-// 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();
- ~DriveMetricsProvider() override;
-
- // metrics::MetricsDataProvider:
- void ProvideSystemProfileMetrics(
- metrics::SystemProfileProto* system_profile_proto) override;
-
- // Called by ChromeMetricsServiceClient to start gathering metrics.
- void GetDriveMetrics(const base::Closure& done);
-
- private:
- FRIEND_TEST_ALL_PREFIXES(DriveMetricsProviderTest, HasSeekPenalty);
-
- // A response to querying a drive as to whether it incurs a seek penalty.
- // |has_seek_penalty| is set if |success| is true.
- struct SeekPenaltyResponse {
- SeekPenaltyResponse();
- bool success;
- bool has_seek_penalty;
- };
-
- struct DriveMetrics {
- SeekPenaltyResponse app_drive;
- SeekPenaltyResponse user_data_drive;
- };
-
- // Determine whether the device that services |path| has a seek penalty.
- // Returns false if it couldn't be determined (e.g., |path| doesn't exist).
- static bool HasSeekPenalty(const base::FilePath& path,
- bool* has_seek_penalty);
-
- // Gather metrics about various drives on the FILE thread.
- static DriveMetrics GetDriveMetricsOnFileThread();
-
- // 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.
- void GotDriveMetrics(const DriveMetrics& metrics);
-
- // Fills |drive| with information from successful |response|s.
- void FillDriveMetrics(
- const SeekPenaltyResponse& response,
- metrics::SystemProfileProto::Hardware::Drive* drive);
-
- // Information gathered about various important drives.
- DriveMetrics metrics_;
-
- // Called when metrics are done being collected.
- base::Closure got_metrics_callback_;
-
- base::ThreadChecker thread_checker_;
- base::WeakPtrFactory<DriveMetricsProvider> weak_ptr_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(DriveMetricsProvider);
-};
-
-#endif // CHROME_BROWSER_METRICS_DRIVE_METRICS_PROVIDER_H_
« no previous file with comments | « chrome/browser/metrics/chrome_metrics_service_client.cc ('k') | chrome/browser/metrics/drive_metrics_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698