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

Side by Side Diff: content/renderer/media/crypto/render_cdm_factory.cc

Issue 660673002: Introduce CdmFactory interface. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@move_result_promise
Patch Set: Created 6 years, 2 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
ddorwin 2014/10/16 17:32:52 nit: I don't think we change this. Also, the .h wa
xhwang 2014/10/16 20:08:39 Reverted.
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 "content/renderer/media/crypto/content_decryption_module_factory.h" 5 #include "content/renderer/media/crypto/render_cdm_factory.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "content/renderer/media/crypto/key_systems.h" 8 #include "content/renderer/media/crypto/key_systems.h"
9 #include "media/cdm/aes_decryptor.h" 9 #include "media/cdm/aes_decryptor.h"
10 #include "url/gurl.h" 10 #include "url/gurl.h"
11 11
12 #if defined(ENABLE_PEPPER_CDMS) 12 #if defined(ENABLE_PEPPER_CDMS)
13 #include "content/renderer/media/crypto/ppapi_decryptor.h" 13 #include "content/renderer/media/crypto/ppapi_decryptor.h"
14 #elif defined(ENABLE_BROWSER_CDMS) 14 #elif defined(ENABLE_BROWSER_CDMS)
15 #include "content/renderer/media/crypto/proxy_media_keys.h" 15 #include "content/renderer/media/crypto/proxy_media_keys.h"
16 #include "content/renderer/media/crypto/renderer_cdm_manager.h" 16 #include "content/renderer/media/crypto/renderer_cdm_manager.h"
17 #endif // defined(ENABLE_PEPPER_CDMS) 17 #endif // defined(ENABLE_PEPPER_CDMS)
18 18
19 namespace content { 19 namespace content {
20 20
21 scoped_ptr<media::MediaKeys> ContentDecryptionModuleFactory::Create( 21 #if defined(ENABLE_PEPPER_CDMS)
22 RenderCdmFactory::RenderCdmFactory(
23 const CreatePepperCdmCB& create_pepper_cdm_cb)
24 : create_pepper_cdm_cb_(create_pepper_cdm_cb) {
25 }
26 #elif defined(ENABLE_BROWSER_CDMS)
27 RenderCdmFactory::RenderCdmFactory(RendererCdmManager* manager)
28 : manager_(manager) {
29 }
30 #else
31 RenderCdmFactory::RenderCdmFactory() {
32 }
33 #endif // defined(ENABLE_PEPPER_CDMS)
34
35 RenderCdmFactory::~RenderCdmFactory() {
36 }
37
38 scoped_ptr<media::MediaKeys> RenderCdmFactory::Create(
22 const std::string& key_system, 39 const std::string& key_system,
23 const GURL& security_origin, 40 const GURL& security_origin,
24 #if defined(ENABLE_PEPPER_CDMS) 41 #if defined(ENABLE_BROWSER_CDMS)
25 const CreatePepperCdmCB& create_pepper_cdm_cb,
26 #elif defined(ENABLE_BROWSER_CDMS)
27 RendererCdmManager* manager,
28 int* cdm_id, 42 int* cdm_id,
29 #endif // defined(ENABLE_PEPPER_CDMS) 43 #endif
30 const media::SessionMessageCB& session_message_cb, 44 const media::SessionMessageCB& session_message_cb,
31 const media::SessionReadyCB& session_ready_cb, 45 const media::SessionReadyCB& session_ready_cb,
32 const media::SessionClosedCB& session_closed_cb, 46 const media::SessionClosedCB& session_closed_cb,
33 const media::SessionErrorCB& session_error_cb, 47 const media::SessionErrorCB& session_error_cb,
34 const media::SessionKeysChangeCB& session_keys_change_cb, 48 const media::SessionKeysChangeCB& session_keys_change_cb,
35 const media::SessionExpirationUpdateCB& session_expiration_update_cb) { 49 const media::SessionExpirationUpdateCB& session_expiration_update_cb) {
36 // TODO(jrummell): Pass |security_origin| to all constructors.
37 // TODO(jrummell): Enable the following line once blink code updated to
38 // check the security origin before calling.
39 // DCHECK(security_origin.is_valid());
40
41 #if defined(ENABLE_BROWSER_CDMS)
42 *cdm_id = RendererCdmManager::kInvalidCdmId;
43 #endif
44
45 if (CanUseAesDecryptor(key_system)) { 50 if (CanUseAesDecryptor(key_system)) {
ddorwin 2014/10/16 17:32:52 The TODOs are still valid, though you could addres
xhwang 2014/10/16 20:08:39 These are accidentally removed. Thanks for catchin
46 return scoped_ptr<media::MediaKeys>(new media::AesDecryptor( 51 return scoped_ptr<media::MediaKeys>(new media::AesDecryptor(
47 session_message_cb, session_closed_cb, session_keys_change_cb)); 52 session_message_cb, session_closed_cb, session_keys_change_cb));
48 } 53 }
54
49 #if defined(ENABLE_PEPPER_CDMS) 55 #if defined(ENABLE_PEPPER_CDMS)
50 return scoped_ptr<media::MediaKeys>( 56 return scoped_ptr<media::MediaKeys>(
51 PpapiDecryptor::Create(key_system, 57 PpapiDecryptor::Create(key_system,
52 security_origin, 58 security_origin,
53 create_pepper_cdm_cb, 59 create_pepper_cdm_cb_,
54 session_message_cb, 60 session_message_cb,
55 session_ready_cb, 61 session_ready_cb,
56 session_closed_cb, 62 session_closed_cb,
57 session_error_cb, 63 session_error_cb,
58 session_keys_change_cb, 64 session_keys_change_cb,
59 session_expiration_update_cb)); 65 session_expiration_update_cb));
60 #elif defined(ENABLE_BROWSER_CDMS) 66 #elif defined(ENABLE_BROWSER_CDMS)
61 scoped_ptr<ProxyMediaKeys> proxy_media_keys = 67 scoped_ptr<ProxyMediaKeys> proxy_media_keys =
62 ProxyMediaKeys::Create(key_system, 68 ProxyMediaKeys::Create(key_system,
63 security_origin, 69 security_origin,
64 manager, 70 manager_,
65 session_message_cb, 71 session_message_cb,
66 session_ready_cb, 72 session_ready_cb,
67 session_closed_cb, 73 session_closed_cb,
68 session_error_cb, 74 session_error_cb,
69 session_keys_change_cb, 75 session_keys_change_cb,
70 session_expiration_update_cb); 76 session_expiration_update_cb);
71 if (proxy_media_keys) 77 if (proxy_media_keys)
72 *cdm_id = proxy_media_keys->GetCdmId(); 78 *cdm_id = proxy_media_keys->GetCdmId();
73 return proxy_media_keys.PassAs<media::MediaKeys>(); 79 return proxy_media_keys.PassAs<media::MediaKeys>();
74 #else 80 #else
75 return scoped_ptr<media::MediaKeys>(); 81 return scoped_ptr<media::MediaKeys>();
76 #endif // defined(ENABLE_PEPPER_CDMS) 82 #endif // defined(ENABLE_PEPPER_CDMS)
77 } 83 }
78 84
79 } // namespace content 85 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698