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

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

Issue 665563002: Add MediaKeys::GetCdmId(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git/+/master
Patch Set: Make GetCdmId() pure virtual. 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 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 "content/renderer/media/crypto/render_cdm_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"
17 #endif // defined(ENABLE_PEPPER_CDMS) 16 #endif // defined(ENABLE_PEPPER_CDMS)
18 17
19 namespace content { 18 namespace content {
20 19
21 #if defined(ENABLE_PEPPER_CDMS) 20 #if defined(ENABLE_PEPPER_CDMS)
22 RenderCdmFactory::RenderCdmFactory( 21 RenderCdmFactory::RenderCdmFactory(
23 const CreatePepperCdmCB& create_pepper_cdm_cb) 22 const CreatePepperCdmCB& create_pepper_cdm_cb)
24 : create_pepper_cdm_cb_(create_pepper_cdm_cb) { 23 : create_pepper_cdm_cb_(create_pepper_cdm_cb) {
25 } 24 }
26 #elif defined(ENABLE_BROWSER_CDMS) 25 #elif defined(ENABLE_BROWSER_CDMS)
27 RenderCdmFactory::RenderCdmFactory(RendererCdmManager* manager) 26 RenderCdmFactory::RenderCdmFactory(RendererCdmManager* manager)
28 : manager_(manager) { 27 : manager_(manager) {
29 } 28 }
30 #else 29 #else
31 RenderCdmFactory::RenderCdmFactory() { 30 RenderCdmFactory::RenderCdmFactory() {
32 } 31 }
33 #endif // defined(ENABLE_PEPPER_CDMS) 32 #endif // defined(ENABLE_PEPPER_CDMS)
34 33
35 RenderCdmFactory::~RenderCdmFactory() { 34 RenderCdmFactory::~RenderCdmFactory() {
36 } 35 }
37 36
38 scoped_ptr<media::MediaKeys> RenderCdmFactory::Create( 37 scoped_ptr<media::MediaKeys> RenderCdmFactory::Create(
39 const std::string& key_system, 38 const std::string& key_system,
40 const GURL& security_origin, 39 const GURL& security_origin,
41 #if defined(ENABLE_BROWSER_CDMS)
42 int* cdm_id,
43 #endif
44 const media::SessionMessageCB& session_message_cb, 40 const media::SessionMessageCB& session_message_cb,
45 const media::SessionReadyCB& session_ready_cb, 41 const media::SessionReadyCB& session_ready_cb,
46 const media::SessionClosedCB& session_closed_cb, 42 const media::SessionClosedCB& session_closed_cb,
47 const media::SessionErrorCB& session_error_cb, 43 const media::SessionErrorCB& session_error_cb,
48 const media::SessionKeysChangeCB& session_keys_change_cb, 44 const media::SessionKeysChangeCB& session_keys_change_cb,
49 const media::SessionExpirationUpdateCB& session_expiration_update_cb) { 45 const media::SessionExpirationUpdateCB& session_expiration_update_cb) {
50 // TODO(jrummell): Pass |security_origin| to all constructors. 46 // TODO(jrummell): Pass |security_origin| to all constructors.
51 // TODO(jrummell): Enable the following line once blink code updated to 47 // TODO(jrummell): Enable the following line once blink code updated to
52 // check the security origin before calling. 48 // check the security origin before calling.
53 // DCHECK(security_origin.is_valid()); 49 // DCHECK(security_origin.is_valid());
54 50
55 #if defined(ENABLE_BROWSER_CDMS)
56 *cdm_id = RendererCdmManager::kInvalidCdmId;
57 #endif
58
59 if (CanUseAesDecryptor(key_system)) { 51 if (CanUseAesDecryptor(key_system)) {
60 return scoped_ptr<media::MediaKeys>(new media::AesDecryptor( 52 return scoped_ptr<media::MediaKeys>(new media::AesDecryptor(
61 session_message_cb, session_closed_cb, session_keys_change_cb)); 53 session_message_cb, session_closed_cb, session_keys_change_cb));
62 } 54 }
63 55
64 #if defined(ENABLE_PEPPER_CDMS) 56 #if defined(ENABLE_PEPPER_CDMS)
65 return scoped_ptr<media::MediaKeys>( 57 return scoped_ptr<media::MediaKeys>(
66 PpapiDecryptor::Create(key_system, 58 PpapiDecryptor::Create(key_system,
67 security_origin, 59 security_origin,
68 create_pepper_cdm_cb_, 60 create_pepper_cdm_cb_,
69 session_message_cb, 61 session_message_cb,
70 session_ready_cb, 62 session_ready_cb,
71 session_closed_cb, 63 session_closed_cb,
72 session_error_cb, 64 session_error_cb,
73 session_keys_change_cb, 65 session_keys_change_cb,
74 session_expiration_update_cb)); 66 session_expiration_update_cb));
75 #elif defined(ENABLE_BROWSER_CDMS) 67 #elif defined(ENABLE_BROWSER_CDMS)
76 scoped_ptr<ProxyMediaKeys> proxy_media_keys = 68 return scoped_ptr<media::MediaKeys>(
77 ProxyMediaKeys::Create(key_system, 69 ProxyMediaKeys::Create(key_system,
78 security_origin, 70 security_origin,
79 manager_, 71 manager_,
80 session_message_cb, 72 session_message_cb,
81 session_ready_cb, 73 session_ready_cb,
82 session_closed_cb, 74 session_closed_cb,
83 session_error_cb, 75 session_error_cb,
84 session_keys_change_cb, 76 session_keys_change_cb,
85 session_expiration_update_cb); 77 session_expiration_update_cb));
86 if (proxy_media_keys)
87 *cdm_id = proxy_media_keys->GetCdmId();
88 return proxy_media_keys.Pass();
89 #else 78 #else
90 return nullptr; 79 return nullptr;
91 #endif // defined(ENABLE_PEPPER_CDMS) 80 #endif // defined(ENABLE_PEPPER_CDMS)
92 } 81 }
93 82
94 } // namespace content 83 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/crypto/render_cdm_factory.h ('k') | content/renderer/media/crypto/renderer_cdm_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698