Index: media/cdm/ppapi/external_clear_key/clear_key_cdm.cc |
diff --git a/media/cdm/ppapi/external_clear_key/clear_key_cdm.cc b/media/cdm/ppapi/external_clear_key/clear_key_cdm.cc |
index 9dfea99e53dd553dfdf2e8b9958b40090fe2d867..9cdd9c3ff1f9b27f1b69127cb4c3cf338c977ec6 100644 |
--- a/media/cdm/ppapi/external_clear_key/clear_key_cdm.cc |
+++ b/media/cdm/ppapi/external_clear_key/clear_key_cdm.cc |
@@ -66,6 +66,9 @@ const char kExternalClearKeyDecryptOnlyKeySystem[] = |
"org.chromium.externalclearkey.decryptonly"; |
const char kExternalClearKeyFileIOTestKeySystem[] = |
"org.chromium.externalclearkey.fileiotest"; |
+const char kExternalClearKeyCrashKeySystem[] = |
+ "org.chromium.externalclearkey.crash"; |
+ |
const int64 kSecondsPerMinute = 60; |
const int64 kMsPerSecond = 1000; |
const int64 kInitialTimerDelayMs = 200; |
@@ -147,7 +150,8 @@ void* CreateCdmInstance(int cdm_interface_version, |
std::string key_system_string(key_system, key_system_size); |
if (key_system_string != kExternalClearKeyKeySystem && |
key_system_string != kExternalClearKeyDecryptOnlyKeySystem && |
- key_system_string != kExternalClearKeyFileIOTestKeySystem) { |
+ key_system_string != kExternalClearKeyFileIOTestKeySystem && |
+ key_system_string != kExternalClearKeyCrashKeySystem) { |
DVLOG(1) << "Unsupported key system:" << key_system_string; |
return NULL; |
} |
@@ -391,6 +395,10 @@ cdm::Status ClearKeyCdm::DecryptAndDecodeSamples( |
cdm::AudioFrames* audio_frames) { |
DVLOG(1) << "DecryptAndDecodeSamples()"; |
+ // Trigger a crash on purpose for testing purpose. |
+ if (key_system_ == kExternalClearKeyCrashKeySystem) |
+ CHECK(false); |
+ |
scoped_refptr<media::DecoderBuffer> buffer; |
cdm::Status status = DecryptToMediaDecoderBuffer(encrypted_buffer, &buffer); |