Index: mojo/services/html_viewer/html_document.cc |
diff --git a/mojo/services/html_viewer/html_document.cc b/mojo/services/html_viewer/html_document.cc |
index a99ec7d4a3c2c736758d1d4e6a48ffeb124a1c8d..3a7b151c5dccfd8b2e442bba26c41799e6cf4a5f 100644 |
--- a/mojo/services/html_viewer/html_document.cc |
+++ b/mojo/services/html_viewer/html_document.cc |
@@ -6,11 +6,14 @@ |
#include "base/bind.h" |
#include "base/location.h" |
+#include "base/memory/scoped_ptr.h" |
#include "base/message_loop/message_loop_proxy.h" |
#include "base/single_thread_task_runner.h" |
#include "base/stl_util.h" |
#include "base/strings/string_util.h" |
#include "base/thread_task_runner_handle.h" |
+#include "media/blink/webencryptedmediaclient_impl.h" |
+#include "media/cdm/default_cdm_factory.h" |
#include "mojo/public/cpp/application/connect.h" |
#include "mojo/public/cpp/system/data_pipe.h" |
#include "mojo/public/interfaces/application/shell.mojom.h" |
@@ -100,11 +103,12 @@ HTMLDocument::HTMLDocument( |
WebMediaPlayerFactory* web_media_player_factory) |
: response_(response.Pass()), |
shell_(shell), |
- web_view_(NULL), |
- root_(NULL), |
+ web_view_(nullptr), |
+ root_(nullptr), |
view_manager_client_factory_(shell_, this), |
compositor_thread_(compositor_thread), |
- web_media_player_factory_(web_media_player_factory) { |
+ web_media_player_factory_(web_media_player_factory), |
+ web_encrypted_media_client_(nullptr) { |
exported_services_.AddService(this); |
exported_services_.AddService(&view_manager_client_factory_); |
WeakBindToPipe(&exported_services_, provider.PassMessagePipe()); |
@@ -196,8 +200,7 @@ blink::WebMediaPlayer* HTMLDocument::createMediaPlayer( |
blink::WebLocalFrame* frame, |
const blink::WebURL& url, |
blink::WebMediaPlayerClient* client) { |
- return web_media_player_factory_->CreateMediaPlayer(frame, url, client, |
- shell_); |
+ return createMediaPlayer(frame, url, client, nullptr); |
} |
blink::WebMediaPlayer* HTMLDocument::createMediaPlayer( |
@@ -205,7 +208,8 @@ blink::WebMediaPlayer* HTMLDocument::createMediaPlayer( |
const blink::WebURL& url, |
blink::WebMediaPlayerClient* client, |
blink::WebContentDecryptionModule* initial_cdm) { |
- return createMediaPlayer(frame, url, client); |
+ return web_media_player_factory_->CreateMediaPlayer(frame, url, client, |
+ initial_cdm, shell_); |
} |
blink::WebFrame* HTMLDocument::createChildFrame( |
@@ -261,6 +265,14 @@ void HTMLDocument::didNavigateWithinPage( |
navigator_host_->DidNavigateLocally(history_item.urlString().utf8()); |
} |
+blink::WebEncryptedMediaClient* HTMLDocument::encryptedMediaClient() { |
+ if (!web_encrypted_media_client_) { |
+ web_encrypted_media_client_ = new media::WebEncryptedMediaClientImpl( |
+ make_scoped_ptr(new media::DefaultCdmFactory())); |
+ } |
+ return web_encrypted_media_client_; |
+} |
+ |
void HTMLDocument::OnViewBoundsChanged(View* view, |
const Rect& old_bounds, |
const Rect& new_bounds) { |