Fix block issue of tct-video-html5-tests 91/318991/2
authorzhishun.zhou <zhishun.zhou@samsung.com>
Fri, 11 Oct 2024 12:58:34 +0000 (20:58 +0800)
committerBot Blink <blinkbot@samsung.com>
Sat, 12 Oct 2024 08:26:42 +0000 (08:26 +0000)
Many test cases have following video source URL:
   <script type="text/javascript">
        var media = document.getElementById("m");
        media.src = getVideoURI("../media/movie_5") + "?" + new Date() + Math.random();
        media.play();
    </script>
such as: uri:file:///opt/usr/apps/html5video/res/wgt/opt/tct-video-html5-tests/video/media/movie_5.mp4?Tue%20Oct%2008%202024%2018:27:00%20GMT+0900%20(Korean%20Standard%20Time)0.2986363072123914
once it set to CAPI player, PLAYER_ERROR_INVALID_URI occurs.

Refer to legacy source code, we need make it clean URL, see line 168 of:
https://review.tizen.org/gerrit/#/c/platform/framework/web/chromium-efl/+/266844/13/tizen_src/chromium_impl/content/renderer/media/efl/webmediaplayer_efl.cc

Change-Id: I795de3e46136444849de120460052372efc25355
Signed-off-by: zhishun.zhou <zhishun.zhou@samsung.com>
tizen_src/chromium_impl/media/filters/media_player_bridge_capi_factory.cc

index 45b30442bd1745621dee4d8365548ecbd3975383..ee6d2feb385ba5dfda7093a58168d862988c8209 100644 (file)
@@ -4,6 +4,7 @@
 
 #include "tizen_src/chromium_impl/media/filters/media_player_bridge_capi_factory.h"
 
+#include "base/logging.h"
 #include "media/base/media_resource.h"
 #include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
 #if BUILDFLAG(IS_TIZEN_TV)
@@ -19,8 +20,13 @@ std::unique_ptr<MediaPlayerTizen> MediaPlayerBridgeCapiFactory::Create(
     const std::string& user_agent,
     double volume) {
 #if BUILDFLAG(IS_TIZEN_TV)
-  return std::make_unique<MediaPlayerBridgeCapiTV>(
-      media_resource->GetMediaUrlParams().media_url, user_agent, volume);
+  GURL clean_url =
+      media::GetCleanURL(media_resource->GetMediaUrlParams().media_url.spec());
+  LOG(INFO) << __func__ << ", original url: "
+            << media_resource->GetMediaUrlParams().media_url.spec()
+            << ", clean url: " << clean_url.spec();
+  return std::make_unique<MediaPlayerBridgeCapiTV>(clean_url, user_agent,
+                                                   volume);
 #else
   return std::make_unique<MediaPlayerBridgeCapi>(
       media_resource->GetMediaUrlParams().media_url, user_agent, volume);