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

Unified Diff: chrome/browser/media/android/remote/record_cast_action.cc

Issue 928643003: Upstream Chrome for Android Cast. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add missing resource, allowing casting from Chrome Shell Created 5 years, 9 months 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media/android/remote/record_cast_action.cc
diff --git a/chrome/browser/media/android/remote/record_cast_action.cc b/chrome/browser/media/android/remote/record_cast_action.cc
new file mode 100644
index 0000000000000000000000000000000000000000..76c6c6c852ece269f7ee75025e3e4b96f5426298
--- /dev/null
+++ b/chrome/browser/media/android/remote/record_cast_action.cc
@@ -0,0 +1,105 @@
+// Copyright 2014 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/media/android/remote/record_cast_action.h"
+#include <jni.h>
scherkus (not reviewing) 2015/03/12 19:15:04 nit: you've got the #include ordering / spacing co
aberent 2015/03/13 19:04:35 Done.
+#include "base/metrics/histogram.h"
+#include "content/public/browser/user_metrics.h"
+#include "jni/RecordCastAction_jni.h"
+#include "media/base/container_names.h"
+
+using base::UserMetricsAction;
+using content::RecordAction;
+
+namespace {
+
+// When updating these values, remember to also update
+// tools/histograms/histograms.xml.
+enum CastPlayBackState {
+ YT_PLAYER_SUCCESS = 0,
+ YT_PLAYER_FAILURE = 1,
+ DEFAULT_PLAYER_SUCCESS = 2,
+ DEFAULT_PLAYER_FAILURE = 3,
+ CAST_PLAYBACK_STATE_COUNT = 4
+};
+
+// When updating these values, remember to also update
+// tools/histograms/histograms.xml.
+
+// This is actually a misnomer, it should be RemotePlaybackPlayerType, but it is
+// more important that it matches the histogram name in histograms.xml.
+// TODO (aberent) Change this once we are upstream, when can change it both here
Bernhard Bauer 2015/03/13 12:18:02 Super-nit: Use the style "TODO(ldap): [...]", as i
aberent 2015/03/13 19:04:35 Done.
+// and in histogram.xml in the same CL.
+enum RemotePlaybackDeviceType {
+ CAST_GENERIC = 0,
+ CAST_YOUTUBE = 1,
+ NON_CAST_YOUTUBE = 2,
+ REMOTE_PLAYBACK_DEVICE_TYPE_COUNT = 3
+};
+
+} // namespace
+
+namespace remote_media {
+static void RecordRemotePlaybackDeviceSelected(
+ JNIEnv*, jclass, jint device_type) {
+ UMA_HISTOGRAM_ENUMERATION(
+ "Cast.Sender.DeviceType", device_type, REMOTE_PLAYBACK_DEVICE_TYPE_COUNT);
+}
+
+static void RecordCastPlayRequested(JNIEnv*, jclass) {
+ RecordAction(UserMetricsAction("Cast_Sender_CastPlayRequested"));
+}
+
+static void RecordCastDefaultPlayerResult(JNIEnv*,
+ jclass,
+ jboolean cast_success) {
+ if (cast_success) {
+ UMA_HISTOGRAM_ENUMERATION("Cast.Sender.CastPlayerResult",
+ DEFAULT_PLAYER_SUCCESS,
+ CAST_PLAYBACK_STATE_COUNT);
+ } else {
+ UMA_HISTOGRAM_ENUMERATION("Cast.Sender.CastPlayerResult",
+ DEFAULT_PLAYER_FAILURE,
+ CAST_PLAYBACK_STATE_COUNT);
+ }
+}
+
+static void RecordCastYouTubePlayerResult(JNIEnv*,
+ jclass,
+ jboolean cast_success) {
+ if (cast_success) {
+ UMA_HISTOGRAM_ENUMERATION("Cast.Sender.CastPlayerResult", YT_PLAYER_SUCCESS,
+ CAST_PLAYBACK_STATE_COUNT);
+ } else {
+ UMA_HISTOGRAM_ENUMERATION("Cast.Sender.CastPlayerResult", YT_PLAYER_FAILURE,
+ CAST_PLAYBACK_STATE_COUNT);
+ }
+}
+
+static void RecordCastMediaType(JNIEnv*, jclass, jint media_type) {
+ UMA_HISTOGRAM_ENUMERATION("Cast.Sender.CastMediaType", media_type,
+ media::container_names::CONTAINER_MAX);
+}
+
+static void RecordCastEndedTimeRemaining(JNIEnv*, jclass, jint video_total_time,
Bernhard Bauer 2015/03/13 12:18:02 In C++, put each parameter on a separate line if t
aberent 2015/03/13 19:04:35 Done.
+ jint time_left_in_video) {
+
+ int percent_remaining = 100;
+ if (video_total_time > 0) {
+ // Get the percentage of video remaining, but bucketize into groups of 10
+ // since we don't really need that granular of data.
+ percent_remaining = static_cast<int>(
+ 10.0 * time_left_in_video / video_total_time) * 10;
+ }
+
+ UMA_HISTOGRAM_ENUMERATION("Cast.Sender.CastTimeRemainingPercentage",
+ percent_remaining, 101);
+}
+
+// Register native methods
+bool RegisterRecordCastAction(JNIEnv* env) {
+ return RegisterNativesImpl(env);
+}
+
+} // namespace remote_media

Powered by Google App Engine
This is Rietveld 408576698