Index: components/html_viewer/html_document.cc |
diff --git a/components/html_viewer/html_document.cc b/components/html_viewer/html_document.cc |
index bb7163763313ae216db3b56b7cddf7e395c96cf5..d2345339353725a1d89ad007c88bcd5ad73931b2 100644 |
--- a/components/html_viewer/html_document.cc |
+++ b/components/html_viewer/html_document.cc |
@@ -24,6 +24,8 @@ |
#include "media/blink/webencryptedmediaclient_impl.h" |
#include "media/cdm/default_cdm_factory.h" |
#include "media/filters/default_media_permission.h" |
+#include "media/mojo/interfaces/content_decryption_module_factory.mojom.h" |
+#include "media/mojo/services/mojo_cdm_factory.h" |
#include "mojo/application/public/cpp/application_impl.h" |
#include "mojo/application/public/cpp/connect.h" |
#include "mojo/application/public/interfaces/shell.mojom.h" |
@@ -392,8 +394,21 @@ media::MediaPermission* HTMLDocument::GetMediaPermission() { |
} |
media::CdmFactory* HTMLDocument::GetCdmFactory() { |
- if (!cdm_factory_) |
- cdm_factory_.reset(new media::DefaultCdmFactory()); |
+ if (!cdm_factory_) { |
+ if (setup_->enable_mojo_media_renderer()) { |
+ ServiceProviderPtr media_service_provider; |
+ mojo::URLRequestPtr request(mojo::URLRequest::New()); |
+ request->url = mojo::String::From("mojo:media"); |
+ shell_->ConnectToApplication(request.Pass(), |
+ GetProxy(&media_service_provider), nullptr); |
+ mojo::ContentDecryptionModuleFactoryPtr cdm_factory_ptr; |
+ mojo::ConnectToService(media_service_provider.get(), &cdm_factory_ptr); |
+ cdm_factory_.reset(new media::MojoCdmFactory(cdm_factory_ptr.Pass())); |
+ } else { |
+ cdm_factory_.reset(new media::DefaultCdmFactory()); |
+ } |
+ } |
+ |
return cdm_factory_.get(); |
} |