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:
John "Juce" Bruce
2015-03-04 12:22:59 -08:00
parent 723d67c88f
commit 2ae1f717f3
9 changed files with 25 additions and 22 deletions

View File

@@ -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,

View File

@@ -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:

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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);

View File

@@ -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) {

View File

@@ -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_));
}

View File

@@ -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);
}

View File

@@ -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);