Exclude the default CDM from metrics history.

[ Merge of http://go/wvgerrit/173410 ]

The DRM plugin opens and closes many CDMs using the default identifier.
These metrics are not needed when checking the metric history and will
no longer be stored.  Default CDM metrics will continue to appear in
the live metrics list.

Bug: 239462891
Bug: 270166158
Test: adb shell dumpsys android.hardware.drm.IDrmFactory/widevine -m
Change-Id: I64662a44e9c084cc0f08c5a3f013dbf86374ac2d
This commit is contained in:
Alex Dale
2023-05-01 15:37:34 -07:00
parent 3e650cfd9f
commit da6437fe5e
2 changed files with 5 additions and 1 deletions

View File

@@ -47,7 +47,7 @@ struct CdmIdentifier {
// to the default cdm. E.g. no spoid, origin or app package name. Use this
// comparison in lieu of the == operator when checking to see if the
// identifier would cause the default provisioned certificate to be used.
bool IsEquivalentToDefault() {
bool IsEquivalentToDefault() const {
return spoid == EMPTY_SPOID && origin == EMPTY_ORIGIN &&
app_package_name == EMPTY_APP_PACKAGE_NAME;
}

View File

@@ -565,6 +565,10 @@ CdmResponseType WvContentDecryptionModule::GetCurrentMetricsInternal(
void WvContentDecryptionModule::SaveMetrics(
const CdmIdentifier& identifier, drm_metrics::WvCdmMetrics&& metrics) {
if (saved_metrics_snapshots_ == nullptr) return;
// The DRM plugin opens and closes many CDMs using the default
// identifier. These metrics are not needed when checking the
// metric history.
if (identifier.IsEquivalentToDefault()) return;
saved_metrics_snapshots_->PushMetrics(
WvMetricsSnapshot::MakeSnapshot(identifier, std::move(metrics)));
}