Chrome: Enable ChromeOS-Wide-Profiling
We want to gather perf data collected by running "perf record -a" from opt-in
ChromeOS users. This CL enables that.
We use debugd in ChromeOS to run quipper, a program that runs "perf record -a"
and returns that data in a protobuf. We do this every 12 hours for 2 seconds.
The overhead is minimal (5% slowdown for 2 seconds on "lumpy" machines).
BUG=157508
TEST=Manual:
Change the perf record interval from 12 hours to 1 minute and set a
breakpoint on ParseProtoIfValid(). It gets hit and the protobuf is parsed
properly.
Review URL: https://chromiumcodereview.appspot.com/11185038
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180484 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/metrics/metrics_log.h b/chrome/browser/metrics/metrics_log.h
index 4d956506..afb1cb4 100644
--- a/chrome/browser/metrics/metrics_log.h
+++ b/chrome/browser/metrics/metrics_log.h
@@ -17,6 +17,10 @@
#include "content/public/common/process_type.h"
#include "ui/gfx/size.h"
+#if defined(OS_CHROMEOS)
+#include "chrome/browser/metrics/perf_provider_chromeos.h"
+#endif
+
struct AutocompleteLog;
class PrefService;
class PrefServiceSimple;
@@ -189,6 +193,9 @@
// Registers as observer with net::NetworkChangeNotifier and keeps track of
// the network environment.
scoped_ptr<NetworkObserver> network_observer_;
+#if defined(OS_CHROMEOS)
+ metrics::PerfProvider perf_provider_;
+#endif
DISALLOW_COPY_AND_ASSIGN(MetricsLog);
};