diff options
author | xhwang@chromium.org <xhwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-09 04:23:29 +0000 |
---|---|---|
committer | xhwang@chromium.org <xhwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-09 04:23:29 +0000 |
commit | a27d34ab68aa875f665b043129b6315dd9e62224 (patch) | |
tree | 59c2630c3b54d0d6810b5c644b5f247cbc360a3f /media/cdm | |
parent | 7819ffcdd83a316cf2f010fcfd22ed89c355d5d9 (diff) | |
download | chromium_src-a27d34ab68aa875f665b043129b6315dd9e62224.zip chromium_src-a27d34ab68aa875f665b043129b6315dd9e62224.tar.gz chromium_src-a27d34ab68aa875f665b043129b6315dd9e62224.tar.bz2 |
Handle plugin instance crash in ContentDecryptorDelegate.
BUG=chrome-os-partner:17801
TEST=Kill Widevine CDM process and we get decode error.
Review URL: https://codereview.chromium.org/116443009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243762 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/cdm')
-rw-r--r-- | media/cdm/ppapi/external_clear_key/clear_key_cdm.cc | 10 |
1 files changed, 9 insertions, 1 deletions
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 9dfea99..9cdd9c3 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); |