Index: media/base/android/java/src/org/chromium/media/MediaDrmSessionManager.java |
diff --git a/media/base/android/java/src/org/chromium/media/MediaDrmSessionManager.java b/media/base/android/java/src/org/chromium/media/MediaDrmSessionManager.java |
index 4280d7f60c3dbfb7aa455917810af17cbb2950ba..42e6675bd4f98fe5a60845aa0c56c645421f34c4 100644 |
--- a/media/base/android/java/src/org/chromium/media/MediaDrmSessionManager.java |
+++ b/media/base/android/java/src/org/chromium/media/MediaDrmSessionManager.java |
@@ -7,6 +7,7 @@ package org.chromium.media; |
import android.media.MediaDrm; |
import org.chromium.base.Callback; |
+import org.chromium.media.MediaDrmStorageBridge.PersistentInfo; |
import java.nio.ByteBuffer; |
import java.util.ArrayList; |
@@ -158,6 +159,12 @@ class MediaDrmSessionManager { |
private void setKeyType(int keyType) { |
mKeyType = keyType; |
} |
+ |
+ private PersistentInfo toPersistentInfo() { |
+ assert mSessionId.keySetId() != null; |
+ |
+ return new PersistentInfo(mSessionId.emeId(), mSessionId.keySetId(), mMimeType); |
+ } |
} |
// Maps from DRM/EME session ID to SessionInfo. SessionInfo contains |
@@ -170,9 +177,15 @@ class MediaDrmSessionManager { |
private HashMap<ByteBuffer, SessionInfo> mEmeSessionInfoMap; |
private HashMap<ByteBuffer, SessionInfo> mDrmSessionInfoMap; |
- public MediaDrmSessionManager() { |
+ // The persistent storage to record map from EME session ID to key set ID |
+ // for persistent license. |
+ private MediaDrmStorageBridge mStorage; |
+ |
+ public MediaDrmSessionManager(MediaDrmStorageBridge storage) { |
mEmeSessionInfoMap = new HashMap<>(); |
mDrmSessionInfoMap = new HashMap<>(); |
+ |
+ mStorage = storage; |
} |
/** |
@@ -185,8 +198,7 @@ class MediaDrmSessionManager { |
sessionId.setKeySetId(keySetId); |
- // TODO(yucliu): Write updated key set ID to persistent storage. |
- callback.onResult(true); |
+ mStorage.saveInfo(get(sessionId).toPersistentInfo(), callback); |
} |
/** |