diff options
Diffstat (limited to 'chromium/content/renderer/media/webmediaplayer_util.cc')
-rw-r--r-- | chromium/content/renderer/media/webmediaplayer_util.cc | 43 |
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 |