Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(687)

Unified Diff: media/base/android/media_drm_bridge.cc

Issue 2765343003: media: Add MediaDrmStorage (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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),
yucliu1 2017/03/23 01:07:16 Just curious, why do want to keep create_storage_c
xhwang 2017/03/23 05:22:06 This is for the "lazy creation" of the storage. Fo
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__;

Powered by Google App Engine
This is Rietveld 408576698