Bug 1313202 - Convert InvalidAccessErrors coming out of the Widevine CDM to TypeErrors like Chrome does. r=gerald

MozReview-Commit-ID: FEY08LZheTf

--HG--
extra : rebase_source : e6ddc8a5f7740a5e09822ea1b16ca58b05dee919
This commit is contained in:
Chris Pearce 2016-10-27 14:04:10 +13:00
Родитель 8685a93e46
Коммит f98c7aa8b5
4 изменённых файлов: 10 добавлений и 2 удалений

Просмотреть файл

@ -245,6 +245,7 @@ GMPExToNsresult(GMPDOMException aDomException) {
case kGMPAbortError: return NS_ERROR_DOM_ABORT_ERR;
case kGMPQuotaExceededError: return NS_ERROR_DOM_QUOTA_EXCEEDED_ERR;
case kGMPTimeoutError: return NS_ERROR_DOM_TIMEOUT_ERR;
case kGMPTypeError: return NS_ERROR_DOM_TYPE_ERR;
default: return NS_ERROR_DOM_UNKNOWN_ERR;
}
}

Просмотреть файл

@ -34,6 +34,7 @@ struct GMPDomExceptionValidator {
case kGMPAbortError:
case kGMPQuotaExceededError:
case kGMPTimeoutError:
case kGMPTypeError:
return true;
default:
return false;

Просмотреть файл

@ -79,7 +79,8 @@ enum GMPDOMException {
kGMPSecurityError = 18,
kGMPAbortError = 20,
kGMPQuotaExceededError = 22,
kGMPTimeoutError = 23
kGMPTimeoutError = 23,
kGMPTypeError = 52
};
enum GMPSessionMessageType {

Просмотреть файл

@ -321,7 +321,12 @@ ToGMPDOMException(cdm::Error aError)
switch (aError) {
case kNotSupportedError: return kGMPNotSupportedError;
case kInvalidStateError: return kGMPInvalidStateError;
case kInvalidAccessError: return kGMPInvalidAccessError;
case kInvalidAccessError:
// Note: Chrome converts kInvalidAccessError to TypeError, since the
// Chromium CDM API doesn't have a type error enum value. The EME spec
// requires TypeError in some places, so we do the same conversion.
// See bug 1313202.
return kGMPTypeError;
case kQuotaExceededError: return kGMPQuotaExceededError;
case kUnknownError: return kGMPInvalidModificationError; // Note: Unique placeholder.
case kClientError: return kGMPAbortError; // Note: Unique placeholder.