| Index: content/renderer/media/renderer_webmediaplayer_delegate.cc
|
| diff --git a/content/renderer/media/renderer_webmediaplayer_delegate.cc b/content/renderer/media/renderer_webmediaplayer_delegate.cc
|
| index 722b13d5440a1cc0d068e1f9c85da73da4f6e79a..8cce6974f054a31e1e9d3691ee6c66faad831de4 100644
|
| --- a/content/renderer/media/renderer_webmediaplayer_delegate.cc
|
| +++ b/content/renderer/media/renderer_webmediaplayer_delegate.cc
|
| @@ -18,28 +18,43 @@ RendererWebMediaPlayerDelegate::RendererWebMediaPlayerDelegate(
|
|
|
| RendererWebMediaPlayerDelegate::~RendererWebMediaPlayerDelegate() {}
|
|
|
| -void RendererWebMediaPlayerDelegate::DidPlay(blink::WebMediaPlayer* player) {
|
| - has_played_media_ = true;
|
| - Send(new FrameHostMsg_MediaPlayingNotification(
|
| - routing_id(), reinterpret_cast<int64_t>(player), player->hasVideo(),
|
| - player->hasAudio(), player->isRemote()));
|
| +// static
|
| +int64_t RendererWebMediaPlayerDelegate::GetPlayerId(Observer* observer) {
|
| + return reinterpret_cast<int64_t>(observer);
|
| }
|
|
|
| -void RendererWebMediaPlayerDelegate::DidPause(blink::WebMediaPlayer* player) {
|
| - Send(new FrameHostMsg_MediaPausedNotification(
|
| - routing_id(), reinterpret_cast<int64_t>(player)));
|
| +void RendererWebMediaPlayerDelegate::AddObserver(Observer* observer) {
|
| + observer_list_.AddObserver(observer);
|
| }
|
|
|
| -void RendererWebMediaPlayerDelegate::PlayerGone(blink::WebMediaPlayer* player) {
|
| - DidPause(player);
|
| +void RendererWebMediaPlayerDelegate::DidPlay(Observer* observer,
|
| + bool has_video,
|
| + bool has_audio,
|
| + bool is_remote,
|
| + base::TimeDelta duration) {
|
| + DCHECK(observer_list_.HasObserver(observer));
|
| + has_played_media_ = true;
|
| + Send(new FrameHostMsg_MediaPlayingNotification(
|
| + routing_id(), GetPlayerId(observer), has_video, has_audio, is_remote,
|
| + duration));
|
| }
|
|
|
| -void RendererWebMediaPlayerDelegate::AddObserver(Observer* observer) {
|
| - observer_list_.AddObserver(observer);
|
| +void RendererWebMediaPlayerDelegate::DidPause(Observer* observer,
|
| + bool reached_end_of_stream) {
|
| + DCHECK(observer_list_.HasObserver(observer));
|
| + Send(new FrameHostMsg_MediaPausedNotification(
|
| + routing_id(), GetPlayerId(observer), reached_end_of_stream));
|
| }
|
|
|
| -void RendererWebMediaPlayerDelegate::RemoveObserver(Observer* observer) {
|
| +void RendererWebMediaPlayerDelegate::PlayerGone(Observer* observer) {
|
| + DCHECK(observer_list_.HasObserver(observer));
|
| observer_list_.RemoveObserver(observer);
|
| + Send(new FrameHostMsg_MediaDestroyedNotification(routing_id(),
|
| + GetPlayerId(observer)));
|
| +}
|
| +
|
| +bool RendererWebMediaPlayerDelegate::IsHidden() {
|
| + return render_frame()->IsHidden();
|
| }
|
|
|
| void RendererWebMediaPlayerDelegate::WasHidden() {
|
| @@ -50,8 +65,37 @@ void RendererWebMediaPlayerDelegate::WasShown() {
|
| FOR_EACH_OBSERVER(Observer, observer_list_, OnShown());
|
| }
|
|
|
| -bool RendererWebMediaPlayerDelegate::IsHidden() {
|
| - return render_frame()->IsHidden();
|
| +bool RendererWebMediaPlayerDelegate::OnMessageReceived(
|
| + const IPC::Message& msg) {
|
| + bool handled = true;
|
| + IPC_BEGIN_MESSAGE_MAP(RendererWebMediaPlayerDelegate, msg)
|
| + IPC_MESSAGE_HANDLER(FrameMsg_MediaDelegatePause, OnMediaDelegatePause)
|
| + IPC_MESSAGE_HANDLER(FrameMsg_MediaDelegatePlay, OnMediaDelegatePlay)
|
| + IPC_MESSAGE_UNHANDLED(handled = false)
|
| + IPC_END_MESSAGE_MAP()
|
| + return handled;
|
| +}
|
| +
|
| +void RendererWebMediaPlayerDelegate::OnMediaDelegatePause(
|
| + int64_t player_cookie) {
|
| + // Translate the player cookie back to a Observer instance and make sure it's
|
| + // still a valid instance.
|
| + Observer* observer = reinterpret_cast<Observer*>(player_cookie);
|
| + if (!observer_list_.HasObserver(observer))
|
| + return;
|
| +
|
| + observer->OnPause();
|
| +}
|
| +
|
| +void RendererWebMediaPlayerDelegate::OnMediaDelegatePlay(
|
| + int64_t player_cookie) {
|
| + // Translate the player cookie back to a Observer instance and make sure it's
|
| + // still a valid instance.
|
| + Observer* observer = reinterpret_cast<Observer*>(player_cookie);
|
| + if (!observer_list_.HasObserver(observer))
|
| + return;
|
| +
|
| + observer->OnPlay();
|
| }
|
|
|
| } // namespace media
|
|
|