Rename CancelKeyRequest
(This is a merge of http://go/wvgerrit/10674 from the Widevine CDM repository.) Now that the CE CDM has CloseSession to handle closing sessions, we can rename CancelKeyRequest on the CDM Engine & CDM Session to better resemble its purpose and the name it is known by on Android. Change-Id: I68d55b3be733579e5875ab33d8e94a62fe1f651d
This commit is contained in:
@@ -56,7 +56,7 @@ class CdmEngine {
|
|||||||
virtual CdmResponseType RestoreKey(const CdmSessionId& session_id,
|
virtual CdmResponseType RestoreKey(const CdmSessionId& session_id,
|
||||||
const CdmKeySetId& key_set_id);
|
const CdmKeySetId& key_set_id);
|
||||||
|
|
||||||
virtual CdmResponseType CancelKeyRequest(const CdmSessionId& session_id);
|
virtual CdmResponseType RemoveKeys(const CdmSessionId& session_id);
|
||||||
|
|
||||||
// Construct valid renewal request for the current session keys.
|
// Construct valid renewal request for the current session keys.
|
||||||
virtual CdmResponseType GenerateRenewalRequest(const CdmSessionId& session_id,
|
virtual CdmResponseType GenerateRenewalRequest(const CdmSessionId& session_id,
|
||||||
|
|||||||
@@ -42,9 +42,6 @@ class CdmSession {
|
|||||||
virtual CdmResponseType AddKey(const CdmKeyResponse& key_response,
|
virtual CdmResponseType AddKey(const CdmKeyResponse& key_response,
|
||||||
CdmKeySetId* key_set_id);
|
CdmKeySetId* key_set_id);
|
||||||
|
|
||||||
// CancelKeyRequest() - Cancel session.
|
|
||||||
virtual CdmResponseType CancelKeyRequest();
|
|
||||||
|
|
||||||
// Query session status
|
// Query session status
|
||||||
virtual CdmResponseType QueryStatus(CdmQueryMap* key_info);
|
virtual CdmResponseType QueryStatus(CdmQueryMap* key_info);
|
||||||
|
|
||||||
@@ -100,6 +97,13 @@ class CdmSession {
|
|||||||
is_usage_update_needed_ = false;
|
is_usage_update_needed_ = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ReleaseCrypto() - Closes the underlying crypto session but leaves this
|
||||||
|
// object alive. It is invalid to call any method that requires a crypto
|
||||||
|
// session after calling this. Since calling this renders this object mostly
|
||||||
|
// useless, it is preferable to simply delete this object (which will also
|
||||||
|
// release the underlying crypto session) rather than call this method.
|
||||||
|
virtual CdmResponseType ReleaseCrypto();
|
||||||
|
|
||||||
bool DeleteLicense();
|
bool DeleteLicense();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -326,17 +326,17 @@ CdmResponseType CdmEngine::RestoreKey(
|
|||||||
return sts;
|
return sts;
|
||||||
}
|
}
|
||||||
|
|
||||||
CdmResponseType CdmEngine::CancelKeyRequest(const CdmSessionId& session_id) {
|
CdmResponseType CdmEngine::RemoveKeys(const CdmSessionId& session_id) {
|
||||||
LOGI("CdmEngine::CancelKeyRequest");
|
LOGI("CdmEngine::RemoveKeys");
|
||||||
|
|
||||||
CdmSessionMap::iterator iter = sessions_.find(session_id);
|
CdmSessionMap::iterator iter = sessions_.find(session_id);
|
||||||
if (iter == sessions_.end()) {
|
if (iter == sessions_.end()) {
|
||||||
LOGE("CdmEngine::CancelKeyRequest: session_id not found = %s",
|
LOGE("CdmEngine::RemoveKeys: session_id not found = %s",
|
||||||
session_id.c_str());
|
session_id.c_str());
|
||||||
return KEY_ERROR;
|
return KEY_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
iter->second->CancelKeyRequest();
|
iter->second->ReleaseCrypto();
|
||||||
return NO_ERROR;
|
return NO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -335,12 +335,6 @@ CdmResponseType CdmSession::QueryKeyControlInfo(CdmQueryMap* key_info) {
|
|||||||
return NO_ERROR;
|
return NO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
// CancelKeyRequest() - Cancel session.
|
|
||||||
CdmResponseType CdmSession::CancelKeyRequest() {
|
|
||||||
crypto_session_->Close();
|
|
||||||
return NO_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Decrypt() - Accept encrypted buffer and return decrypted data.
|
// Decrypt() - Accept encrypted buffer and return decrypted data.
|
||||||
CdmResponseType CdmSession::Decrypt(const CdmDecryptionParameters& params) {
|
CdmResponseType CdmSession::Decrypt(const CdmDecryptionParameters& params) {
|
||||||
if (crypto_session_.get() == NULL || !crypto_session_->IsOpen())
|
if (crypto_session_.get() == NULL || !crypto_session_->IsOpen())
|
||||||
@@ -632,4 +626,9 @@ CdmResponseType CdmSession::UpdateUsageInformation() {
|
|||||||
return crypto_session_->UpdateUsageInformation();
|
return crypto_session_->UpdateUsageInformation();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CdmResponseType CdmSession::ReleaseCrypto() {
|
||||||
|
crypto_session_->Close();
|
||||||
|
return NO_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace wvcdm
|
} // namespace wvcdm
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ class WvContentDecryptionModule : public TimerHandler {
|
|||||||
const CdmKeySetId& key_set_id);
|
const CdmKeySetId& key_set_id);
|
||||||
|
|
||||||
// Cancel session
|
// Cancel session
|
||||||
virtual CdmResponseType CancelKeyRequest(const CdmSessionId& session_id);
|
virtual CdmResponseType RemoveKeys(const CdmSessionId& session_id);
|
||||||
|
|
||||||
// Query system information
|
// Query system information
|
||||||
virtual CdmResponseType QueryStatus(CdmQueryMap* key_info);
|
virtual CdmResponseType QueryStatus(CdmQueryMap* key_info);
|
||||||
|
|||||||
@@ -113,9 +113,9 @@ CdmResponseType WvContentDecryptionModule::RestoreKey(
|
|||||||
return sts;
|
return sts;
|
||||||
}
|
}
|
||||||
|
|
||||||
CdmResponseType WvContentDecryptionModule::CancelKeyRequest(
|
CdmResponseType WvContentDecryptionModule::RemoveKeys(
|
||||||
const CdmSessionId& session_id) {
|
const CdmSessionId& session_id) {
|
||||||
return cdm_engine_->CancelKeyRequest(session_id);
|
return cdm_engine_->RemoveKeys(session_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
CdmResponseType WvContentDecryptionModule::QueryStatus(CdmQueryMap* key_info) {
|
CdmResponseType WvContentDecryptionModule::QueryStatus(CdmQueryMap* key_info) {
|
||||||
|
|||||||
@@ -1196,7 +1196,7 @@ TEST_F(WvCdmRequestLicenseTest, RemoveKeys) {
|
|||||||
ASSERT_EQ(NO_ERROR, decryptor_.OpenSession(g_key_system, NULL, &session_id_));
|
ASSERT_EQ(NO_ERROR, decryptor_.OpenSession(g_key_system, NULL, &session_id_));
|
||||||
GenerateKeyRequest(g_key_id, kLicenseTypeStreaming);
|
GenerateKeyRequest(g_key_id, kLicenseTypeStreaming);
|
||||||
VerifyKeyRequestResponse(g_license_server, g_client_auth, false);
|
VerifyKeyRequestResponse(g_license_server, g_client_auth, false);
|
||||||
ASSERT_EQ(NO_ERROR, decryptor_.CancelKeyRequest(session_id_));
|
ASSERT_EQ(NO_ERROR, decryptor_.RemoveKeys(session_id_));
|
||||||
ASSERT_EQ(NO_ERROR, decryptor_.CloseSession(session_id_));
|
ASSERT_EQ(NO_ERROR, decryptor_.CloseSession(session_id_));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -282,7 +282,7 @@ status_t WVDrmPlugin::provideKeyResponse(
|
|||||||
status_t WVDrmPlugin::removeKeys(const Vector<uint8_t>& sessionId) {
|
status_t WVDrmPlugin::removeKeys(const Vector<uint8_t>& sessionId) {
|
||||||
CdmSessionId cdmSessionId(sessionId.begin(), sessionId.end());
|
CdmSessionId cdmSessionId(sessionId.begin(), sessionId.end());
|
||||||
|
|
||||||
CdmResponseType res = mCDM->CancelKeyRequest(cdmSessionId);
|
CdmResponseType res = mCDM->RemoveKeys(cdmSessionId);
|
||||||
|
|
||||||
return mapAndNotifyOfCdmResponseType(sessionId, res);
|
return mapAndNotifyOfCdmResponseType(sessionId, res);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ class MockCDM : public WvContentDecryptionModule {
|
|||||||
const CdmKeyResponse&,
|
const CdmKeyResponse&,
|
||||||
CdmKeySetId*));
|
CdmKeySetId*));
|
||||||
|
|
||||||
MOCK_METHOD1(CancelKeyRequest, CdmResponseType(const CdmSessionId&));
|
MOCK_METHOD1(RemoveKeys, CdmResponseType(const CdmSessionId&));
|
||||||
|
|
||||||
MOCK_METHOD2(RestoreKey, CdmResponseType(const CdmSessionId&,
|
MOCK_METHOD2(RestoreKey, CdmResponseType(const CdmSessionId&,
|
||||||
const CdmKeySetId&));
|
const CdmKeySetId&));
|
||||||
@@ -439,12 +439,12 @@ TEST_F(WVDrmPluginTest, HandlesPrivacyCertCaseOfAddKey) {
|
|||||||
ASSERT_EQ(OK, res);
|
ASSERT_EQ(OK, res);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(WVDrmPluginTest, CancelsKeyRequests) {
|
TEST_F(WVDrmPluginTest, RemovesKeys) {
|
||||||
StrictMock<MockCDM> cdm;
|
StrictMock<MockCDM> cdm;
|
||||||
StrictMock<MockCrypto> crypto;
|
StrictMock<MockCrypto> crypto;
|
||||||
WVDrmPlugin plugin(&cdm, &crypto);
|
WVDrmPlugin plugin(&cdm, &crypto);
|
||||||
|
|
||||||
EXPECT_CALL(cdm, CancelKeyRequest(cdmSessionId))
|
EXPECT_CALL(cdm, RemoveKeys(cdmSessionId))
|
||||||
.Times(1);
|
.Times(1);
|
||||||
|
|
||||||
status_t res = plugin.removeKeys(sessionId);
|
status_t res = plugin.removeKeys(sessionId);
|
||||||
|
|||||||
Reference in New Issue
Block a user