Add support for Resource Rating Tiers
[ Merge of http://go/wvgerrit/67324 ] This introduces the ability to query resource rating tier information through the plugin and CDM. Resource rating tiers are also sent in the client identification portion of the license request. Bug: 117112392 Test: WV unit/integration tests Change-Id: I68ac6dfc4362f61150af822bd526e346b5cc4bf7
This commit is contained in:
@@ -524,6 +524,8 @@ status_t WVDrmPlugin::getPropertyString(const String8& name,
|
||||
return queryProperty(QUERY_KEY_CURRENT_SRM_VERSION, value);
|
||||
} else if (name == "SRMUpdateSupport") {
|
||||
return queryProperty(QUERY_KEY_SRM_UPDATE_SUPPORT, value);
|
||||
} else if (name == "resourceRatingTier") {
|
||||
return queryProperty(QUERY_KEY_RESOURCE_RATING_TIER, value);
|
||||
} else if (name == "oemCryptoBuildInformation") {
|
||||
return queryProperty(QUERY_KEY_OEMCRYPTO_BUILD_INFORMATION, value);
|
||||
} else {
|
||||
|
||||
@@ -1020,6 +1020,8 @@ Return<void> WVDrmPlugin::getPropertyString(const hidl_string& propertyName,
|
||||
status = queryProperty(wvcdm::QUERY_KEY_CURRENT_SRM_VERSION, value);
|
||||
} else if (name == "SRMUpdateSupport") {
|
||||
status = queryProperty(wvcdm::QUERY_KEY_SRM_UPDATE_SUPPORT, value);
|
||||
} else if (name == "resourceRatingTier") {
|
||||
status = queryProperty(wvcdm::QUERY_KEY_RESOURCE_RATING_TIER, value);
|
||||
} else if (name == "oemCryptoBuildInformation") {
|
||||
status = queryProperty(wvcdm::QUERY_KEY_OEMCRYPTO_BUILD_INFORMATION, value);
|
||||
} else {
|
||||
|
||||
@@ -109,6 +109,7 @@ using wvcdm::QUERY_KEY_SECURITY_LEVEL;
|
||||
using wvcdm::QUERY_KEY_SRM_UPDATE_SUPPORT;
|
||||
using wvcdm::QUERY_KEY_SYSTEM_ID;
|
||||
using wvcdm::QUERY_KEY_WVCDM_VERSION;
|
||||
using wvcdm::QUERY_KEY_RESOURCE_RATING_TIER;
|
||||
using wvcdm::QUERY_KEY_OEMCRYPTO_BUILD_INFORMATION;
|
||||
using wvcdm::QUERY_VALUE_SECURITY_LEVEL_L1;
|
||||
using wvcdm::QUERY_VALUE_SECURITY_LEVEL_L3;
|
||||
@@ -1135,6 +1136,7 @@ TEST_F(WVDrmPluginTest, ReturnsExpectedPropertyValues) {
|
||||
static const std::string oemCryptoApiVersion = "13";
|
||||
static const std::string currentSRMVersion = "1";
|
||||
static const std::string cdmVersion = "Infinity Minus 1";
|
||||
static const std::string resourceRatingTier = "1";
|
||||
static const std::string oemCryptoBuildInformation = "Mostly Harmless";
|
||||
drm_metrics::WvCdmMetrics expected_metrics;
|
||||
std::string serialized_metrics = wvcdm::a2bs_hex(kSerializedMetricsHex);
|
||||
@@ -1182,6 +1184,10 @@ TEST_F(WVDrmPluginTest, ReturnsExpectedPropertyValues) {
|
||||
.WillOnce(DoAll(SetArgPointee<2>(cdmVersion),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
|
||||
EXPECT_CALL(*cdm, QueryStatus(_, QUERY_KEY_RESOURCE_RATING_TIER, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(resourceRatingTier),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
|
||||
EXPECT_CALL(*cdm, QueryStatus(_, QUERY_KEY_OEMCRYPTO_BUILD_INFORMATION, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(oemCryptoBuildInformation),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
@@ -1291,6 +1297,20 @@ TEST_F(WVDrmPluginTest, ReturnsExpectedPropertyValues) {
|
||||
EXPECT_STREQ(currentSRMVersion.c_str(), stringResult.c_str());
|
||||
});
|
||||
|
||||
plugin.getPropertyString(
|
||||
hidl_string("resourceRatingTier"),
|
||||
[&](Status status, hidl_string stringResult) {
|
||||
ASSERT_EQ(Status::OK, status);
|
||||
EXPECT_STREQ(resourceRatingTier.c_str(), stringResult.c_str());
|
||||
});
|
||||
|
||||
plugin.getPropertyString(
|
||||
hidl_string("oemCryptoBuildInformation"),
|
||||
[&](Status status, hidl_string stringResult) {
|
||||
ASSERT_EQ(Status::OK, status);
|
||||
EXPECT_STREQ(oemCryptoBuildInformation.c_str(), stringResult.c_str());
|
||||
});
|
||||
|
||||
// This call occurs before any open session or other call. This means
|
||||
// that the cdm identifer is not yet sealed, and metrics return empty
|
||||
// metrics data.
|
||||
|
||||
Reference in New Issue
Block a user