diff --git a/third_party/WebKit/Source/modules/encryptedmedia/NavigatorRequestMediaKeySystemAccess.cpp b/third_party/WebKit/Source/modules/encryptedmedia/NavigatorRequestMediaKeySystemAccess.cpp index 5fceee8b95269..1dee6dab1de4e 100644 --- a/third_party/WebKit/Source/modules/encryptedmedia/NavigatorRequestMediaKeySystemAccess.cpp +++ b/third_party/WebKit/Source/modules/encryptedmedia/NavigatorRequestMediaKeySystemAccess.cpp @@ -278,9 +278,20 @@ ScriptPromise NavigatorRequestMediaKeySystemAccess::requestMediaKeySystemAccess( // // Do not check settings for Clear Key. if (key_system != "org.w3.clearkey") { - // For other key systems, check settings. - if (!document->GetSettings() || - !document->GetSettings()->GetEncryptedMediaEnabled()) { + // For other key systems, check settings and report UMA. + bool encypted_media_enabled = + document->GetSettings() && + document->GetSettings()->GetEncryptedMediaEnabled(); + + static bool has_reported_uma = false; + if (!has_reported_uma) { + has_reported_uma = true; + DEFINE_STATIC_LOCAL(BooleanHistogram, histogram, + ("Media.EME.EncryptedMediaEnabled")); + histogram.Count(encypted_media_enabled); + } + + if (!encypted_media_enabled) { return ScriptPromise::RejectWithDOMException( script_state, DOMException::Create(kNotSupportedError, "Unsupported keySystem")); diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index bbe303316c59b..e83556234fa42 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml @@ -26939,6 +26939,16 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. + + xhwang@chromium.org + + Whether encrypted media is enabled when requestMediaKeySystemAccess() is + called. User can enable and disable encrypted media in content settings. + Recorded when requestMediaKeySystemAccess() is called but will be reported + at most once per renderer process. + + + xhwang@chromium.org