#include "ui/gfx/icc_profile.h"
#include "url/gurl.h"
+#if defined(TIZEN_MULTIMEDIA) && defined(OS_TIZEN_TV_PRODUCT)
+#include "content/public/renderer/render_frame.h"
+#include "media/base/media_url_demuxer.h"
+#include "third_party/blink/public/web/web_local_frame.h"
+#include "tizen_src/ewk/efl_integration/common/application_type.h"
+#endif
+
namespace content {
SkBitmap* ContentRendererClient::GetSadPluginBitmap() {
RenderFrame* render_frame,
const GURL& url,
scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
+#if defined(TIZEN_MULTIMEDIA) && defined(OS_TIZEN_TV_PRODUCT)
+ if (content::IsHbbTV()) {
+ blink::WebLocalFrame* frame = render_frame->GetWebFrame();
+ return std::make_unique<media::MediaUrlDemuxer>(
+ task_runner, url, frame->GetDocument().SiteForCookies(),
+ frame->GetDocument().TopFrameOrigin(), true, false);
+ }
+#endif
return nullptr;
}
if (chunk_demuxer_)
return true;
#if defined(TIZEN_MULTIMEDIA)
- if (demuxer_override_) {
+ if (demuxer_->GetType() == media::MediaResource::Type::URL) {
// TODO : Need to check buffered status
return true;
}
#include "base/task/single_thread_task_runner.h"
#include "base/trace_event/trace_event.h"
#include "content/browser/web_contents/web_contents_impl.h"
+#include "content/common/content_client_export.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
render_process_id_(process_id),
routing_id_(routing_id),
volume_(kDefaultVolume),
-#if defined(TIZEN_VIDEO_HOLE)
web_contents_(web_contents),
-#endif
renderer_extension_receiver_(this,
std::move(renderer_extension_receiver)) {
DCHECK_EQ(WebContents::FromRenderFrameHost(
if (media_resource_->GetType() == media::MediaResource::STREAM) {
media_player_ = std::make_unique<media::MediaPlayerESPlusPlayer>();
} else {
+ // When the type is media::MediaResource::URL
+ std::string user_agent;
+ if (web_contents_) {
+ user_agent = web_contents_->GetUserAgentOverride().ua_string_override;
+ if (user_agent.empty()) {
+ user_agent =
+ content::GetContentClientExport()->browser()->GetUserAgent();
+ }
+ }
media_player_ = std::make_unique<media::MediaPlayerBridgeCapiAdapter>(
- media_resource->GetMediaUrlParams().media_url, volume_);
+ media_resource->GetMediaUrlParams().media_url, user_agent, volume_);
}
if (!media_player_->CreatePlayer()) {
bool has_error_ = false;
#if defined(TIZEN_VIDEO_HOLE)
- WebContents* web_contents_;
bool is_video_hole_ = false;
gfx::RectF video_rect_;
#endif
+ WebContents* web_contents_ = nullptr;
+
base::WeakPtrFactory<TizenRendererImpl> weak_factory_{this};
};
namespace media {
-MediaPlayerBridgeCapiAdapter::MediaPlayerBridgeCapiAdapter(const GURL& url,
- double volume)
- : url_(url), volume_(volume) {
+MediaPlayerBridgeCapiAdapter::MediaPlayerBridgeCapiAdapter(
+ const GURL& url,
+ std::string& user_agent,
+ double volume)
+ : url_(url), user_agent_(user_agent), volume_(volume) {
LOG(INFO) << "(" << static_cast<void*>(this) << ") " << __func__;
player_id_ = MediaPlayerRegistry::GetInstance()->RegisterMediaPlayer(this);
}
if (media_player_)
return true;
- // TODO: Get user agent string from caller
- std::string user_agent = "";
media_player_ =
- media::MediaPlayerEfl::CreatePlayer(0, url_, volume_, this, user_agent);
+ media::MediaPlayerEfl::CreatePlayer(0, url_, volume_, this, user_agent_);
return true;
}
class MEDIA_EXPORT MediaPlayerBridgeCapiAdapter : public MediaPlayerTizen,
public MediaPlayerManager {
public:
- MediaPlayerBridgeCapiAdapter(const GURL& url, double volume);
+ MediaPlayerBridgeCapiAdapter(const GURL& url,
+ std::string& user_agent,
+ double volume);
~MediaPlayerBridgeCapiAdapter() override;
bool CreatePlayer() override;
MediaPlayerTizenClientExtension* client_extension_ = nullptr;
GURL url_;
+ std::string user_agent_;
double volume_ = 1.0f;
bool is_initialized_ = false;
#include "content/public/renderer/content_renderer_client.h"
#include "content/public/renderer/render_thread.h"
#include "content/renderer/common_renderer_client.h"
-#include "media/base/media_url_demuxer.h"
#include "renderer/content_settings_client_efl.h"
#include "renderer/gin_native_bridge_dispatcher.h"
#include "renderer/plugins/plugin_placeholder_efl.h"
#include "third_party/blink/public/web/web_element_collection.h"
#include "third_party/blink/public/web/web_form_element.h"
#include "third_party/blink/public/web/web_frame.h"
-#include "third_party/blink/public/web/web_local_frame.h"
#include "third_party/blink/public/web/web_settings.h"
#include "third_party/blink/public/web/web_view.h"
#include "url/gurl.h"
}
}
-std::unique_ptr<media::Demuxer> ContentRendererClientEfl::OverrideDemuxerForUrl(
- content::RenderFrame* render_frame,
- const GURL& url,
- scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
- bool use_url_demuxer = false;
-#if defined(OS_TIZEN_TV_PRODUCT) && !defined(EWK_BRINGUP)
- use_url_demuxer = content::IsHbbTV();
-#endif
- if (use_url_demuxer) {
- blink::WebLocalFrame* frame = render_frame->GetWebFrame();
- return std::make_unique<media::MediaUrlDemuxer>(
- task_runner, url, frame->GetDocument().SiteForCookies(),
- frame->GetDocument().TopFrameOrigin(), true, false);
- }
- return nullptr;
-}
-
#if defined(TIZEN_MULTIMEDIA)
bool ContentRendererClientEfl::IsIdleMediaSuspendEnabled() {
LOG(INFO) << __func__ << ", Disable idle media suspend : return false";
bool IsLinkVisited(uint64_t link_hash) override;
- std::unique_ptr<media::Demuxer> OverrideDemuxerForUrl(
- content::RenderFrame* render_frame,
- const GURL& url,
- scoped_refptr<base::SingleThreadTaskRunner> task_runner) override;
-
#if defined(TIZEN_MULTIMEDIA)
bool IsIdleMediaSuspendEnabled() override;
#endif