| // 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" |
| |
| #include "base/notreached.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 |