diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-16 14:53:57 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-16 14:53:57 +0000 |
commit | ad2f8df116c16350fb337c4b8b03ee8c66efa872 (patch) | |
tree | 49967960766a69ff54d6736ce346afdc588b4827 | |
parent | f61f003affca1216b223154fbb6c4494cb66a45e (diff) | |
download | chromium_src-ad2f8df116c16350fb337c4b8b03ee8c66efa872.zip chromium_src-ad2f8df116c16350fb337c4b8b03ee8c66efa872.tar.gz chromium_src-ad2f8df116c16350fb337c4b8b03ee8c66efa872.tar.bz2 |
Revert 277425 "Support casting for embedded YT videos"
Broke buildbots because it wasn't tried.
> Support casting for embedded YT videos
>
> This is part 1 of the code to start supporting embedded YT for cast. The main
> issue is that YT embedded videos need to be identified via the frame that
> contains it. This CL sets the frame URL of each video in the MediaPlayerAndroid
> object.
>
> NOTRY=true
>
> Clank downstream piece to come later.
> Min / Aaron: will send you the doc I have that explains this in more detail.
>
> BUG=358573
>
> Review URL: https://codereview.chromium.org/302453012
TBR=maybelle@chromium.org
Review URL: https://codereview.chromium.org/332213002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277430 0039d316-1c4b-4281-b951-d872f2087c98
13 files changed, 65 insertions, 82 deletions
diff --git a/content/browser/media/android/browser_media_player_manager.cc b/content/browser/media/android/browser_media_player_manager.cc index e2d6676..ed02a6e 100644 --- a/content/browser/media/android/browser_media_player_manager.cc +++ b/content/browser/media/android/browser_media_player_manager.cc @@ -59,25 +59,28 @@ ContentViewCoreImpl* BrowserMediaPlayerManager::GetContentViewCore() const { } MediaPlayerAndroid* BrowserMediaPlayerManager::CreateMediaPlayer( - const MediaPlayerHostMsg_Initialize_Params& media_player_params, + MediaPlayerHostMsg_Initialize_Type type, + int player_id, + const GURL& url, + const GURL& first_party_for_cookies, + int demuxer_client_id, bool hide_url_log, MediaPlayerManager* manager, BrowserDemuxerAndroid* demuxer) { - switch (media_player_params.type) { + switch (type) { case MEDIA_PLAYER_TYPE_URL: { const std::string user_agent = GetContentClient()->GetUserAgent(); MediaPlayerBridge* media_player_bridge = new MediaPlayerBridge( - media_player_params.player_id, - media_player_params.url, - media_player_params.first_party_for_cookies, + player_id, + url, + first_party_for_cookies, user_agent, hide_url_log, manager, base::Bind(&BrowserMediaPlayerManager::OnMediaResourcesRequested, weak_ptr_factory_.GetWeakPtr()), base::Bind(&BrowserMediaPlayerManager::OnMediaResourcesReleased, - weak_ptr_factory_.GetWeakPtr()), - media_player_params.frame_url); + weak_ptr_factory_.GetWeakPtr())); BrowserMediaPlayerManager* browser_media_player_manager = static_cast<BrowserMediaPlayerManager*>(manager); ContentViewCoreImpl* content_view_core_impl = @@ -89,9 +92,8 @@ MediaPlayerAndroid* BrowserMediaPlayerManager::CreateMediaPlayer( // TODO(qinmin): extract the metadata once the user decided to load // the page. browser_media_player_manager->OnMediaMetadataChanged( - media_player_params.player_id, base::TimeDelta(), 0, 0, false); - } else if (!content_view_core_impl->ShouldBlockMediaRequest( - media_player_params.url)) { + player_id, base::TimeDelta(), 0, 0, false); + } else if (!content_view_core_impl->ShouldBlockMediaRequest(url)) { media_player_bridge->Initialize(); } return media_player_bridge; @@ -99,14 +101,13 @@ MediaPlayerAndroid* BrowserMediaPlayerManager::CreateMediaPlayer( case MEDIA_PLAYER_TYPE_MEDIA_SOURCE: { return new MediaSourcePlayer( - media_player_params.player_id, + player_id, manager, base::Bind(&BrowserMediaPlayerManager::OnMediaResourcesRequested, weak_ptr_factory_.GetWeakPtr()), base::Bind(&BrowserMediaPlayerManager::OnMediaResourcesReleased, weak_ptr_factory_.GetWeakPtr()), - demuxer->CreateDemuxer(media_player_params.demuxer_client_id), - media_player_params.frame_url); + demuxer->CreateDemuxer(demuxer_client_id)); } } @@ -419,22 +420,23 @@ void BrowserMediaPlayerManager::OnExitFullscreen(int player_id) { } void BrowserMediaPlayerManager::OnInitialize( - const MediaPlayerHostMsg_Initialize_Params& media_player_params) { - DCHECK(media_player_params.type != MEDIA_PLAYER_TYPE_MEDIA_SOURCE || - media_player_params.demuxer_client_id > 0) + MediaPlayerHostMsg_Initialize_Type type, + int player_id, + const GURL& url, + const GURL& first_party_for_cookies, + int demuxer_client_id) { + DCHECK(type != MEDIA_PLAYER_TYPE_MEDIA_SOURCE || demuxer_client_id > 0) << "Media source players must have positive demuxer client IDs: " - << media_player_params.demuxer_client_id; + << demuxer_client_id; - RemovePlayer(media_player_params.player_id); + RemovePlayer(player_id); RenderProcessHostImpl* host = static_cast<RenderProcessHostImpl*>( web_contents()->GetRenderProcessHost()); MediaPlayerAndroid* player = CreateMediaPlayer( - media_player_params, - + type, player_id, url, first_party_for_cookies, demuxer_client_id, host->GetBrowserContext()->IsOffTheRecord(), this, host->browser_demuxer_android()); - if (!player) return; diff --git a/content/browser/media/android/browser_media_player_manager.h b/content/browser/media/android/browser_media_player_manager.h index bef4009..04641e74 100644 --- a/content/browser/media/android/browser_media_player_manager.h +++ b/content/browser/media/android/browser_media_player_manager.h @@ -23,8 +23,6 @@ namespace media { class DemuxerAndroid; } -struct MediaPlayerHostMsg_Initialize_Params; - namespace content { class BrowserDemuxerAndroid; class ContentViewCoreImpl; @@ -98,7 +96,11 @@ class CONTENT_EXPORT BrowserMediaPlayerManager virtual void OnEnterFullscreen(int player_id); virtual void OnExitFullscreen(int player_id); virtual void OnInitialize( - const MediaPlayerHostMsg_Initialize_Params& media_player_params); + MediaPlayerHostMsg_Initialize_Type type, + int player_id, + const GURL& url, + const GURL& first_party_for_cookies, + int demuxer_client_id); virtual void OnStart(int player_id); virtual void OnSeek(int player_id, const base::TimeDelta& time); virtual void OnPause(int player_id, bool is_media_related_action); @@ -139,7 +141,11 @@ class CONTENT_EXPORT BrowserMediaPlayerManager private: // Constructs a MediaPlayerAndroid object. media::MediaPlayerAndroid* CreateMediaPlayer( - const MediaPlayerHostMsg_Initialize_Params& media_player_params, + MediaPlayerHostMsg_Initialize_Type type, + int player_id, + const GURL& url, + const GURL& first_party_for_cookies, + int demuxer_client_id, bool hide_url_log, media::MediaPlayerManager* manager, BrowserDemuxerAndroid* demuxer); diff --git a/content/common/media/media_player_messages_android.h b/content/common/media/media_player_messages_android.h index 4548f0b..a5a8b7a 100644 --- a/content/common/media/media_player_messages_android.h +++ b/content/common/media/media_player_messages_android.h @@ -62,17 +62,6 @@ IPC_STRUCT_TRAITS_END() IPC_ENUM_TRAITS(MediaPlayerHostMsg_Initialize_Type) -// Parameters to describe a media player -IPC_STRUCT_BEGIN(MediaPlayerHostMsg_Initialize_Params) - IPC_STRUCT_MEMBER(MediaPlayerHostMsg_Initialize_Type, type) - IPC_STRUCT_MEMBER(base::SharedMemoryHandle, metafile_data_handle) - IPC_STRUCT_MEMBER(int, player_id) - IPC_STRUCT_MEMBER(int, demuxer_client_id) - IPC_STRUCT_MEMBER(GURL, url) - IPC_STRUCT_MEMBER(GURL, first_party_for_cookies) - IPC_STRUCT_MEMBER(GURL, frame_url) -IPC_STRUCT_END() - // Chrome for Android seek message sequence is: // 1. Renderer->Browser MediaPlayerHostMsg_Seek // This is the beginning of actual seek flow in response to web app requests @@ -209,10 +198,21 @@ IPC_MESSAGE_ROUTED0(MediaPlayerMsg_PauseVideo) IPC_MESSAGE_ROUTED1(MediaPlayerHostMsg_DestroyMediaPlayer, int /* player_id */) -// Initialize a media player object. -IPC_MESSAGE_ROUTED1( - MediaPlayerHostMsg_Initialize, - MediaPlayerHostMsg_Initialize_Params); +// Initialize a media player object with the given type and player_id. The other +// parameters are used depending on the type of player. +// +// url: the URL to load when initializing a URL player. +// +// first_party_for_cookies: the cookie store to use when loading a URL. +// +// demuxer_client_id: the demuxer associated with this player when initializing +// a media source player. +IPC_MESSAGE_ROUTED5(MediaPlayerHostMsg_Initialize, + MediaPlayerHostMsg_Initialize_Type /* type */, + int /* player_id */, + GURL /* url */, + GURL /* first_party_for_cookies */, + int /* demuxer_client_id */) // Pause the player. IPC_MESSAGE_ROUTED2(MediaPlayerHostMsg_Pause, diff --git a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/DOMUtils.java b/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/DOMUtils.java index 7851318..299e3de 100644 --- a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/DOMUtils.java +++ b/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/DOMUtils.java @@ -127,7 +127,7 @@ public class DOMUtils { return getNodeField("value", viewCore, nodeId); } - public static String getNodeField(String fieldName, final ContentViewCore viewCore, + private static String getNodeField(String fieldName, final ContentViewCore viewCore, String nodeId) throws InterruptedException, TimeoutException { StringBuilder sb = new StringBuilder(); diff --git a/content/renderer/media/android/renderer_media_player_manager.cc b/content/renderer/media/android/renderer_media_player_manager.cc index f3e0bc0..874a1cf 100644 --- a/content/renderer/media/android/renderer_media_player_manager.cc +++ b/content/renderer/media/android/renderer_media_player_manager.cc @@ -66,18 +66,10 @@ void RendererMediaPlayerManager::Initialize( int player_id, const GURL& url, const GURL& first_party_for_cookies, - int demuxer_client_id, - const GURL& frame_url) { - - MediaPlayerHostMsg_Initialize_Params media_player_params; - media_player_params.type = type; - media_player_params.player_id = player_id; - media_player_params.demuxer_client_id = demuxer_client_id; - media_player_params.url = url; - media_player_params.first_party_for_cookies = first_party_for_cookies; - media_player_params.frame_url = frame_url; - - Send(new MediaPlayerHostMsg_Initialize(routing_id(), media_player_params)); + int demuxer_client_id) { + Send(new MediaPlayerHostMsg_Initialize( + routing_id(), type, player_id, url, first_party_for_cookies, + demuxer_client_id)); } void RendererMediaPlayerManager::Start(int player_id) { diff --git a/content/renderer/media/android/renderer_media_player_manager.h b/content/renderer/media/android/renderer_media_player_manager.h index 4bcb288..3ce079f 100644 --- a/content/renderer/media/android/renderer_media_player_manager.h +++ b/content/renderer/media/android/renderer_media_player_manager.h @@ -23,9 +23,8 @@ namespace gfx { class RectF; } -struct MediaPlayerHostMsg_Initialize_Params; - namespace content { + class WebMediaPlayerAndroid; // Class for managing all the WebMediaPlayerAndroid objects in the same @@ -44,8 +43,7 @@ class RendererMediaPlayerManager : public RenderFrameObserver { int player_id, const GURL& url, const GURL& first_party_for_cookies, - int demuxer_client_id, - const GURL& frame_url); + int demuxer_client_id); // Starts the player. void Start(int player_id); diff --git a/content/renderer/media/android/webmediaplayer_android.cc b/content/renderer/media/android/webmediaplayer_android.cc index fcf37ce..8f49053 100644 --- a/content/renderer/media/android/webmediaplayer_android.cc +++ b/content/renderer/media/android/webmediaplayer_android.cc @@ -239,8 +239,7 @@ void WebMediaPlayerAndroid::load(LoadType load_type, url_ = url; GURL first_party_url = frame_->document().firstPartyForCookies(); player_manager_->Initialize( - player_type_, player_id_, url, first_party_url, demuxer_client_id, - frame_->document().url()); + player_type_, player_id_, url, first_party_url, demuxer_client_id); if (player_manager_->ShouldEnterFullscreen(frame_)) player_manager_->EnterFullscreen(player_id_, frame_); diff --git a/media/base/android/media_player_android.cc b/media/base/android/media_player_android.cc index dc6e075..3501dcb 100644 --- a/media/base/android/media_player_android.cc +++ b/media/base/android/media_player_android.cc @@ -14,13 +14,11 @@ MediaPlayerAndroid::MediaPlayerAndroid( int player_id, MediaPlayerManager* manager, const RequestMediaResourcesCB& request_media_resources_cb, - const ReleaseMediaResourcesCB& release_media_resources_cb, - const GURL& frame_url) + const ReleaseMediaResourcesCB& release_media_resources_cb) : request_media_resources_cb_(request_media_resources_cb), release_media_resources_cb_(release_media_resources_cb), player_id_(player_id), - manager_(manager), - frame_url_(frame_url) { + manager_(manager) { } MediaPlayerAndroid::~MediaPlayerAndroid() {} diff --git a/media/base/android/media_player_android.h b/media/base/android/media_player_android.h index 879ba75..7a7a471 100644 --- a/media/base/android/media_player_android.h +++ b/media/base/android/media_player_android.h @@ -81,14 +81,11 @@ class MEDIA_EXPORT MediaPlayerAndroid { int player_id() { return player_id_; } - GURL frame_url() { return frame_url_; } - protected: MediaPlayerAndroid(int player_id, MediaPlayerManager* manager, const RequestMediaResourcesCB& request_media_resources_cb, - const ReleaseMediaResourcesCB& release_media_resources_cb, - const GURL& frame_url); + const ReleaseMediaResourcesCB& release_media_resources_cb); MediaPlayerManager* manager() { return manager_; } @@ -103,9 +100,6 @@ class MEDIA_EXPORT MediaPlayerAndroid { // Resource manager for all the media players. MediaPlayerManager* manager_; - // Url for the frame that contains this player. - GURL frame_url_; - DISALLOW_COPY_AND_ASSIGN(MediaPlayerAndroid); }; diff --git a/media/base/android/media_player_bridge.cc b/media/base/android/media_player_bridge.cc index 214b52b..174aaf9 100644 --- a/media/base/android/media_player_bridge.cc +++ b/media/base/android/media_player_bridge.cc @@ -33,13 +33,11 @@ MediaPlayerBridge::MediaPlayerBridge( bool hide_url_log, MediaPlayerManager* manager, const RequestMediaResourcesCB& request_media_resources_cb, - const ReleaseMediaResourcesCB& release_media_resources_cb, - const GURL& frame_url) + const ReleaseMediaResourcesCB& release_media_resources_cb) : MediaPlayerAndroid(player_id, manager, request_media_resources_cb, - release_media_resources_cb, - frame_url), + release_media_resources_cb), prepared_(false), pending_play_(false), url_(url), diff --git a/media/base/android/media_player_bridge.h b/media/base/android/media_player_bridge.h index f63d626..33ee118 100644 --- a/media/base/android/media_player_bridge.h +++ b/media/base/android/media_player_bridge.h @@ -49,8 +49,7 @@ class MEDIA_EXPORT MediaPlayerBridge : public MediaPlayerAndroid { bool hide_url_log, MediaPlayerManager* manager, const RequestMediaResourcesCB& request_media_resources_cb, - const ReleaseMediaResourcesCB& release_media_resources_cb, - const GURL& frame_url); + const ReleaseMediaResourcesCB& release_media_resources_cb); virtual ~MediaPlayerBridge(); // Initialize this object and extract the metadata from the media. diff --git a/media/base/android/media_source_player.cc b/media/base/android/media_source_player.cc index 6eb5677..45e0e4f 100644 --- a/media/base/android/media_source_player.cc +++ b/media/base/android/media_source_player.cc @@ -28,13 +28,11 @@ MediaSourcePlayer::MediaSourcePlayer( MediaPlayerManager* manager, const RequestMediaResourcesCB& request_media_resources_cb, const ReleaseMediaResourcesCB& release_media_resources_cb, - scoped_ptr<DemuxerAndroid> demuxer, - const GURL& frame_url) + scoped_ptr<DemuxerAndroid> demuxer) : MediaPlayerAndroid(player_id, manager, request_media_resources_cb, - release_media_resources_cb, - frame_url), + release_media_resources_cb), demuxer_(demuxer.Pass()), pending_event_(NO_EVENT_PENDING), playing_(false), diff --git a/media/base/android/media_source_player.h b/media/base/android/media_source_player.h index 689c41e..819ae05 100644 --- a/media/base/android/media_source_player.h +++ b/media/base/android/media_source_player.h @@ -42,8 +42,7 @@ class MEDIA_EXPORT MediaSourcePlayer : public MediaPlayerAndroid, MediaPlayerManager* manager, const RequestMediaResourcesCB& request_media_resources_cb, const ReleaseMediaResourcesCB& release_media_resources_cb, - scoped_ptr<DemuxerAndroid> demuxer, - const GURL& frame_url); + scoped_ptr<DemuxerAndroid> demuxer); virtual ~MediaSourcePlayer(); // MediaPlayerAndroid implementation. |