summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorxhwang@chromium.org <xhwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-26 06:29:06 +0000
committerxhwang@chromium.org <xhwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-26 06:29:06 +0000
commitaafe1677ffd4851e0f84a37ad3e989ad2ad5d309 (patch)
tree8e072b1e2af1bfa3577de5dfeb8b6fd693f2437d /media
parent2754bf8d56d3c1b5a123730256214c0953dba9f2 (diff)
downloadchromium_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.java9
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;
}
}