diff options
author | xhwang@chromium.org <xhwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-26 06:29:06 +0000 |
---|---|---|
committer | xhwang@chromium.org <xhwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-26 06:29:06 +0000 |
commit | aafe1677ffd4851e0f84a37ad3e989ad2ad5d309 (patch) | |
tree | 8e072b1e2af1bfa3577de5dfeb8b6fd693f2437d /media | |
parent | 2754bf8d56d3c1b5a123730256214c0953dba9f2 (diff) | |
download | chromium_src-aafe1677ffd4851e0f84a37ad3e989ad2ad5d309.zip chromium_src-aafe1677ffd4851e0f84a37ad3e989ad2ad5d309.tar.gz chromium_src-aafe1677ffd4851e0f84a37ad3e989ad2ad5d309.tar.bz2 |
Handle android.media.ResourceBusyException in MediaDrm::openSession().
Based on Android MediaDrm API documentation:
https://developer.android.com/reference/android/media/MediaDrm.html#openSession()
openSession() could actually throw ResourceBusyException. This is added in API
level 19. To be compatible with both API level 18 and 19, we cannot catch
ResourceBusyException directly. Instead, we catch NotProvisionedException
explicitly, and catch all other MediaDrmExceptions together.
TBR=qinmin@chromium.org
BUG=387763
Review URL: https://codereview.chromium.org/353743009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@279929 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r-- | media/base/android/java/src/org/chromium/media/MediaDrmBridge.java | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/media/base/android/java/src/org/chromium/media/MediaDrmBridge.java b/media/base/android/java/src/org/chromium/media/MediaDrmBridge.java index e890236..87f48879 100644 --- a/media/base/android/java/src/org/chromium/media/MediaDrmBridge.java +++ b/media/base/android/java/src/org/chromium/media/MediaDrmBridge.java @@ -238,6 +238,15 @@ public class MediaDrmBridge { Log.e(TAG, "Cannot open a new session", e); release(); return null; + } catch (android.media.NotProvisionedException e) { + // Throw NotProvisionedException so that we can startProvisioning(). + throw e; + } catch (android.media.MediaDrmException e) { + // Other MediaDrmExceptions (e.g. ResourceBusyException) are not + // recoverable. + Log.e(TAG, "Cannot open a new session", e); + release(); + return null; } } |