Commit 03eda62a authored by Xiaohan Wang's avatar Xiaohan Wang Committed by Commit Bot

media: Report frame info to EME rMKSA() UKM

This CL adds IsCrossOrigin, IsTopFrame and IsAdFrame info to
Media.EME.RequestMediaKeySystemAccess UKM.

Bug: 1068642
Change-Id: I103e1fdd11f0a01868b21d2f8a4d9340ac4e1a49
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2139994
Commit-Queue: Xiaohan Wang <xhwang@chromium.org>
Reviewed-by: default avatarJohn Rummell <jrummell@chromium.org>
Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
Reviewed-by: default avatarAlexei Svitkine <asvitkine@chromium.org>
Cr-Commit-Position: refs/heads/master@{#757653}
parent 3aebf8a4
......@@ -10,6 +10,7 @@
#include "services/metrics/public/cpp/ukm_recorder.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_media_key_system_media_capability.h"
#include "third_party/blink/renderer/core/dom/document.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/inspector/console_message.h"
#include "third_party/blink/renderer/modules/encryptedmedia/encrypted_media_utils.h"
#include "third_party/blink/renderer/platform/heap/heap.h"
......@@ -133,7 +134,7 @@ MediaKeySystemAccessInitializerBase::MediaKeySystemAccessInitializerBase(
supported_configurations_[i] = web_config;
}
CheckVideoCapabilityRobustness();
GenerateWarningAndReportMetrics();
}
const SecurityOrigin* MediaKeySystemAccessInitializerBase::GetSecurityOrigin()
......@@ -160,7 +161,7 @@ bool MediaKeySystemAccessInitializerBase::IsExecutionContextValid() const {
return context && !context->IsContextDestroyed();
}
void MediaKeySystemAccessInitializerBase::CheckVideoCapabilityRobustness()
void MediaKeySystemAccessInitializerBase::GenerateWarningAndReportMetrics()
const {
const char kWidevineKeySystem[] = "com.widevine.alpha";
const char kWidevineHwSecureAllRobustness[] = "HW_SECURE_ALL";
......@@ -219,13 +220,18 @@ void MediaKeySystemAccessInitializerBase::CheckVideoCapabilityRobustness()
if (!IsExecutionContextValid())
return;
Document* document = Document::From(GetExecutionContext());
if (!document)
Document* document = GetDocument();
LocalFrame* frame = GetFrame();
if (!document || !frame)
return;
ukm::builders::Media_EME_RequestMediaKeySystemAccess builder(
document->UkmSourceID());
builder.SetKeySystem(KeySystemForUkm::kWidevine);
builder.SetIsAdFrame(
static_cast<int>(frame->IsAdRoot() || frame->IsAdSubframe()));
builder.SetIsCrossOrigin(static_cast<int>(frame->IsCrossOriginToMainFrame()));
builder.SetIsTopFrame(static_cast<int>(frame->IsMainFrame()));
builder.SetVideoCapabilities(static_cast<int>(has_video_capabilities));
builder.SetVideoCapabilities_HasEmptyRobustness(
static_cast<int>(has_empty_robustness));
......
......@@ -47,10 +47,10 @@ class MediaKeySystemAccessInitializerBase : public EncryptedMediaRequest,
// Returns true if the ExecutionContext is valid, false otherwise.
bool IsExecutionContextValid() const;
// For widevine key system, generate warning and report to UMA if
// |m_supportedConfigurations| contains any video capability with empty
// robustness string.
void CheckVideoCapabilityRobustness() const;
// For widevine key system, generate warning if |supported_configurations_|
// contains any video capability with empty robustness string. Also report
// UMA and UKM.
void GenerateWarningAndReportMetrics() const;
Member<ScriptPromiseResolver> resolver_;
const String key_system_;
......
......@@ -5375,6 +5375,21 @@ be describing additional metrics about the same event.
Event recorded when RequestMediaKeySystemAccess() is called as part of
Encrypted Media Extensions (EME) API.
</summary>
<metric name="IsAdFrame">
<summary>
Whether the frame is an ad frame.
</summary>
</metric>
<metric name="IsCrossOrigin">
<summary>
Whether the frame is Cross-Origin to the main frame.
</summary>
</metric>
<metric name="IsTopFrame">
<summary>
Whether the frame is the main frame.
</summary>
</metric>
<metric name="KeySystem">
<summary>
The key system passed in requestMediaKeySystemAccess() call.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment