| Index: media/base/android/media_drm_bridge.cc
|
| diff --git a/media/base/android/media_drm_bridge.cc b/media/base/android/media_drm_bridge.cc
|
| index bc35e3617778ff0be7baa39f8012d84322f76b90..d222733572b95ba3d5ad7464fa9cc24a0b0d29be 100644
|
| --- a/media/base/android/media_drm_bridge.cc
|
| +++ b/media/base/android/media_drm_bridge.cc
|
| @@ -300,6 +300,7 @@ scoped_refptr<MediaDrmBridge> MediaDrmBridge::CreateInternal(
|
| const std::string& key_system,
|
| SecurityLevel security_level,
|
| const CreateFetcherCB& create_fetcher_cb,
|
| + const CreateStorageCB& create_storage_cb,
|
| const SessionMessageCB& session_message_cb,
|
| const SessionClosedCB& session_closed_cb,
|
| const SessionKeysChangeCB& session_keys_change_cb,
|
| @@ -312,8 +313,9 @@ scoped_refptr<MediaDrmBridge> MediaDrmBridge::CreateInternal(
|
| return nullptr;
|
|
|
| scoped_refptr<MediaDrmBridge> media_drm_bridge(new MediaDrmBridge(
|
| - scheme_uuid, security_level, create_fetcher_cb, session_message_cb,
|
| - session_closed_cb, session_keys_change_cb, session_expiration_update_cb));
|
| + scheme_uuid, security_level, create_fetcher_cb, create_storage_cb,
|
| + session_message_cb, session_closed_cb, session_keys_change_cb,
|
| + session_expiration_update_cb));
|
|
|
| if (media_drm_bridge->j_media_drm_.is_null())
|
| media_drm_bridge = nullptr;
|
| @@ -326,6 +328,7 @@ scoped_refptr<MediaDrmBridge> MediaDrmBridge::Create(
|
| const std::string& key_system,
|
| SecurityLevel security_level,
|
| const CreateFetcherCB& create_fetcher_cb,
|
| + const CreateStorageCB& create_storage_cb,
|
| const SessionMessageCB& session_message_cb,
|
| const SessionClosedCB& session_closed_cb,
|
| const SessionKeysChangeCB& session_keys_change_cb,
|
| @@ -336,8 +339,9 @@ scoped_refptr<MediaDrmBridge> MediaDrmBridge::Create(
|
| return nullptr;
|
|
|
| return CreateInternal(key_system, security_level, create_fetcher_cb,
|
| - session_message_cb, session_closed_cb,
|
| - session_keys_change_cb, session_expiration_update_cb);
|
| + create_storage_cb, session_message_cb,
|
| + session_closed_cb, session_keys_change_cb,
|
| + session_expiration_update_cb);
|
| }
|
|
|
| // static
|
| @@ -351,9 +355,10 @@ scoped_refptr<MediaDrmBridge> MediaDrmBridge::CreateWithoutSessionSupport(
|
| if (!AreMediaDrmApisAvailable())
|
| return nullptr;
|
|
|
| - return MediaDrmBridge::Create(
|
| - key_system, security_level, create_fetcher_cb, SessionMessageCB(),
|
| - SessionClosedCB(), SessionKeysChangeCB(), SessionExpirationUpdateCB());
|
| + return MediaDrmBridge::Create(key_system, security_level, create_fetcher_cb,
|
| + CreateStorageCB(), SessionMessageCB(),
|
| + SessionClosedCB(), SessionKeysChangeCB(),
|
| + SessionExpirationUpdateCB());
|
| }
|
|
|
| void MediaDrmBridge::SetServerCertificate(
|
| @@ -760,12 +765,14 @@ MediaDrmBridge::MediaDrmBridge(
|
| const std::vector<uint8_t>& scheme_uuid,
|
| SecurityLevel security_level,
|
| const CreateFetcherCB& create_fetcher_cb,
|
| + const CreateStorageCB& create_storage_cb,
|
| const SessionMessageCB& session_message_cb,
|
| const SessionClosedCB& session_closed_cb,
|
| const SessionKeysChangeCB& session_keys_change_cb,
|
| const SessionExpirationUpdateCB& session_expiration_update_cb)
|
| : scheme_uuid_(scheme_uuid),
|
| create_fetcher_cb_(create_fetcher_cb),
|
| + create_storage_cb_(create_storage_cb),
|
| session_message_cb_(session_message_cb),
|
| session_closed_cb_(session_closed_cb),
|
| session_keys_change_cb_(session_keys_change_cb),
|
| @@ -787,11 +794,26 @@ MediaDrmBridge::MediaDrmBridge(
|
| ScopedJavaLocalRef<jstring> j_security_level =
|
| ConvertUTF8ToJavaString(env, security_level_str);
|
|
|
| + media_drm_storage_ = create_storage_cb_.Run();
|
| +
|
| + // Test code!!!
|
| + media_drm_storage_->Initialize(
|
| + url::Origin(GURL("https://www.foobar.com:80")));
|
| + media_drm_storage_->OnProvisioned(
|
| + base::Bind(&MediaDrmBridge::OnStorageResult, weak_factory_.GetWeakPtr()));
|
| + media_drm_storage_->SavePersistentSession(
|
| + "fake session id", {1, 2}, "fake mime type",
|
| + base::Bind(&MediaDrmBridge::OnStorageResult, weak_factory_.GetWeakPtr()));
|
| +
|
| // Note: OnMediaCryptoReady() could be called in this call.
|
| j_media_drm_.Reset(Java_MediaDrmBridge_create(
|
| env, j_scheme_uuid, j_security_level, reinterpret_cast<intptr_t>(this)));
|
| }
|
|
|
| +void MediaDrmBridge::OnStorageResult(bool success) {
|
| + LOG(ERROR) << __func__ << ": " << success;
|
| +}
|
| +
|
| MediaDrmBridge::~MediaDrmBridge() {
|
| DCHECK(task_runner_->BelongsToCurrentThread());
|
| DVLOG(1) << __func__;
|
|
|