Index: metrics_client.cc |
diff --git a/metrics_client.cc b/metrics_client.cc |
index ce22e987ed7ded016bd1a499bc6e0cad21b1edca..5aedd8b261da7ec33b7fd11ee2b604c847c3c05c 100644 |
--- a/metrics_client.cc |
+++ b/metrics_client.cc |
@@ -11,6 +11,7 @@ void ShowUsage() { |
fprintf(stderr, |
"Usage: metrics_client [-ab] [-t] name sample min max nbuckets\n" |
" metrics_client [-ab] -e name sample max\n" |
+ " metrics_client -u action\n" |
" metrics_client [-cg]\n" |
"\n" |
" default: send metric with integer values to Chrome only\n" |
@@ -20,7 +21,8 @@ void ShowUsage() { |
" -c: return exit status 0 if user consents to stats, 1 otherwise\n" |
" -e: send linear/enumeration histogram data\n" |
" -g: return exit status 0 if machine in guest mode, 1 otherwise\n" |
- " -t: convert sample from double seconds to int milliseconds\n"); |
+ " -t: convert sample from double seconds to int milliseconds\n" |
+ " -u: send a user action to Chrome\n"); |
exit(1); |
} |
@@ -59,6 +61,14 @@ static int SendStats(char* argv[], |
return 0; |
} |
+static int SendUserAction(char* argv[], int action_index) { |
+ const char* action = argv[action_index]; |
+ MetricsLibrary metrics_lib; |
+ metrics_lib.Init(); |
+ metrics_lib.SendUserActionToUMA(action); |
+ return 0; |
+} |
+ |
static int HasConsent() { |
MetricsLibrary metrics_lib; |
metrics_lib.Init(); |
@@ -74,6 +84,7 @@ static int IsGuestMode() { |
int main(int argc, char** argv) { |
enum Mode { |
kModeSendStats, |
+ kModeSendUserAction, |
kModeHasConsent, |
kModeIsGuestMode |
} mode = kModeSendStats; |
@@ -85,7 +96,7 @@ int main(int argc, char** argv) { |
// Parse arguments |
int flag; |
- while ((flag = getopt(argc, argv, "abcegt")) != -1) { |
+ while ((flag = getopt(argc, argv, "abcegtu")) != -1) { |
switch (flag) { |
case 'a': |
mode = kModeSendStats; |
@@ -109,18 +120,23 @@ int main(int argc, char** argv) { |
case 't': |
secs_to_msecs = true; |
break; |
+ case 'u': |
+ mode = kModeSendUserAction; |
+ break; |
default: |
print_usage = true; |
break; |
} |
} |
- int name_index = optind; |
+ int arg_index = optind; |
int expected_args = 0; |
if (mode == kModeSendStats) |
expected_args = send_enum ? 3 : 5; |
+ else if (mode == kModeSendUserAction) |
+ expected_args = 1; |
- if ((name_index + expected_args) != argc) { |
+ if ((arg_index + expected_args) != argc) { |
ShowUsage(); |
} |
@@ -130,11 +146,13 @@ int main(int argc, char** argv) { |
ShowUsage(); |
} |
return SendStats(argv, |
- name_index, |
+ arg_index, |
send_enum, |
secs_to_msecs, |
send_to_autotest, |
send_to_chrome); |
+ case kModeSendUserAction: |
+ return SendUserAction(argv, arg_index); |
case kModeHasConsent: |
return HasConsent(); |
case kModeIsGuestMode: |