| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #if defined(ENABLE_PEPPER_CDMS) | 5 #if defined(ENABLE_PEPPER_CDMS) |
| 6 #include "content/renderer/media/crypto/pepper_cdm_wrapper_impl.h" | 6 #include "content/renderer/media/crypto/pepper_cdm_wrapper_impl.h" |
| 7 | 7 |
| 8 #include "content/renderer/pepper/pepper_plugin_instance_impl.h" | 8 #include "content/renderer/pepper/pepper_plugin_instance_impl.h" |
| 9 #include "content/renderer/pepper/pepper_webplugin_impl.h" | 9 #include "content/renderer/pepper/pepper_webplugin_impl.h" |
| 10 #include "third_party/WebKit/public/platform/WebString.h" | 10 #include "third_party/WebKit/public/platform/WebString.h" |
| (...skipping 21 matching lines...) Expand all Loading... |
| 32 if (!helper_plugin) | 32 if (!helper_plugin) |
| 33 return scoped_ptr<PepperCdmWrapper>(); | 33 return scoped_ptr<PepperCdmWrapper>(); |
| 34 | 34 |
| 35 blink::WebPlugin* plugin = helper_plugin->getPlugin(); | 35 blink::WebPlugin* plugin = helper_plugin->getPlugin(); |
| 36 DCHECK(!plugin->isPlaceholder()); // Prevented by Blink. | 36 DCHECK(!plugin->isPlaceholder()); // Prevented by Blink. |
| 37 | 37 |
| 38 // Only Pepper plugins are supported, so it must ultimately be a ppapi object. | 38 // Only Pepper plugins are supported, so it must ultimately be a ppapi object. |
| 39 PepperWebPluginImpl* ppapi_plugin = static_cast<PepperWebPluginImpl*>(plugin); | 39 PepperWebPluginImpl* ppapi_plugin = static_cast<PepperWebPluginImpl*>(plugin); |
| 40 scoped_refptr<PepperPluginInstanceImpl> plugin_instance = | 40 scoped_refptr<PepperPluginInstanceImpl> plugin_instance = |
| 41 ppapi_plugin->instance(); | 41 ppapi_plugin->instance(); |
| 42 if (!plugin_instance) | 42 if (!plugin_instance.get()) |
| 43 return scoped_ptr<PepperCdmWrapper>(); | 43 return scoped_ptr<PepperCdmWrapper>(); |
| 44 | 44 |
| 45 GURL url(plugin_instance->container()->element().document().url()); | 45 GURL url(plugin_instance->container()->element().document().url()); |
| 46 CHECK_EQ(security_origin.GetOrigin(), url.GetOrigin()) | 46 CHECK_EQ(security_origin.GetOrigin(), url.GetOrigin()) |
| 47 << "Pepper instance has a different origin than the EME call."; | 47 << "Pepper instance has a different origin than the EME call."; |
| 48 | 48 |
| 49 if (!plugin_instance->GetContentDecryptorDelegate()) | 49 if (!plugin_instance->GetContentDecryptorDelegate()) |
| 50 return scoped_ptr<PepperCdmWrapper>(); | 50 return scoped_ptr<PepperCdmWrapper>(); |
| 51 | 51 |
| 52 return scoped_ptr<PepperCdmWrapper>( | 52 return scoped_ptr<PepperCdmWrapper>( |
| 53 new PepperCdmWrapperImpl(helper_plugin.Pass(), plugin_instance)); | 53 new PepperCdmWrapperImpl(helper_plugin.Pass(), plugin_instance)); |
| 54 } | 54 } |
| 55 | 55 |
| 56 PepperCdmWrapperImpl::PepperCdmWrapperImpl( | 56 PepperCdmWrapperImpl::PepperCdmWrapperImpl( |
| 57 ScopedHelperPlugin helper_plugin, | 57 ScopedHelperPlugin helper_plugin, |
| 58 const scoped_refptr<PepperPluginInstanceImpl>& plugin_instance) | 58 const scoped_refptr<PepperPluginInstanceImpl>& plugin_instance) |
| 59 : helper_plugin_(helper_plugin.Pass()), | 59 : helper_plugin_(helper_plugin.Pass()), |
| 60 plugin_instance_(plugin_instance) { | 60 plugin_instance_(plugin_instance) { |
| 61 DCHECK(helper_plugin_); | 61 DCHECK(helper_plugin_); |
| 62 DCHECK(plugin_instance_); | 62 DCHECK(plugin_instance_.get()); |
| 63 // Plugin must be a CDM. | 63 // Plugin must be a CDM. |
| 64 DCHECK(plugin_instance_->GetContentDecryptorDelegate()); | 64 DCHECK(plugin_instance_->GetContentDecryptorDelegate()); |
| 65 } | 65 } |
| 66 | 66 |
| 67 PepperCdmWrapperImpl::~PepperCdmWrapperImpl() { | 67 PepperCdmWrapperImpl::~PepperCdmWrapperImpl() { |
| 68 // Destroy the nested objects in reverse order. | 68 // Destroy the nested objects in reverse order. |
| 69 plugin_instance_ = NULL; | 69 plugin_instance_ = NULL; |
| 70 helper_plugin_.reset(); | 70 helper_plugin_.reset(); |
| 71 } | 71 } |
| 72 | 72 |
| 73 ContentDecryptorDelegate* PepperCdmWrapperImpl::GetCdmDelegate() { | 73 ContentDecryptorDelegate* PepperCdmWrapperImpl::GetCdmDelegate() { |
| 74 return plugin_instance_->GetContentDecryptorDelegate(); | 74 return plugin_instance_->GetContentDecryptorDelegate(); |
| 75 } | 75 } |
| 76 | 76 |
| 77 } // namespace content | 77 } // namespace content |
| 78 | 78 |
| 79 #endif // defined(ENABLE_PEPPER_CDMS) | 79 #endif // defined(ENABLE_PEPPER_CDMS) |
| OLD | NEW |