diff options
author | michaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-27 23:29:59 +0000 |
---|---|---|
committer | michaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-27 23:29:59 +0000 |
commit | afd1e525b648613762191b3720ca9533eef358a8 (patch) | |
tree | 3082154d5fd8850222b249d062c874f283f93115 /chrome/browser/metrics | |
parent | c5ac7e1ef43c7087c8e2c08582b9cd0029229686 (diff) | |
download | chromium_src-afd1e525b648613762191b3720ca9533eef358a8.zip chromium_src-afd1e525b648613762191b3720ca9533eef358a8.tar.gz chromium_src-afd1e525b648613762191b3720ca9533eef358a8.tar.bz2 |
Move UserMetrics to content.
Just the class that provides the action logging API which is used all over the place
is being moved. The UserMetrics class uses the notification system to inform the core
of the user metrics system of each event, that core part is not being moved.
Also take care of a TODO to remove the class methods that take a Profile*
as a paramter (since Profile is verbotten in /content).
BUG=78499
Review URL: http://codereview.chromium.org/6883021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83251 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/metrics')
-rw-r--r-- | chrome/browser/metrics/user_metrics.cc | 48 | ||||
-rw-r--r-- | chrome/browser/metrics/user_metrics.h | 67 |
2 files changed, 0 insertions, 115 deletions
diff --git a/chrome/browser/metrics/user_metrics.cc b/chrome/browser/metrics/user_metrics.cc deleted file mode 100644 index fadda77..0000000 --- a/chrome/browser/metrics/user_metrics.cc +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright (c) 2011 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/user_metrics.h" - -#include "chrome/browser/profiles/profile.h" -#include "content/browser/browser_thread.h" -#include "content/common/notification_service.h" - -void UserMetrics::RecordAction(const UserMetricsAction& action, - Profile* profile) { - Record(action.str_, profile); -} - -void UserMetrics::RecordComputedAction(const std::string& action, - Profile* profile) { - Record(action.c_str(), profile); -} - -void UserMetrics::Record(const char *action, Profile *profile) { - Record(action); -} - -void UserMetrics::RecordAction(const UserMetricsAction& action) { - Record(action.str_); -} - -void UserMetrics::RecordComputedAction(const std::string& action) { - Record(action.c_str()); -} - -void UserMetrics::Record(const char *action) { - if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) { - BrowserThread::PostTask( - BrowserThread::UI, FROM_HERE, - NewRunnableFunction(&UserMetrics::CallRecordOnUI, action)); - return; - } - - NotificationService::current()->Notify(NotificationType::USER_ACTION, - NotificationService::AllSources(), - Details<const char*>(&action)); -} - -void UserMetrics::CallRecordOnUI(const std::string& action) { - Record(action.c_str()); -} diff --git a/chrome/browser/metrics/user_metrics.h b/chrome/browser/metrics/user_metrics.h deleted file mode 100644 index 1c992ac..0000000 --- a/chrome/browser/metrics/user_metrics.h +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright (c) 2010 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_USER_METRICS_H_ -#define CHROME_BROWSER_METRICS_USER_METRICS_H_ -#pragma once - -#include <string> - -class Profile; - -// This module provides some helper functions for logging actions tracked by -// the user metrics system. - - -// UserMetricsAction exist purely to standardize on the paramters passed to -// UserMetrics. That way, our toolset can scan the sourcecode reliable for -// constructors and extract the associated string constants -struct UserMetricsAction { - const char* str_; - explicit UserMetricsAction(const char* str) : str_(str) {} -}; - - -class UserMetrics { - public: - // Record that the user performed an action. - // "Action" here means a user-generated event: - // good: "Reload", "CloseTab", and "IMEInvoked" - // not good: "SSLDialogShown", "PageLoaded", "DiskFull" - // We use this to gather anonymized information about how users are - // interacting with the browser. - // WARNING: Call this function exactly like this: - // UserMetrics::RecordAction(UserMetricsAction("foo bar")); - // (all on one line and with the metric string literal [no variables]) - // because otherwise our processing scripts won't pick up on new actions. - // - // Once a new recorded action is added, run chrome/tools/extract_actions.py - // to generate a new mapping of [action hashes -> metric names] and send it - // out for review to be updated. - // - // For more complicated situations (like when there are many different - // possible actions), see RecordComputedAction. - // - // TODO(semenzato): |profile| isn't actually used---should switch all calls - // to the version without it. - static void RecordAction(const UserMetricsAction& action, Profile* profile); - - // This function has identical input and behavior to RecordAction, but is - // not automatically found by the action-processing scripts. It can be used - // when it's a pain to enumerate all possible actions, but if you use this - // you need to also update the rules for extracting known actions in - // chrome/tools/extract_actions.py. - static void RecordComputedAction(const std::string& action, - Profile* profile); - - static void RecordAction(const UserMetricsAction& action); - static void RecordComputedAction(const std::string& action); - - private: - static void Record(const char *action, Profile *profile); - static void Record(const char *action); - static void CallRecordOnUI(const std::string& action); -}; - -#endif // CHROME_BROWSER_METRICS_USER_METRICS_H_ |