Source release 19.5.0

This commit is contained in:
Cong Lin
2025-04-02 10:27:18 -07:00
parent 4407acee62
commit f7ec4fdeff
295 changed files with 32196 additions and 21748 deletions

View File

@@ -10,6 +10,8 @@
#include "properties.h"
#include "test_base.h"
using video_widevine::SignedMessage;
namespace wvcdm {
namespace {
const std::string kCencMimeType = "cenc";
@@ -42,11 +44,24 @@ void LicenseHolder::FetchLicense() {
if (config_.dump_golden_data()) {
MessageDumper::DumpLicenseRequest(key_request);
}
if (log_core_message_) MessageDumper::PrintLicenseRequest(key_request);
ASSERT_NO_FATAL_FAILURE(GetKeyResponse(key_request))
<< "Failed for " << content_id();
if (config_.dump_golden_data()) {
MessageDumper::DumpLicense(key_response_);
}
if (pst_length_ > 0) {
SignedMessage signed_message;
ASSERT_TRUE(signed_message.ParseFromString(key_response_));
video_widevine::License license;
ASSERT_TRUE(license.ParseFromString(signed_message.msg()));
// Verify that pst exists and matches |pst_length_|.
ASSERT_TRUE(!license.id().provider_session_token().empty());
ASSERT_EQ(pst_length_, license.id().provider_session_token().length());
}
if (log_core_message_) MessageDumper::PrintLicenseResponse(key_response_);
}
void LicenseHolder::LoadLicense() {
@@ -93,6 +108,37 @@ void LicenseHolder::GenerateAndPostRenewalRequest(
if (config_.dump_golden_data()) {
MessageDumper::DumpRenewalRequest(request);
}
if (renewal_info_check_) {
SignedMessage signed_message;
ASSERT_TRUE(signed_message.ParseFromString(request.message));
video_widevine::LicenseRequest renewal_request;
ASSERT_TRUE(renewal_request.ParseFromString(signed_message.msg()));
if (client_id_check_) {
// Check that a renewal request where client ID is always included
// has a client ID.
ASSERT_TRUE(renewal_request.has_client_id());
} else {
// Check that a renewal request where can_persist = true does not include
// the client ID.
ASSERT_FALSE(renewal_request.has_client_id());
}
// Check that a renewal request where can_persist = true does not include
// usage entry info.
ASSERT_FALSE(renewal_request.content_id()
.existing_license()
.has_session_usage_table_entry());
// Check that a renewal request where can_persist = true includes the PST.
ASSERT_TRUE(renewal_request.content_id()
.existing_license()
.license_id()
.has_provider_session_token());
}
const std::string url = MakeUrl(config_.renewal_server(), renewal_policy_id);
request_in_flight_.reset(new UrlRequest(url));
ASSERT_TRUE(request_in_flight_->is_connected())
@@ -113,7 +159,17 @@ void LicenseHolder::LoadRenewal() {
if (config_.dump_golden_data()) {
MessageDumper::DumpRenewal(request_message_);
}
EXPECT_EQ(KEY_ADDED, cdm_engine_->RenewKey(session_id_, request_message_))
if (renewal_info_check_) {
SignedMessage signed_message;
ASSERT_TRUE(signed_message.ParseFromString(request_message_));
video_widevine::License renewal;
ASSERT_TRUE(renewal.ParseFromString(signed_message.msg()));
// Verify that pst exist.
ASSERT_TRUE(renewal.id().has_provider_session_token());
}
ASSERT_EQ(KEY_ADDED, cdm_engine_->RenewKey(session_id_, request_message_))
<< "Failed for " << content_id();
}
@@ -148,10 +204,6 @@ void LicenseHolder::GenerateAndPostReleaseRequest(
if (!Properties::AlwaysUseKeySetIds()) {
cdm_engine_->CloseKeySetSession(key_set_id_);
}
if (config_.dump_golden_data()) {
// TODO (b/295956275) vickymin: write DumpReleaseRequest function
// MessageDumper::DumpReleaseRequest(request);
}
const std::string url = MakeUrl(config_.renewal_server(), release_policy_id);
request_in_flight_.reset(new UrlRequest(url));
ASSERT_TRUE(request_in_flight_->is_connected())
@@ -169,14 +221,10 @@ void LicenseHolder::FetchRelease() {
void LicenseHolder::LoadRelease() {
LicenseRequest license_request;
license_request.GetDrmMessage(request_response_, request_message_);
if (config_.dump_golden_data()) {
// TODO (b/295956275) vickymin: write DumpRelease function
// MessageDumper::DumpRelease(request_message_);
}
}
void LicenseHolder::RemoveLicense() {
EXPECT_EQ(NO_ERROR, cdm_engine_->RemoveLicense(session_id_))
ASSERT_EQ(NO_ERROR, cdm_engine_->RemoveLicense(session_id_))
<< "Failed for " << content_id();
}