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

Side by Side Diff: content/browser/user_metrics_impl.cc

Issue 8919017: Split UserMetrics into API vs. implementation. Move API to content/public. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 9 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
jam 2011/12/12 23:06:55 actually, please leave this as user_metrics.cc. I
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/user_metrics.h" 5 #include "content/public/browser/user_metrics.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "content/public/browser/browser_thread.h" 8 #include "content/public/browser/browser_thread.h"
9 #include "content/public/browser/notification_service.h" 9 #include "content/public/browser/notification_service.h"
10 #include "content/public/browser/notification_types.h" 10 #include "content/public/browser/notification_types.h"
11 #include "content/public/browser/user_metrics.h"
12
13 namespace {
11 14
12 using content::BrowserThread; 15 using content::BrowserThread;
13 16
14 void UserMetrics::RecordAction(const UserMetricsAction& action) { 17 // Forward declare because of circular dependency.
15 Record(action.str_); 18 void CallRecordOnUI(const std::string& action);
16 }
17 19
18 void UserMetrics::RecordComputedAction(const std::string& action) { 20 void Record(const char *action) {
19 Record(action.c_str());
20 }
21
22 void UserMetrics::Record(const char *action) {
23 if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) { 21 if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
24 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, 22 BrowserThread::PostTask(
25 base::Bind(&UserMetrics::CallRecordOnUI, action)); 23 BrowserThread::UI,
24 FROM_HERE,
25 base::Bind(&CallRecordOnUI, action));
26 return; 26 return;
27 } 27 }
28 28
29 content::NotificationService::current()->Notify( 29 content::NotificationService::current()->Notify(
30 content::NOTIFICATION_USER_ACTION, 30 content::NOTIFICATION_USER_ACTION,
31 content::NotificationService::AllSources(), 31 content::NotificationService::AllSources(),
32 content::Details<const char*>(&action)); 32 content::Details<const char*>(&action));
33 } 33 }
34 34
35 void UserMetrics::CallRecordOnUI(const std::string& action) { 35 void CallRecordOnUI(const std::string& action) {
36 Record(action.c_str()); 36 Record(action.c_str());
37 } 37 }
38
39 } // namespace
40
41 void UserMetrics::RecordAction(const UserMetricsAction& action) {
42 Record(action.str_);
43 }
44
45 void UserMetrics::RecordComputedAction(const std::string& action) {
46 Record(action.c_str());
47 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698