Revert of "Prevent race conditions between decrypt and close session"

[ Original CL http://ag/3890635,
  Merge of http://go/wvgerrit/50340 ]

The original fix was not sufficient to address all race conditions.
A subsequent CL will address them.

Bug: 73781703
Bug: 79158083
Bug: 79262108
Test: WV unit/integration tests, GTS GtsMediaTestCases tests and
      24 hours of continuous Netflix playback.

Change-Id: I869c22a250e2467b3d49935815e4157dc012fff5
This commit is contained in:
Rahul Frias
2018-05-13 13:53:14 -07:00
parent aa536ec97f
commit 0163607fa3
6 changed files with 1 additions and 19 deletions

View File

@@ -37,7 +37,7 @@ class CdmSession {
CdmSession(FileSystem* file_system, metrics::SessionMetrics* metrics); CdmSession(FileSystem* file_system, metrics::SessionMetrics* metrics);
virtual ~CdmSession(); virtual ~CdmSession();
void Close(); void Close() { closed_ = true; }
bool IsClosed() { return closed_; } bool IsClosed() { return closed_; }
// Initializes this instance of CdmSession with the given property set. // Initializes this instance of CdmSession with the given property set.
@@ -263,9 +263,6 @@ class CdmSession {
bool mock_license_parser_in_use_; bool mock_license_parser_in_use_;
bool mock_policy_engine_in_use_; bool mock_policy_engine_in_use_;
// Lock to avoid race conditions between Close() and Decrypt()
Lock close_lock_;
CORE_DISALLOW_COPY_AND_ASSIGN(CdmSession); CORE_DISALLOW_COPY_AND_ASSIGN(CdmSession);
}; };

View File

@@ -333,7 +333,6 @@ enum CdmResponseType {
GET_PROVISIONING_METHOD_ERROR = 289, GET_PROVISIONING_METHOD_ERROR = 289,
SESSION_NOT_FOUND_17 = 290, SESSION_NOT_FOUND_17 = 290,
SESSION_NOT_FOUND_18 = 291, SESSION_NOT_FOUND_18 = 291,
SESSION_CLOSED_1 = 292,
}; };
enum CdmKeyStatus { enum CdmKeyStatus {

View File

@@ -72,11 +72,6 @@ CdmSession::~CdmSession() {
} }
} }
void CdmSession::Close() {
AutoLock lock(close_lock_);
closed_ = true;
}
CdmResponseType CdmSession::Init( CdmResponseType CdmSession::Init(
CdmClientPropertySet* cdm_client_property_set) { CdmClientPropertySet* cdm_client_property_set) {
return Init(cdm_client_property_set, NULL, NULL); return Init(cdm_client_property_set, NULL, NULL);
@@ -581,11 +576,6 @@ CdmResponseType CdmSession::Decrypt(const CdmDecryptionParameters& params) {
return NOT_INITIALIZED_ERROR; return NOT_INITIALIZED_ERROR;
} }
AutoLock lock(close_lock_);
if (IsClosed()) {
return SESSION_CLOSED_1;
}
// Playback may not begin until either the start time passes or the license // Playback may not begin until either the start time passes or the license
// is updated, so we treat this Decrypt call as invalid. // is updated, so we treat this Decrypt call as invalid.
if (params.is_encrypted) { if (params.is_encrypted) {

View File

@@ -599,8 +599,6 @@ void PrintTo(const enum CdmResponseType& value, ::std::ostream* os) {
break; break;
case SESSION_NOT_FOUND_18: *os << "SESSION_NOT_FOUND_18"; case SESSION_NOT_FOUND_18: *os << "SESSION_NOT_FOUND_18";
break; break;
case SESSION_CLOSED_1: *os << "SESSION_CLOSED_1";
break;
default: default:
*os << "Unknown CdmResponseType"; *os << "Unknown CdmResponseType";
break; break;

View File

@@ -230,7 +230,6 @@ static android::status_t mapCdmResponseType(wvcdm::CdmResponseType res) {
case wvcdm::SESSION_NOT_FOUND_10: case wvcdm::SESSION_NOT_FOUND_10:
case wvcdm::SESSION_NOT_FOUND_17: case wvcdm::SESSION_NOT_FOUND_17:
case wvcdm::SESSION_NOT_FOUND_18: case wvcdm::SESSION_NOT_FOUND_18:
case wvcdm::SESSION_CLOSED_1:
return android::ERROR_DRM_SESSION_NOT_OPENED; return android::ERROR_DRM_SESSION_NOT_OPENED;
case wvcdm::SESSION_KEYS_NOT_FOUND: case wvcdm::SESSION_KEYS_NOT_FOUND:
return kSessionKeysNotFound; return kSessionKeysNotFound;

View File

@@ -58,7 +58,6 @@ static Status mapCdmResponseType(wvcdm::CdmResponseType res) {
case wvcdm::SESSION_NOT_FOUND_10: case wvcdm::SESSION_NOT_FOUND_10:
case wvcdm::SESSION_NOT_FOUND_17: case wvcdm::SESSION_NOT_FOUND_17:
case wvcdm::SESSION_NOT_FOUND_18: case wvcdm::SESSION_NOT_FOUND_18:
case wvcdm::SESSION_CLOSED_1:
return Status::ERROR_DRM_SESSION_NOT_OPENED; return Status::ERROR_DRM_SESSION_NOT_OPENED;
case wvcdm::DECRYPT_ERROR: case wvcdm::DECRYPT_ERROR: