| OLD | NEW |
| 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 #ifndef CONTENT_RENDERER_MEDIA_WEBCONTENTDECRYPTIONMODULE_IMPL_H_ | 5 #ifndef CONTENT_RENDERER_MEDIA_WEBCONTENTDECRYPTIONMODULE_IMPL_H_ |
| 6 #define CONTENT_RENDERER_MEDIA_WEBCONTENTDECRYPTIONMODULE_IMPL_H_ | 6 #define CONTENT_RENDERER_MEDIA_WEBCONTENTDECRYPTIONMODULE_IMPL_H_ |
| 7 | 7 |
| 8 #include <string> | |
| 9 | |
| 10 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
| 11 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 12 #include "base/strings/string16.h" | 10 #include "base/strings/string16.h" |
| 13 #include "third_party/WebKit/public/platform/WebContentDecryptionModule.h" | 11 #include "third_party/WebKit/public/platform/WebContentDecryptionModule.h" |
| 14 | 12 |
| 15 namespace blink { | 13 namespace blink { |
| 16 #if defined(ENABLE_PEPPER_CDMS) | 14 #if defined(ENABLE_PEPPER_CDMS) |
| 17 class WebLocalFrame; | 15 class WebLocalFrame; |
| 18 #endif | 16 #endif |
| 19 class WebSecurityOrigin; | 17 class WebSecurityOrigin; |
| 20 } | 18 } |
| 21 | 19 |
| 22 namespace media { | 20 namespace media { |
| 21 class CdmFactory; |
| 23 class Decryptor; | 22 class Decryptor; |
| 24 class MediaKeys; | 23 class MediaKeys; |
| 25 } | 24 } |
| 26 | 25 |
| 27 namespace content { | 26 namespace content { |
| 28 | 27 |
| 29 class CdmSessionAdapter; | 28 class CdmSessionAdapter; |
| 30 #if defined(ENABLE_BROWSER_CDMS) | |
| 31 class RendererCdmManager; | |
| 32 #endif | |
| 33 class WebContentDecryptionModuleSessionImpl; | 29 class WebContentDecryptionModuleSessionImpl; |
| 34 | 30 |
| 35 class WebContentDecryptionModuleImpl | 31 class WebContentDecryptionModuleImpl |
| 36 : public blink::WebContentDecryptionModule { | 32 : public blink::WebContentDecryptionModule { |
| 37 public: | 33 public: |
| 38 static WebContentDecryptionModuleImpl* Create( | 34 static WebContentDecryptionModuleImpl* Create( |
| 39 #if defined(ENABLE_PEPPER_CDMS) | 35 const media::CdmFactory& cdm_factory, |
| 40 blink::WebLocalFrame* frame, | |
| 41 #elif defined(ENABLE_BROWSER_CDMS) | |
| 42 RendererCdmManager* manager, | |
| 43 #endif | |
| 44 const blink::WebSecurityOrigin& security_origin, | 36 const blink::WebSecurityOrigin& security_origin, |
| 45 const base::string16& key_system); | 37 const base::string16& key_system); |
| 46 | 38 |
| 47 virtual ~WebContentDecryptionModuleImpl(); | 39 virtual ~WebContentDecryptionModuleImpl(); |
| 48 | 40 |
| 49 // Returns the Decryptor associated with this CDM. May be NULL if no | 41 // Returns the Decryptor associated with this CDM. May be NULL if no |
| 50 // Decryptor associated with the MediaKeys object. | 42 // Decryptor associated with the MediaKeys object. |
| 51 // TODO(jrummell): Figure out lifetimes, as WMPI may still use the decryptor | 43 // TODO(jrummell): Figure out lifetimes, as WMPI may still use the decryptor |
| 52 // after WebContentDecryptionModule is freed. http://crbug.com/330324 | 44 // after WebContentDecryptionModule is freed. http://crbug.com/330324 |
| 53 media::Decryptor* GetDecryptor(); | 45 media::Decryptor* GetDecryptor(); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 80 | 72 |
| 81 // Allow typecasting from blink type as this is the only implementation. | 73 // Allow typecasting from blink type as this is the only implementation. |
| 82 inline WebContentDecryptionModuleImpl* ToWebContentDecryptionModuleImpl( | 74 inline WebContentDecryptionModuleImpl* ToWebContentDecryptionModuleImpl( |
| 83 blink::WebContentDecryptionModule* cdm) { | 75 blink::WebContentDecryptionModule* cdm) { |
| 84 return static_cast<WebContentDecryptionModuleImpl*>(cdm); | 76 return static_cast<WebContentDecryptionModuleImpl*>(cdm); |
| 85 } | 77 } |
| 86 | 78 |
| 87 } // namespace content | 79 } // namespace content |
| 88 | 80 |
| 89 #endif // CONTENT_RENDERER_MEDIA_WEBCONTENTDECRYPTIONMODULE_IMPL_H_ | 81 #endif // CONTENT_RENDERER_MEDIA_WEBCONTENTDECRYPTIONMODULE_IMPL_H_ |
| OLD | NEW |