// 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()); }