summaryrefslogtreecommitdiffstats
path: root/chromium/content/renderer/media/webmediaplayer_util.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/renderer/media/webmediaplayer_util.cc')
-rw-r--r--chromium/content/renderer/media/webmediaplayer_util.cc43
1 files changed, 41 insertions, 2 deletions
diff --git a/chromium/content/renderer/media/webmediaplayer_util.cc b/chromium/content/renderer/media/webmediaplayer_util.cc
index a245f038b0a..6d1b1e25aa8 100644
--- a/chromium/content/renderer/media/webmediaplayer_util.cc
+++ b/chromium/content/renderer/media/webmediaplayer_util.cc
@@ -6,6 +6,7 @@
#include <math.h>
+#include "base/metrics/histogram.h"
#include "media/base/media_keys.h"
#include "third_party/WebKit/public/platform/WebMediaPlayerClient.h"
@@ -31,7 +32,7 @@ base::TimeDelta ConvertSecondsToTimestamp(double seconds) {
blink::WebTimeRanges ConvertToWebTimeRanges(
const media::Ranges<base::TimeDelta>& ranges) {
blink::WebTimeRanges result(ranges.size());
- for (size_t i = 0; i < ranges.size(); i++) {
+ for (size_t i = 0; i < ranges.size(); ++i) {
result[i].start = ranges.start(i).InSecondsF();
result[i].end = ranges.end(i).InSecondsF();
}
@@ -71,10 +72,48 @@ blink::WebMediaPlayer::NetworkState PipelineErrorToNetworkState(
return blink::WebMediaPlayer::NetworkStateDecodeError;
case media::PIPELINE_OK:
- case media::PIPELINE_STATUS_MAX:
NOTREACHED() << "Unexpected status! " << error;
}
return blink::WebMediaPlayer::NetworkStateFormatError;
}
+namespace {
+
+// Helper enum for reporting scheme histograms.
+enum URLSchemeForHistogram {
+ kUnknownURLScheme,
+ kMissingURLScheme,
+ kHttpURLScheme,
+ kHttpsURLScheme,
+ kFtpURLScheme,
+ kChromeExtensionURLScheme,
+ kJavascriptURLScheme,
+ kFileURLScheme,
+ kBlobURLScheme,
+ kDataURLScheme,
+ kFileSystemScheme,
+ kMaxURLScheme = kFileSystemScheme // Must be equal to highest enum value.
+};
+
+URLSchemeForHistogram URLScheme(const GURL& url) {
+ if (!url.has_scheme()) return kMissingURLScheme;
+ if (url.SchemeIs("http")) return kHttpURLScheme;
+ if (url.SchemeIs("https")) return kHttpsURLScheme;
+ if (url.SchemeIs("ftp")) return kFtpURLScheme;
+ if (url.SchemeIs("chrome-extension")) return kChromeExtensionURLScheme;
+ if (url.SchemeIs("javascript")) return kJavascriptURLScheme;
+ if (url.SchemeIs("file")) return kFileURLScheme;
+ if (url.SchemeIs("blob")) return kBlobURLScheme;
+ if (url.SchemeIs("data")) return kDataURLScheme;
+ if (url.SchemeIs("filesystem")) return kFileSystemScheme;
+
+ return kUnknownURLScheme;
+}
+
+} // namespace
+
+void ReportMediaSchemeUma(const GURL& url) {
+ UMA_HISTOGRAM_ENUMERATION("Media.URLScheme", URLScheme(url), kMaxURLScheme);
+}
+
} // namespace content