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,
|
||||
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.
|
||||
virtual CdmResponseType GenerateRenewalRequest(const CdmSessionId& session_id,
|
||||
|
||||
@@ -42,9 +42,6 @@ class CdmSession {
|
||||
virtual CdmResponseType AddKey(const CdmKeyResponse& key_response,
|
||||
CdmKeySetId* key_set_id);
|
||||
|
||||
// CancelKeyRequest() - Cancel session.
|
||||
virtual CdmResponseType CancelKeyRequest();
|
||||
|
||||
// Query session status
|
||||
virtual CdmResponseType QueryStatus(CdmQueryMap* key_info);
|
||||
|
||||
@@ -100,6 +97,13 @@ class CdmSession {
|
||||
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();
|
||||
|
||||
private:
|
||||
|
||||
@@ -326,17 +326,17 @@ CdmResponseType CdmEngine::RestoreKey(
|
||||
return sts;
|
||||
}
|
||||
|
||||
CdmResponseType CdmEngine::CancelKeyRequest(const CdmSessionId& session_id) {
|
||||
LOGI("CdmEngine::CancelKeyRequest");
|
||||
CdmResponseType CdmEngine::RemoveKeys(const CdmSessionId& session_id) {
|
||||
LOGI("CdmEngine::RemoveKeys");
|
||||
|
||||
CdmSessionMap::iterator iter = sessions_.find(session_id);
|
||||
if (iter == sessions_.end()) {
|
||||
LOGE("CdmEngine::CancelKeyRequest: session_id not found = %s",
|
||||
LOGE("CdmEngine::RemoveKeys: session_id not found = %s",
|
||||
session_id.c_str());
|
||||
return KEY_ERROR;
|
||||
}
|
||||
|
||||
iter->second->CancelKeyRequest();
|
||||
iter->second->ReleaseCrypto();
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
|
||||
@@ -335,12 +335,6 @@ CdmResponseType CdmSession::QueryKeyControlInfo(CdmQueryMap* key_info) {
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
// CancelKeyRequest() - Cancel session.
|
||||
CdmResponseType CdmSession::CancelKeyRequest() {
|
||||
crypto_session_->Close();
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
// Decrypt() - Accept encrypted buffer and return decrypted data.
|
||||
CdmResponseType CdmSession::Decrypt(const CdmDecryptionParameters& params) {
|
||||
if (crypto_session_.get() == NULL || !crypto_session_->IsOpen())
|
||||
@@ -632,4 +626,9 @@ CdmResponseType CdmSession::UpdateUsageInformation() {
|
||||
return crypto_session_->UpdateUsageInformation();
|
||||
}
|
||||
|
||||
CdmResponseType CdmSession::ReleaseCrypto() {
|
||||
crypto_session_->Close();
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
} // namespace wvcdm
|
||||
|
||||
@@ -53,7 +53,7 @@ class WvContentDecryptionModule : public TimerHandler {
|
||||
const CdmKeySetId& key_set_id);
|
||||
|
||||
// Cancel session
|
||||
virtual CdmResponseType CancelKeyRequest(const CdmSessionId& session_id);
|
||||
virtual CdmResponseType RemoveKeys(const CdmSessionId& session_id);
|
||||
|
||||
// Query system information
|
||||
virtual CdmResponseType QueryStatus(CdmQueryMap* key_info);
|
||||
|
||||
@@ -113,9 +113,9 @@ CdmResponseType WvContentDecryptionModule::RestoreKey(
|
||||
return sts;
|
||||
}
|
||||
|
||||
CdmResponseType WvContentDecryptionModule::CancelKeyRequest(
|
||||
CdmResponseType WvContentDecryptionModule::RemoveKeys(
|
||||
const CdmSessionId& session_id) {
|
||||
return cdm_engine_->CancelKeyRequest(session_id);
|
||||
return cdm_engine_->RemoveKeys(session_id);
|
||||
}
|
||||
|
||||
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_));
|
||||
GenerateKeyRequest(g_key_id, kLicenseTypeStreaming);
|
||||
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_));
|
||||
}
|
||||
|
||||
|
||||
@@ -282,7 +282,7 @@ status_t WVDrmPlugin::provideKeyResponse(
|
||||
status_t WVDrmPlugin::removeKeys(const Vector<uint8_t>& sessionId) {
|
||||
CdmSessionId cdmSessionId(sessionId.begin(), sessionId.end());
|
||||
|
||||
CdmResponseType res = mCDM->CancelKeyRequest(cdmSessionId);
|
||||
CdmResponseType res = mCDM->RemoveKeys(cdmSessionId);
|
||||
|
||||
return mapAndNotifyOfCdmResponseType(sessionId, res);
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ class MockCDM : public WvContentDecryptionModule {
|
||||
const CdmKeyResponse&,
|
||||
CdmKeySetId*));
|
||||
|
||||
MOCK_METHOD1(CancelKeyRequest, CdmResponseType(const CdmSessionId&));
|
||||
MOCK_METHOD1(RemoveKeys, CdmResponseType(const CdmSessionId&));
|
||||
|
||||
MOCK_METHOD2(RestoreKey, CdmResponseType(const CdmSessionId&,
|
||||
const CdmKeySetId&));
|
||||
@@ -439,12 +439,12 @@ TEST_F(WVDrmPluginTest, HandlesPrivacyCertCaseOfAddKey) {
|
||||
ASSERT_EQ(OK, res);
|
||||
}
|
||||
|
||||
TEST_F(WVDrmPluginTest, CancelsKeyRequests) {
|
||||
TEST_F(WVDrmPluginTest, RemovesKeys) {
|
||||
StrictMock<MockCDM> cdm;
|
||||
StrictMock<MockCrypto> crypto;
|
||||
WVDrmPlugin plugin(&cdm, &crypto);
|
||||
|
||||
EXPECT_CALL(cdm, CancelKeyRequest(cdmSessionId))
|
||||
EXPECT_CALL(cdm, RemoveKeys(cdmSessionId))
|
||||
.Times(1);
|
||||
|
||||
status_t res = plugin.removeKeys(sessionId);
|
||||
|
||||
Reference in New Issue
Block a user