blob: 90f301cb55ebd67bd94b25971619683d0abdaa7b [file] [log] [blame]
// Copyright 2017 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 "media/base/watch_time_keys.h"
namespace media {
// TODO(dalecurtis): Key strings aren't really necessary anymore, so instead
// of hard coding these, switch to generating them.
// Audio+video watch time metrics.
static const char kWatchTimeAudioVideoAll[] = "Media.WatchTime.AudioVideo.All";
static const char kWatchTimeAudioVideoMse[] = "Media.WatchTime.AudioVideo.MSE";
static const char kWatchTimeAudioVideoEme[] = "Media.WatchTime.AudioVideo.EME";
static const char kWatchTimeAudioVideoSrc[] = "Media.WatchTime.AudioVideo.SRC";
static const char kWatchTimeAudioVideoBattery[] =
"Media.WatchTime.AudioVideo.Battery";
static const char kWatchTimeAudioVideoAc[] = "Media.WatchTime.AudioVideo.AC";
static const char kWatchTimeAudioVideoDisplayFullscreen[] =
"Media.WatchTime.AudioVideo.DisplayFullscreen";
static const char kWatchTimeAudioVideoDisplayInline[] =
"Media.WatchTime.AudioVideo.DisplayInline";
static const char kWatchTimeAudioVideoDisplayPictureInPicture[] =
"Media.WatchTime.AudioVideo.DisplayPictureInPicture";
static const char kWatchTimeAudioVideoEmbeddedExperience[] =
"Media.WatchTime.AudioVideo.EmbeddedExperience";
static const char kWatchTimeAudioVideoNativeControlsOn[] =
"Media.WatchTime.AudioVideo.NativeControlsOn";
static const char kWatchTimeAudioVideoNativeControlsOff[] =
"Media.WatchTime.AudioVideo.NativeControlsOff";
// Audio only "watch time" metrics.
static const char kWatchTimeAudioAll[] = "Media.WatchTime.Audio.All";
static const char kWatchTimeAudioMse[] = "Media.WatchTime.Audio.MSE";
static const char kWatchTimeAudioEme[] = "Media.WatchTime.Audio.EME";
static const char kWatchTimeAudioSrc[] = "Media.WatchTime.Audio.SRC";
static const char kWatchTimeAudioBattery[] = "Media.WatchTime.Audio.Battery";
static const char kWatchTimeAudioAc[] = "Media.WatchTime.Audio.AC";
static const char kWatchTimeAudioEmbeddedExperience[] =
"Media.WatchTime.Audio.EmbeddedExperience";
static const char kWatchTimeAudioNativeControlsOn[] =
"Media.WatchTime.Audio.NativeControlsOn";
static const char kWatchTimeAudioNativeControlsOff[] =
"Media.WatchTime.Audio.NativeControlsOff";
static const char kWatchTimeAudioBackgroundAll[] =
"Media.WatchTime.Audio.Background.All";
static const char kWatchTimeAudioBackgroundMse[] =
"Media.WatchTime.Audio.Background.MSE";
static const char kWatchTimeAudioBackgroundEme[] =
"Media.WatchTime.Audio.Background.EME";
static const char kWatchTimeAudioBackgroundSrc[] =
"Media.WatchTime.Audio.Background.SRC";
static const char kWatchTimeAudioBackgroundBattery[] =
"Media.WatchTime.Audio.Background.Battery";
static const char kWatchTimeAudioBackgroundAc[] =
"Media.WatchTime.Audio.Background.AC";
static const char kWatchTimeAudioBackgroundEmbeddedExperience[] =
"Media.WatchTime.Audio.Background.EmbeddedExperience";
// Audio+video background watch time metrics.
static const char kWatchTimeAudioVideoBackgroundAll[] =
"Media.WatchTime.AudioVideo.Background.All";
static const char kWatchTimeAudioVideoBackgroundMse[] =
"Media.WatchTime.AudioVideo.Background.MSE";
static const char kWatchTimeAudioVideoBackgroundEme[] =
"Media.WatchTime.AudioVideo.Background.EME";
static const char kWatchTimeAudioVideoBackgroundSrc[] =
"Media.WatchTime.AudioVideo.Background.SRC";
static const char kWatchTimeAudioVideoBackgroundBattery[] =
"Media.WatchTime.AudioVideo.Background.Battery";
static const char kWatchTimeAudioVideoBackgroundAc[] =
"Media.WatchTime.AudioVideo.Background.AC";
static const char kWatchTimeAudioVideoBackgroundEmbeddedExperience[] =
"Media.WatchTime.AudioVideo.Background.EmbeddedExperience";
// Audio+video muted watch time metrics.
static const char kWatchTimeAudioVideoMutedAll[] =
"Media.WatchTime.AudioVideo.Muted.All";
static const char kWatchTimeAudioVideoMutedMse[] =
"Media.WatchTime.AudioVideo.Muted.MSE";
static const char kWatchTimeAudioVideoMutedEme[] =
"Media.WatchTime.AudioVideo.Muted.EME";
static const char kWatchTimeAudioVideoMutedSrc[] =
"Media.WatchTime.AudioVideo.Muted.SRC";
const char kWatchTimeUnderflowCount[] = "UnderflowCount";
const char kMeanTimeBetweenRebuffersAudioSrc[] =
"Media.MeanTimeBetweenRebuffers.Audio.SRC";
const char kMeanTimeBetweenRebuffersAudioMse[] =
"Media.MeanTimeBetweenRebuffers.Audio.MSE";
const char kMeanTimeBetweenRebuffersAudioEme[] =
"Media.MeanTimeBetweenRebuffers.Audio.EME";
const char kMeanTimeBetweenRebuffersAudioVideoSrc[] =
"Media.MeanTimeBetweenRebuffers.AudioVideo.SRC";
const char kMeanTimeBetweenRebuffersAudioVideoMse[] =
"Media.MeanTimeBetweenRebuffers.AudioVideo.MSE";
const char kMeanTimeBetweenRebuffersAudioVideoEme[] =
"Media.MeanTimeBetweenRebuffers.AudioVideo.EME";
const char kRebuffersCountAudioSrc[] = "Media.RebuffersCount.Audio.SRC";
const char kRebuffersCountAudioMse[] = "Media.RebuffersCount.Audio.MSE";
const char kRebuffersCountAudioEme[] = "Media.RebuffersCount.Audio.EME";
const char kRebuffersCountAudioVideoSrc[] =
"Media.RebuffersCount.AudioVideo.SRC";
const char kRebuffersCountAudioVideoMse[] =
"Media.RebuffersCount.AudioVideo.MSE";
const char kRebuffersCountAudioVideoEme[] =
"Media.RebuffersCount.AudioVideo.EME";
const char kDiscardedWatchTimeAudioSrc[] =
"Media.WatchTime.Audio.Discarded.SRC";
const char kDiscardedWatchTimeAudioMse[] =
"Media.WatchTime.Audio.Discarded.MSE";
const char kDiscardedWatchTimeAudioEme[] =
"Media.WatchTime.Audio.Discarded.EME";
const char kDiscardedWatchTimeAudioVideoSrc[] =
"Media.WatchTime.AudioVideo.Discarded.SRC";
const char kDiscardedWatchTimeAudioVideoMse[] =
"Media.WatchTime.AudioVideo.Discarded.MSE";
const char kDiscardedWatchTimeAudioVideoEme[] =
"Media.WatchTime.AudioVideo.Discarded.EME";
base::StringPiece ConvertWatchTimeKeyToStringForUma(WatchTimeKey key) {
// WARNING: Returning a non-empty value will log the key to UMA.
switch (key) {
case WatchTimeKey::kAudioAll:
return kWatchTimeAudioAll;
case WatchTimeKey::kAudioMse:
return kWatchTimeAudioMse;
case WatchTimeKey::kAudioEme:
return kWatchTimeAudioEme;
case WatchTimeKey::kAudioSrc:
return kWatchTimeAudioSrc;
case WatchTimeKey::kAudioBattery:
return kWatchTimeAudioBattery;
case WatchTimeKey::kAudioAc:
return kWatchTimeAudioAc;
case WatchTimeKey::kAudioEmbeddedExperience:
return kWatchTimeAudioEmbeddedExperience;
case WatchTimeKey::kAudioNativeControlsOn:
return kWatchTimeAudioNativeControlsOn;
case WatchTimeKey::kAudioNativeControlsOff:
return kWatchTimeAudioNativeControlsOff;
case WatchTimeKey::kAudioBackgroundAll:
return kWatchTimeAudioBackgroundAll;
case WatchTimeKey::kAudioBackgroundMse:
return kWatchTimeAudioBackgroundMse;
case WatchTimeKey::kAudioBackgroundEme:
return kWatchTimeAudioBackgroundEme;
case WatchTimeKey::kAudioBackgroundSrc:
return kWatchTimeAudioBackgroundSrc;
case WatchTimeKey::kAudioBackgroundBattery:
return kWatchTimeAudioBackgroundBattery;
case WatchTimeKey::kAudioBackgroundAc:
return kWatchTimeAudioBackgroundAc;
case WatchTimeKey::kAudioBackgroundEmbeddedExperience:
return kWatchTimeAudioBackgroundEmbeddedExperience;
case WatchTimeKey::kAudioVideoAll:
return kWatchTimeAudioVideoAll;
case WatchTimeKey::kAudioVideoMse:
return kWatchTimeAudioVideoMse;
case WatchTimeKey::kAudioVideoEme:
return kWatchTimeAudioVideoEme;
case WatchTimeKey::kAudioVideoSrc:
return kWatchTimeAudioVideoSrc;
case WatchTimeKey::kAudioVideoBattery:
return kWatchTimeAudioVideoBattery;
case WatchTimeKey::kAudioVideoAc:
return kWatchTimeAudioVideoAc;
case WatchTimeKey::kAudioVideoDisplayFullscreen:
return kWatchTimeAudioVideoDisplayFullscreen;
case WatchTimeKey::kAudioVideoDisplayInline:
return kWatchTimeAudioVideoDisplayInline;
case WatchTimeKey::kAudioVideoDisplayPictureInPicture:
return kWatchTimeAudioVideoDisplayPictureInPicture;
case WatchTimeKey::kAudioVideoEmbeddedExperience:
return kWatchTimeAudioVideoEmbeddedExperience;
case WatchTimeKey::kAudioVideoNativeControlsOn:
return kWatchTimeAudioVideoNativeControlsOn;
case WatchTimeKey::kAudioVideoNativeControlsOff:
return kWatchTimeAudioVideoNativeControlsOff;
case WatchTimeKey::kAudioVideoBackgroundAll:
return kWatchTimeAudioVideoBackgroundAll;
case WatchTimeKey::kAudioVideoBackgroundMse:
return kWatchTimeAudioVideoBackgroundMse;
case WatchTimeKey::kAudioVideoBackgroundEme:
return kWatchTimeAudioVideoBackgroundEme;
case WatchTimeKey::kAudioVideoBackgroundSrc:
return kWatchTimeAudioVideoBackgroundSrc;
case WatchTimeKey::kAudioVideoBackgroundBattery:
return kWatchTimeAudioVideoBackgroundBattery;
case WatchTimeKey::kAudioVideoBackgroundAc:
return kWatchTimeAudioVideoBackgroundAc;
case WatchTimeKey::kAudioVideoBackgroundEmbeddedExperience:
return kWatchTimeAudioVideoBackgroundEmbeddedExperience;
case WatchTimeKey::kAudioVideoMutedAll:
return kWatchTimeAudioVideoMutedAll;
case WatchTimeKey::kAudioVideoMutedMse:
return kWatchTimeAudioVideoMutedMse;
case WatchTimeKey::kAudioVideoMutedEme:
return kWatchTimeAudioVideoMutedEme;
case WatchTimeKey::kAudioVideoMutedSrc:
return kWatchTimeAudioVideoMutedSrc;
// WARNING: Returning a non-empty value will log the key to UMA.
// The following keys are not reported to UMA and thus have no conversion.
// We don't report keys to UMA that we don't have a strong use case for
// since UMA requires us to break out each state manually (ac, inline, etc).
case WatchTimeKey::kAudioVideoMutedBattery:
case WatchTimeKey::kAudioVideoMutedAc:
case WatchTimeKey::kAudioVideoMutedEmbeddedExperience:
case WatchTimeKey::kAudioVideoMutedDisplayFullscreen:
case WatchTimeKey::kAudioVideoMutedDisplayInline:
case WatchTimeKey::kAudioVideoMutedDisplayPictureInPicture:
case WatchTimeKey::kAudioVideoMutedNativeControlsOn:
case WatchTimeKey::kAudioVideoMutedNativeControlsOff:
case WatchTimeKey::kVideoAll:
case WatchTimeKey::kVideoMse:
case WatchTimeKey::kVideoEme:
case WatchTimeKey::kVideoSrc:
case WatchTimeKey::kVideoBattery:
case WatchTimeKey::kVideoAc:
case WatchTimeKey::kVideoDisplayFullscreen:
case WatchTimeKey::kVideoDisplayInline:
case WatchTimeKey::kVideoDisplayPictureInPicture:
case WatchTimeKey::kVideoEmbeddedExperience:
case WatchTimeKey::kVideoNativeControlsOn:
case WatchTimeKey::kVideoNativeControlsOff:
case WatchTimeKey::kVideoBackgroundAll:
case WatchTimeKey::kVideoBackgroundMse:
case WatchTimeKey::kVideoBackgroundEme:
case WatchTimeKey::kVideoBackgroundSrc:
case WatchTimeKey::kVideoBackgroundBattery:
case WatchTimeKey::kVideoBackgroundAc:
case WatchTimeKey::kVideoBackgroundEmbeddedExperience:
return base::StringPiece();
};
NOTREACHED();
return base::StringPiece();
}
} // namespace media