summaryrefslogtreecommitdiffstats
path: root/chrome/browser/metrics
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/metrics')
-rw-r--r--chrome/browser/metrics/metrics_service.cc11
-rw-r--r--chrome/browser/metrics/metrics_service.h15
-rw-r--r--chrome/browser/metrics/system_metrics_logger.h28
-rw-r--r--chrome/browser/metrics/system_metrics_logger_impl.cc44
-rw-r--r--chrome/browser/metrics/system_metrics_logger_impl.h31
5 files changed, 26 insertions, 103 deletions
diff --git a/chrome/browser/metrics/metrics_service.cc b/chrome/browser/metrics/metrics_service.cc
index a16ced2..c49886a 100644
--- a/chrome/browser/metrics/metrics_service.cc
+++ b/chrome/browser/metrics/metrics_service.cc
@@ -197,6 +197,10 @@
#include "chrome/installer/util/browser_distribution.h"
#endif
+#if defined(OS_CHROMEOS)
+#include "chrome/browser/chromeos/external_metrics.h"
+#endif
+
using base::Time;
using base::TimeDelta;
@@ -1921,3 +1925,10 @@ static bool IsSingleThreaded() {
thread_id = PlatformThread::CurrentId();
return PlatformThread::CurrentId() == thread_id;
}
+
+#if defined(OS_CHROMEOS)
+void MetricsService::StartExternalMetrics(Profile* profile) {
+ external_metrics_ = new chromeos::ExternalMetrics;
+ external_metrics_->Start(profile);
+}
+#endif
diff --git a/chrome/browser/metrics/metrics_service.h b/chrome/browser/metrics/metrics_service.h
index 03b181f..9fa21fc 100644
--- a/chrome/browser/metrics/metrics_service.h
+++ b/chrome/browser/metrics/metrics_service.h
@@ -25,6 +25,10 @@
#include "webkit/glue/webplugininfo.h"
#include "testing/gtest/include/gtest/gtest_prod.h"
+#if defined(OS_CHROMEOS)
+#include "chrome/browser/chromeos/external_metrics.h"
+#endif
+
class BookmarkModel;
class BookmarkNode;
class HistogramSynchronizer;
@@ -120,6 +124,12 @@ class MetricsService : public NotificationObserver,
// at shutdown, but we can do it as we reduce the list as well.
void StoreUnsentLogs();
+#if defined(OS_CHROMEOS)
+ // Start the external metrics service, which collects metrics from Chrome OS
+ // and passes them to UMA.
+ void StartExternalMetrics(Profile* profile);
+#endif
+
private:
// The MetricsService has a lifecycle that is stored as a state.
// See metrics_service.cc for description of this lifecycle.
@@ -496,6 +506,11 @@ class MetricsService : public NotificationObserver,
// Indicate that a timer for sending the next log has already been queued.
bool timer_pending_;
+#if defined(OS_CHROMEOS)
+ // The external metric service is used to log ChromeOS UMA events.
+ scoped_refptr<chromeos::ExternalMetrics> external_metrics_;
+#endif
+
FRIEND_TEST(MetricsServiceTest, ClientIdGeneratesAllZeroes);
FRIEND_TEST(MetricsServiceTest, ClientIdGeneratesCorrectly);
FRIEND_TEST(MetricsServiceTest, ClientIdCorrectlyFormatted);
diff --git a/chrome/browser/metrics/system_metrics_logger.h b/chrome/browser/metrics/system_metrics_logger.h
deleted file mode 100644
index 83f94f6..0000000
--- a/chrome/browser/metrics/system_metrics_logger.h
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (c) 2009 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_SYSTEM_METRICS_LOGGER_H_
-#define CHROME_BROWSER_METRICS_SYSTEM_METRICS_LOGGER_H_
-
-#include "base/basictypes.h"
-
-class Profile;
-
-// This is the abstract base class for a simple class that wraps up some
-// calls to chromium metrics logging helper functions. This design will
-// allow for easy mocking in unit tests.
-
-class SystemMetricsLogger {
- public:
- SystemMetricsLogger() {}
- virtual ~SystemMetricsLogger() {}
- virtual void RecordOverviewKeystroke(Profile *profile) = 0;
- virtual void RecordOverviewExitMouse(Profile *profile) = 0;
- virtual void RecordOverviewExitKeystroke(Profile *profile) = 0;
- virtual void RecordWindowCycleKeystroke(Profile *profile) = 0;
- virtual void RecordBootTime(int64 time) = 0;
- virtual void RecordUpTime(int64 time) = 0;
-};
-
-#endif // CHROME_BROWSER_METRICS_SYSTEM_METRICS_LOGGER_H_
diff --git a/chrome/browser/metrics/system_metrics_logger_impl.cc b/chrome/browser/metrics/system_metrics_logger_impl.cc
deleted file mode 100644
index b16fe5d..0000000
--- a/chrome/browser/metrics/system_metrics_logger_impl.cc
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright (c) 2009 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.
-
-#include "chrome/browser/metrics/system_metrics_logger_impl.h"
-
-#include "base/basictypes.h"
-#include "base/histogram.h"
-#include "base/time.h"
-#include "chrome/browser/profile.h"
-#include "chrome/browser/metrics/user_metrics.h"
-
-SystemMetricsLoggerImpl::SystemMetricsLoggerImpl() {}
-
-SystemMetricsLoggerImpl::~SystemMetricsLoggerImpl() {}
-
-void SystemMetricsLoggerImpl::RecordOverviewKeystroke(Profile *profile) {
- UserMetrics::RecordAction(L"TabOverview_Keystroke", profile);
-}
-
-void SystemMetricsLoggerImpl::RecordOverviewExitMouse(Profile *profile) {
- UserMetrics::RecordAction(L"TabOverview_ExitMouse", profile);
-}
-
-void SystemMetricsLoggerImpl::RecordOverviewExitKeystroke(Profile *profile) {
- UserMetrics::RecordAction(L"TabOverview_ExitKeystroke", profile);
-}
-
-void SystemMetricsLoggerImpl::RecordWindowCycleKeystroke(Profile *profile) {
- UserMetrics::RecordAction(L"TabOverview_WindowCycleKeystroke", profile);
-}
-
-void SystemMetricsLoggerImpl::RecordBootTime(int64 time) {
- UMA_HISTOGRAM_CUSTOM_TIMES("ChromeOS.Boot Time",
- base::TimeDelta::FromMilliseconds(time),
- base::TimeDelta::FromMilliseconds(1),
- base::TimeDelta::FromMinutes(1),
- 50);
-}
-
-void SystemMetricsLoggerImpl::RecordUpTime(int64 time) {
- UMA_HISTOGRAM_LONG_TIMES("ChromeOS.Uptime",
- base::TimeDelta::FromSeconds(time));
-}
diff --git a/chrome/browser/metrics/system_metrics_logger_impl.h b/chrome/browser/metrics/system_metrics_logger_impl.h
deleted file mode 100644
index 8bcfc5b..0000000
--- a/chrome/browser/metrics/system_metrics_logger_impl.h
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (c) 2009 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_SYSTEM_METRICS_LOGGER_IMPL_H_
-#define CHROME_BROWSER_METRICS_SYSTEM_METRICS_LOGGER_IMPL_H_
-
-#include "base/basictypes.h"
-#include "chrome/browser/metrics/system_metrics_logger.h"
-
-class Profile;
-
-// Wraps calls to UserMetrics::RecordAction() and the appropriate
-// version of the UMA_HISTOGRAM_*_TIMES macros, based on the metric
-// being logged
-
-class SystemMetricsLoggerImpl : public SystemMetricsLogger {
- public:
- SystemMetricsLoggerImpl();
- ~SystemMetricsLoggerImpl();
- void RecordOverviewKeystroke(Profile *profile);
- void RecordOverviewExitMouse(Profile *profile);
- void RecordOverviewExitKeystroke(Profile *profile);
- void RecordWindowCycleKeystroke(Profile *profile);
- void RecordBootTime(int64 time);
- void RecordUpTime(int64 time);
- private:
- DISALLOW_COPY_AND_ASSIGN(SystemMetricsLoggerImpl);
-};
-
-#endif // CHROME_BROWSER_METRICS_SYSTEM_METRICS_LOGGER_IMPL_H_