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

Side by Side Diff: media/base/android/media_drm_bridge.cc

Issue 2255943002: EME: Remove obsolete legacy APIs related to versions of prefixed EME (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix build and add bug reference for obsoletes Created 4 years, 4 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/base/android/media_drm_bridge.h" 5 #include "media/base/android/media_drm_bridge.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <algorithm> 8 #include <algorithm>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 return g_key_system_manager.Get().GetPlatformKeySystemNames(); 278 return g_key_system_manager.Get().GetPlatformKeySystemNames();
279 } 279 }
280 280
281 // static 281 // static
282 scoped_refptr<MediaDrmBridge> MediaDrmBridge::CreateInternal( 282 scoped_refptr<MediaDrmBridge> MediaDrmBridge::CreateInternal(
283 const std::string& key_system, 283 const std::string& key_system,
284 SecurityLevel security_level, 284 SecurityLevel security_level,
285 const CreateFetcherCB& create_fetcher_cb, 285 const CreateFetcherCB& create_fetcher_cb,
286 const SessionMessageCB& session_message_cb, 286 const SessionMessageCB& session_message_cb,
287 const SessionClosedCB& session_closed_cb, 287 const SessionClosedCB& session_closed_cb,
288 const LegacySessionErrorCB& legacy_session_error_cb,
289 const SessionKeysChangeCB& session_keys_change_cb, 288 const SessionKeysChangeCB& session_keys_change_cb,
290 const SessionExpirationUpdateCB& session_expiration_update_cb) { 289 const SessionExpirationUpdateCB& session_expiration_update_cb) {
291 // All paths requires the MediaDrmApis. 290 // All paths requires the MediaDrmApis.
292 DCHECK(AreMediaDrmApisAvailable()); 291 DCHECK(AreMediaDrmApisAvailable());
293 292
294 UUID scheme_uuid = g_key_system_manager.Get().GetUUID(key_system); 293 UUID scheme_uuid = g_key_system_manager.Get().GetUUID(key_system);
295 if (scheme_uuid.empty()) 294 if (scheme_uuid.empty())
296 return nullptr; 295 return nullptr;
297 296
298 scoped_refptr<MediaDrmBridge> media_drm_bridge(new MediaDrmBridge( 297 scoped_refptr<MediaDrmBridge> media_drm_bridge(new MediaDrmBridge(
299 scheme_uuid, security_level, create_fetcher_cb, session_message_cb, 298 scheme_uuid, security_level, create_fetcher_cb, session_message_cb,
300 session_closed_cb, legacy_session_error_cb, session_keys_change_cb, 299 session_closed_cb, session_keys_change_cb, session_expiration_update_cb));
301 session_expiration_update_cb));
302 300
303 if (media_drm_bridge->j_media_drm_.is_null()) 301 if (media_drm_bridge->j_media_drm_.is_null())
304 media_drm_bridge = nullptr; 302 media_drm_bridge = nullptr;
305 303
306 return media_drm_bridge; 304 return media_drm_bridge;
307 } 305 }
308 306
309 // static 307 // static
310 scoped_refptr<MediaDrmBridge> MediaDrmBridge::Create( 308 scoped_refptr<MediaDrmBridge> MediaDrmBridge::Create(
311 const std::string& key_system, 309 const std::string& key_system,
312 SecurityLevel security_level, 310 SecurityLevel security_level,
313 const CreateFetcherCB& create_fetcher_cb, 311 const CreateFetcherCB& create_fetcher_cb,
314 const SessionMessageCB& session_message_cb, 312 const SessionMessageCB& session_message_cb,
315 const SessionClosedCB& session_closed_cb, 313 const SessionClosedCB& session_closed_cb,
316 const LegacySessionErrorCB& legacy_session_error_cb,
317 const SessionKeysChangeCB& session_keys_change_cb, 314 const SessionKeysChangeCB& session_keys_change_cb,
318 const SessionExpirationUpdateCB& session_expiration_update_cb) { 315 const SessionExpirationUpdateCB& session_expiration_update_cb) {
319 DVLOG(1) << __FUNCTION__; 316 DVLOG(1) << __FUNCTION__;
320 317
321 if (!IsAvailable()) 318 if (!IsAvailable())
322 return nullptr; 319 return nullptr;
323 320
324 return CreateInternal(key_system, security_level, create_fetcher_cb, 321 return CreateInternal(key_system, security_level, create_fetcher_cb,
325 session_message_cb, session_closed_cb, 322 session_message_cb, session_closed_cb,
326 legacy_session_error_cb, session_keys_change_cb, 323 session_keys_change_cb, session_expiration_update_cb);
327 session_expiration_update_cb);
328 } 324 }
329 325
330 // static 326 // static
331 scoped_refptr<MediaDrmBridge> MediaDrmBridge::CreateWithoutSessionSupport( 327 scoped_refptr<MediaDrmBridge> MediaDrmBridge::CreateWithoutSessionSupport(
332 const std::string& key_system, 328 const std::string& key_system,
333 SecurityLevel security_level, 329 SecurityLevel security_level,
334 const CreateFetcherCB& create_fetcher_cb) { 330 const CreateFetcherCB& create_fetcher_cb) {
335 DVLOG(1) << __FUNCTION__; 331 DVLOG(1) << __FUNCTION__;
336 332
337 // Sessions won't be used so decoding capability is not required. 333 // Sessions won't be used so decoding capability is not required.
338 if (!AreMediaDrmApisAvailable()) 334 if (!AreMediaDrmApisAvailable())
339 return nullptr; 335 return nullptr;
340 336
341 return MediaDrmBridge::Create(key_system, security_level, create_fetcher_cb, 337 return MediaDrmBridge::Create(
342 SessionMessageCB(), SessionClosedCB(), 338 key_system, security_level, create_fetcher_cb, SessionMessageCB(),
343 LegacySessionErrorCB(), SessionKeysChangeCB(), 339 SessionClosedCB(), SessionKeysChangeCB(), SessionExpirationUpdateCB());
344 SessionExpirationUpdateCB());
345 } 340 }
346 341
347 void MediaDrmBridge::SetServerCertificate( 342 void MediaDrmBridge::SetServerCertificate(
348 const std::vector<uint8_t>& certificate, 343 const std::vector<uint8_t>& certificate,
349 std::unique_ptr<media::SimpleCdmPromise> promise) { 344 std::unique_ptr<media::SimpleCdmPromise> promise) {
350 DCHECK(task_runner_->BelongsToCurrentThread()); 345 DCHECK(task_runner_->BelongsToCurrentThread());
351 DVLOG(2) << __FUNCTION__ << "(" << certificate.size() << " bytes)"; 346 DVLOG(2) << __FUNCTION__ << "(" << certificate.size() << " bytes)";
352 347
353 DCHECK(!certificate.empty()); 348 DCHECK(!certificate.empty());
354 349
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
631 FROM_HERE, 626 FROM_HERE,
632 base::Bind(&MediaDrmBridge::RejectPromise, weak_factory_.GetWeakPtr(), 627 base::Bind(&MediaDrmBridge::RejectPromise, weak_factory_.GetWeakPtr(),
633 j_promise_id, ConvertJavaStringToUTF8(env, j_error_message))); 628 j_promise_id, ConvertJavaStringToUTF8(env, j_error_message)));
634 } 629 }
635 630
636 void MediaDrmBridge::OnSessionMessage( 631 void MediaDrmBridge::OnSessionMessage(
637 JNIEnv* env, 632 JNIEnv* env,
638 const JavaParamRef<jobject>& j_media_drm, 633 const JavaParamRef<jobject>& j_media_drm,
639 const JavaParamRef<jbyteArray>& j_session_id, 634 const JavaParamRef<jbyteArray>& j_session_id,
640 jint j_message_type, 635 jint j_message_type,
641 const JavaParamRef<jbyteArray>& j_message, 636 const JavaParamRef<jbyteArray>& j_message) {
642 const JavaParamRef<jstring>& j_legacy_destination_url) {
643 DVLOG(2) << __FUNCTION__; 637 DVLOG(2) << __FUNCTION__;
644 638
645 std::vector<uint8_t> message; 639 std::vector<uint8_t> message;
646 JavaByteArrayToByteVector(env, j_message, &message); 640 JavaByteArrayToByteVector(env, j_message, &message);
647 GURL legacy_destination_url =
648 GURL(ConvertJavaStringToUTF8(env, j_legacy_destination_url));
649 MediaKeys::MessageType message_type = 641 MediaKeys::MessageType message_type =
650 GetMessageType(static_cast<RequestType>(j_message_type)); 642 GetMessageType(static_cast<RequestType>(j_message_type));
651 643
652 task_runner_->PostTask( 644 task_runner_->PostTask(
653 FROM_HERE, base::Bind(session_message_cb_, AsString(env, j_session_id), 645 FROM_HERE, base::Bind(session_message_cb_, AsString(env, j_session_id),
654 message_type, message, legacy_destination_url)); 646 message_type, message));
655 } 647 }
656 648
657 void MediaDrmBridge::OnSessionClosed( 649 void MediaDrmBridge::OnSessionClosed(
658 JNIEnv* env, 650 JNIEnv* env,
659 const JavaParamRef<jobject>& j_media_drm, 651 const JavaParamRef<jobject>& j_media_drm,
660 const JavaParamRef<jbyteArray>& j_session_id) { 652 const JavaParamRef<jbyteArray>& j_session_id) {
661 DVLOG(2) << __FUNCTION__; 653 DVLOG(2) << __FUNCTION__;
662 std::string session_id = AsString(env, j_session_id); 654 std::string session_id = AsString(env, j_session_id);
663 task_runner_->PostTask(FROM_HERE, base::Bind(session_closed_cb_, session_id)); 655 task_runner_->PostTask(FROM_HERE, base::Bind(session_closed_cb_, session_id));
664 } 656 }
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
725 const JavaParamRef<jobject>& j_media_drm, 717 const JavaParamRef<jobject>& j_media_drm,
726 const JavaParamRef<jbyteArray>& j_session_id, 718 const JavaParamRef<jbyteArray>& j_session_id,
727 jlong expiry_time_ms) { 719 jlong expiry_time_ms) {
728 DVLOG(2) << __FUNCTION__ << ": " << expiry_time_ms << " ms"; 720 DVLOG(2) << __FUNCTION__ << ": " << expiry_time_ms << " ms";
729 task_runner_->PostTask( 721 task_runner_->PostTask(
730 FROM_HERE, 722 FROM_HERE,
731 base::Bind(session_expiration_update_cb_, AsString(env, j_session_id), 723 base::Bind(session_expiration_update_cb_, AsString(env, j_session_id),
732 base::Time::FromDoubleT(expiry_time_ms / 1000.0))); 724 base::Time::FromDoubleT(expiry_time_ms / 1000.0)));
733 } 725 }
734 726
735 void MediaDrmBridge::OnLegacySessionError(
736 JNIEnv* env,
737 const JavaParamRef<jobject>& j_media_drm,
738 const JavaParamRef<jbyteArray>& j_session_id,
739 const JavaParamRef<jstring>& j_error_message) {
740 std::string error_message = ConvertJavaStringToUTF8(env, j_error_message);
741
742 DVLOG(2) << __FUNCTION__ << ": " << error_message;
743
744 task_runner_->PostTask(
745 FROM_HERE,
746 base::Bind(legacy_session_error_cb_, AsString(env, j_session_id),
747 MediaKeys::UNKNOWN_ERROR, 0, error_message));
748 }
749
750 void MediaDrmBridge::OnResetDeviceCredentialsCompleted( 727 void MediaDrmBridge::OnResetDeviceCredentialsCompleted(
751 JNIEnv* env, 728 JNIEnv* env,
752 const JavaParamRef<jobject>&, 729 const JavaParamRef<jobject>&,
753 bool success) { 730 bool success) {
754 DVLOG(2) << __FUNCTION__ << ": success:" << success; 731 DVLOG(2) << __FUNCTION__ << ": success:" << success;
755 DCHECK(!reset_credentials_cb_.is_null()); 732 DCHECK(!reset_credentials_cb_.is_null());
756 task_runner_->PostTask( 733 task_runner_->PostTask(
757 FROM_HERE, 734 FROM_HERE,
758 base::Bind(base::ResetAndReturn(&reset_credentials_cb_), success)); 735 base::Bind(base::ResetAndReturn(&reset_credentials_cb_), success));
759 } 736 }
760 737
761 //------------------------------------------------------------------------------ 738 //------------------------------------------------------------------------------
762 // The following are private methods. 739 // The following are private methods.
763 740
764 MediaDrmBridge::MediaDrmBridge( 741 MediaDrmBridge::MediaDrmBridge(
765 const std::vector<uint8_t>& scheme_uuid, 742 const std::vector<uint8_t>& scheme_uuid,
766 SecurityLevel security_level, 743 SecurityLevel security_level,
767 const CreateFetcherCB& create_fetcher_cb, 744 const CreateFetcherCB& create_fetcher_cb,
768 const SessionMessageCB& session_message_cb, 745 const SessionMessageCB& session_message_cb,
769 const SessionClosedCB& session_closed_cb, 746 const SessionClosedCB& session_closed_cb,
770 const LegacySessionErrorCB& legacy_session_error_cb,
771 const SessionKeysChangeCB& session_keys_change_cb, 747 const SessionKeysChangeCB& session_keys_change_cb,
772 const SessionExpirationUpdateCB& session_expiration_update_cb) 748 const SessionExpirationUpdateCB& session_expiration_update_cb)
773 : scheme_uuid_(scheme_uuid), 749 : scheme_uuid_(scheme_uuid),
774 create_fetcher_cb_(create_fetcher_cb), 750 create_fetcher_cb_(create_fetcher_cb),
775 session_message_cb_(session_message_cb), 751 session_message_cb_(session_message_cb),
776 session_closed_cb_(session_closed_cb), 752 session_closed_cb_(session_closed_cb),
777 legacy_session_error_cb_(legacy_session_error_cb),
778 session_keys_change_cb_(session_keys_change_cb), 753 session_keys_change_cb_(session_keys_change_cb),
779 session_expiration_update_cb_(session_expiration_update_cb), 754 session_expiration_update_cb_(session_expiration_update_cb),
780 task_runner_(base::ThreadTaskRunnerHandle::Get()), 755 task_runner_(base::ThreadTaskRunnerHandle::Get()),
781 media_drm_bridge_cdm_context_(this), 756 media_drm_bridge_cdm_context_(this),
782 weak_factory_(this) { 757 weak_factory_(this) {
783 DVLOG(1) << __FUNCTION__; 758 DVLOG(1) << __FUNCTION__;
784 759
785 DCHECK(!create_fetcher_cb_.is_null()); 760 DCHECK(!create_fetcher_cb_.is_null());
786 761
787 JNIEnv* env = AttachCurrentThread(); 762 JNIEnv* env = AttachCurrentThread();
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
897 } 872 }
898 873
899 void MediaDrmBridge::OnHasAdditionalUsableKey() { 874 void MediaDrmBridge::OnHasAdditionalUsableKey() {
900 DCHECK(task_runner_->BelongsToCurrentThread()); 875 DCHECK(task_runner_->BelongsToCurrentThread());
901 DVLOG(1) << __FUNCTION__; 876 DVLOG(1) << __FUNCTION__;
902 877
903 player_tracker_.NotifyNewKey(); 878 player_tracker_.NotifyNewKey();
904 } 879 }
905 880
906 } // namespace media 881 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698