[MM] Utilize |WebMediaPlayerParams| while creating media engine instance
authorsm.venugopal <sm.venugopal@samsung.com>
Wed, 18 Nov 2015 16:22:21 +0000 (21:52 +0530)
committerYoungsoo Choi <kenshin.choi@samsung.com>
Tue, 10 Jul 2018 07:55:23 +0000 (07:55 +0000)
|WebMediaPlayerParams| is passed on as argument to be in sync with
upstream code.

Together with: I6e6e327c9a0ba04986f157582321de5ad01e32aa

Bug: http://web.sec.samsung.net/bugzilla/show_bug.cgi?id=14649

Reviewed by: a1.gomes, sns.park

Change-Id: I6d93e70974f2ffa9f45925cbd3ddde1bcc4a1706
Signed-off-by: sm.venugopal <sm.venugopal@samsung.com>
tizen_src/chromium_impl/content/renderer/media/efl/webmediaplayer_efl.cc
tizen_src/chromium_impl/content/renderer/media/efl/webmediaplayer_efl.h

index 73af7bd..353b16f 100644 (file)
@@ -34,30 +34,32 @@ blink::WebMediaPlayer* CreateWebMediaPlayerEfl(
     content::RendererMediaPlayerManager* manager,
     blink::WebFrame* frame,
     blink::WebMediaPlayerClient* client,
-    base::WeakPtr<media::WebMediaPlayerDelegate> delegate) {
-  return new WebMediaPlayerEfl(manager, frame, client, delegate);
+    base::WeakPtr<media::WebMediaPlayerDelegate> delegate,
+    const media::WebMediaPlayerParams& params) {
+  return new WebMediaPlayerEfl(manager, frame, client, delegate, params);
 }
 
 WebMediaPlayerEfl::WebMediaPlayerEfl(
     RendererMediaPlayerManager* manager,
     blink::WebFrame* frame,
     blink::WebMediaPlayerClient* client,
-    base::WeakPtr<media::WebMediaPlayerDelegate> delegate)
+    base::WeakPtr<media::WebMediaPlayerDelegate> delegate,
+    const media::WebMediaPlayerParams& params)
     : frame_(frame),
       network_state_(blink::WebMediaPlayer::NetworkStateEmpty),
       ready_state_(blink::WebMediaPlayer::ReadyStateHaveNothing),
       main_loop_(base::ThreadTaskRunnerHandle::Get()),
-      media_task_runner_(
-          RenderThreadImpl::current()->GetMediaThreadTaskRunner()),
+      media_task_runner_(params.media_task_runner()),
       manager_(manager),
       client_(client),
-      media_log_(new RenderMediaLog()),
+      media_log_(params.media_log()),
       delegate_(delegate),
+      defer_load_cb_(params.defer_load_cb()),
       // Threaded compositing isn't enabled universally yet.
       compositor_task_runner_(
-          RenderThreadImpl::current()->compositor_task_runner().get()
-          ? RenderThreadImpl::current()->compositor_task_runner()
-          : base::ThreadTaskRunnerHandle::Get()),
+          params.compositor_task_runner()
+              ? params.compositor_task_runner()
+              : base::MessageLoop::current()->task_runner()),
       compositor_(new media::VideoFrameCompositor(
           compositor_task_runner_,
           BIND_TO_RENDER_LOOP(&WebMediaPlayerEfl::OnNaturalSizeChanged),
@@ -118,7 +120,16 @@ WebMediaPlayerEfl::~WebMediaPlayerEfl() {
 
 void WebMediaPlayerEfl::load(LoadType load_type,
                              const blink::WebURL& url,
-                             CORSMode cors_mode) {
+                             CORSMode /* cors_mode */) {
+  if (!defer_load_cb_.is_null()) {
+    defer_load_cb_.Run(base::Bind(
+        &WebMediaPlayerEfl::DoLoad, AsWeakPtr(), load_type, url));
+    return;
+  }
+  DoLoad(load_type, url);
+}
+
+void WebMediaPlayerEfl::DoLoad(LoadType load_type, const blink::WebURL& url) {
   int demuxer_client_id = 0;
   if (load_type == LoadTypeMediaSource) {
     // EFL GST-package on desktop cannot handle AAC decoding.
index f366e4b..e177917 100644 (file)
@@ -16,6 +16,7 @@
 #include "media/base/efl/media_player_efl.h"
 #include "media/blink/skcanvas_video_renderer.h"
 #include "media/blink/video_frame_compositor.h"
+#include "media/blink/webmediaplayer_params.h"
 #include "third_party/WebKit/public/platform/WebMediaPlayer.h"
 #include "third_party/WebKit/public/platform/WebMediaPlayerEncryptedMediaClient.h"
 
@@ -58,7 +59,8 @@ class WebMediaPlayerEfl
       RendererMediaPlayerManager* manager,
       blink::WebFrame* frame,
       blink::WebMediaPlayerClient* client,
-      base::WeakPtr<media::WebMediaPlayerDelegate> delegate);
+      base::WeakPtr<media::WebMediaPlayerDelegate> delegate,
+      const media::WebMediaPlayerParams& params);
   ~WebMediaPlayerEfl() override;
 
   // blink::WebMediaPlayer implementation.
@@ -167,6 +169,10 @@ class WebMediaPlayerEfl
   void OnWaitingForDecryptionKey();
 
  private:
+  // Called after |defer_load_cb_| has decided to allow the load. If
+  // |defer_load_cb_| is null this is called immediately.
+  void DoLoad(LoadType load_type, const blink::WebURL& url);
+
   void OnNaturalSizeChanged(gfx::Size size);
   void OnOpacityChanged(bool opaque);
 
@@ -198,6 +204,8 @@ class WebMediaPlayerEfl
 
   base::WeakPtr<media::WebMediaPlayerDelegate> delegate_;
 
+  media::WebMediaPlayerParams::DeferLoadCB defer_load_cb_;
+
   // The compositor layer for displaying the video content when using
   // composited playback.
   scoped_ptr<cc_blink::WebLayerImpl> video_weblayer_;