| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/renderer/media/android/renderer_media_player_manager.h" | 5 #include "content/renderer/media/android/renderer_media_player_manager.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/message_loop/message_loop.h" | 8 #include "base/message_loop/message_loop.h" |
| 9 #include "content/common/media/cdm_messages.h" | 9 #include "content/common/media/cdm_messages.h" |
| 10 #include "content/common/media/media_player_messages_android.h" | 10 #include "content/common/media/media_player_messages_android.h" |
| 11 #include "content/public/common/renderer_preferences.h" | 11 #include "content/public/common/renderer_preferences.h" |
| 12 #include "content/renderer/media/android/proxy_media_keys.h" | 12 #include "content/renderer/media/android/proxy_media_keys.h" |
| 13 #include "content/renderer/media/android/renderer_media_player_manager.h" | 13 #include "content/renderer/media/android/renderer_media_player_manager.h" |
| 14 #include "content/renderer/media/android/webmediaplayer_android.h" | 14 #include "content/renderer/media/android/webmediaplayer_android.h" |
| 15 #include "content/renderer/render_view_impl.h" | 15 #include "content/renderer/render_view_impl.h" |
| 16 #include "ui/gfx/rect_f.h" | 16 #include "ui/gfx/rect_f.h" |
| 17 | 17 |
| 18 namespace content { | 18 namespace content { |
| 19 | 19 |
| 20 // Maximum sizes for various EME API parameters. These are checks to prevent | 20 // Maximum sizes for various EME API parameters. These are checks to prevent |
| 21 // unnecessarily large messages from being passed around, and the sizes | 21 // unnecessarily large messages from being passed around, and the sizes |
| 22 // are somewhat arbitrary as the EME spec doesn't specify any limits. | 22 // are somewhat arbitrary as the EME spec doesn't specify any limits. |
| 23 const size_t kMaxWebSessionIdLength = 512; | 23 const size_t kMaxWebSessionIdLength = 512; |
| 24 const size_t kMaxSessionMessageLength = 10240; // 10 KB | 24 const size_t kMaxSessionMessageLength = 10240; // 10 KB |
| 25 | 25 |
| 26 RendererMediaPlayerManager::RendererMediaPlayerManager(RenderView* render_view) | 26 RendererMediaPlayerManager::RendererMediaPlayerManager( |
| 27 : RenderViewObserver(render_view), | 27 RenderFrame* render_frame) |
| 28 : RenderFrameObserver(render_frame), |
| 28 next_media_player_id_(0), | 29 next_media_player_id_(0), |
| 29 fullscreen_frame_(NULL), | 30 fullscreen_frame_(NULL), |
| 30 pending_fullscreen_frame_(NULL) {} | 31 pending_fullscreen_frame_(NULL) { |
| 32 } |
| 31 | 33 |
| 32 RendererMediaPlayerManager::~RendererMediaPlayerManager() { | 34 RendererMediaPlayerManager::~RendererMediaPlayerManager() { |
| 33 std::map<int, WebMediaPlayerAndroid*>::iterator player_it; | 35 std::map<int, WebMediaPlayerAndroid*>::iterator player_it; |
| 34 for (player_it = media_players_.begin(); | 36 for (player_it = media_players_.begin(); |
| 35 player_it != media_players_.end(); ++player_it) { | 37 player_it != media_players_.end(); ++player_it) { |
| 36 WebMediaPlayerAndroid* player = player_it->second; | 38 WebMediaPlayerAndroid* player = player_it->second; |
| 37 player->Detach(); | 39 player->Detach(); |
| 38 } | 40 } |
| 39 | 41 |
| 40 Send(new MediaPlayerHostMsg_DestroyAllMediaPlayers(routing_id())); | 42 Send(new MediaPlayerHostMsg_DestroyAllMediaPlayers(routing_id())); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 60 IPC_MESSAGE_HANDLER(MediaPlayerMsg_ConnectedToRemoteDevice, | 62 IPC_MESSAGE_HANDLER(MediaPlayerMsg_ConnectedToRemoteDevice, |
| 61 OnConnectedToRemoteDevice) | 63 OnConnectedToRemoteDevice) |
| 62 IPC_MESSAGE_HANDLER(MediaPlayerMsg_DisconnectedFromRemoteDevice, | 64 IPC_MESSAGE_HANDLER(MediaPlayerMsg_DisconnectedFromRemoteDevice, |
| 63 OnDisconnectedFromRemoteDevice) | 65 OnDisconnectedFromRemoteDevice) |
| 64 IPC_MESSAGE_HANDLER(MediaPlayerMsg_RequestFullscreen, | 66 IPC_MESSAGE_HANDLER(MediaPlayerMsg_RequestFullscreen, |
| 65 OnRequestFullscreen) | 67 OnRequestFullscreen) |
| 66 IPC_MESSAGE_HANDLER(MediaPlayerMsg_DidEnterFullscreen, OnDidEnterFullscreen) | 68 IPC_MESSAGE_HANDLER(MediaPlayerMsg_DidEnterFullscreen, OnDidEnterFullscreen) |
| 67 IPC_MESSAGE_HANDLER(MediaPlayerMsg_DidExitFullscreen, OnDidExitFullscreen) | 69 IPC_MESSAGE_HANDLER(MediaPlayerMsg_DidExitFullscreen, OnDidExitFullscreen) |
| 68 IPC_MESSAGE_HANDLER(MediaPlayerMsg_DidMediaPlayerPlay, OnPlayerPlay) | 70 IPC_MESSAGE_HANDLER(MediaPlayerMsg_DidMediaPlayerPlay, OnPlayerPlay) |
| 69 IPC_MESSAGE_HANDLER(MediaPlayerMsg_DidMediaPlayerPause, OnPlayerPause) | 71 IPC_MESSAGE_HANDLER(MediaPlayerMsg_DidMediaPlayerPause, OnPlayerPause) |
| 72 IPC_MESSAGE_HANDLER(MediaPlayerMsg_PauseVideo, OnPauseVideo) |
| 70 IPC_MESSAGE_HANDLER(CdmMsg_SessionCreated, OnSessionCreated) | 73 IPC_MESSAGE_HANDLER(CdmMsg_SessionCreated, OnSessionCreated) |
| 71 IPC_MESSAGE_HANDLER(CdmMsg_SessionMessage, OnSessionMessage) | 74 IPC_MESSAGE_HANDLER(CdmMsg_SessionMessage, OnSessionMessage) |
| 72 IPC_MESSAGE_HANDLER(CdmMsg_SessionReady, OnSessionReady) | 75 IPC_MESSAGE_HANDLER(CdmMsg_SessionReady, OnSessionReady) |
| 73 IPC_MESSAGE_HANDLER(CdmMsg_SessionClosed, OnSessionClosed) | 76 IPC_MESSAGE_HANDLER(CdmMsg_SessionClosed, OnSessionClosed) |
| 74 IPC_MESSAGE_HANDLER(CdmMsg_SessionError, OnSessionError) | 77 IPC_MESSAGE_HANDLER(CdmMsg_SessionError, OnSessionError) |
| 75 IPC_MESSAGE_UNHANDLED(handled = false) | 78 IPC_MESSAGE_UNHANDLED(handled = false) |
| 76 IPC_END_MESSAGE_MAP() | 79 IPC_END_MESSAGE_MAP() |
| 77 return handled; | 80 return handled; |
| 78 } | 81 } |
| 79 | 82 |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 224 if (player) | 227 if (player) |
| 225 player->OnMediaPlayerPause(); | 228 player->OnMediaPlayerPause(); |
| 226 } | 229 } |
| 227 | 230 |
| 228 void RendererMediaPlayerManager::OnRequestFullscreen(int player_id) { | 231 void RendererMediaPlayerManager::OnRequestFullscreen(int player_id) { |
| 229 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); | 232 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); |
| 230 if (player) | 233 if (player) |
| 231 player->OnRequestFullscreen(); | 234 player->OnRequestFullscreen(); |
| 232 } | 235 } |
| 233 | 236 |
| 237 void RendererMediaPlayerManager::OnPauseVideo() { |
| 238 ReleaseVideoResources(); |
| 239 } |
| 240 |
| 234 void RendererMediaPlayerManager::EnterFullscreen(int player_id, | 241 void RendererMediaPlayerManager::EnterFullscreen(int player_id, |
| 235 blink::WebFrame* frame) { | 242 blink::WebFrame* frame) { |
| 236 pending_fullscreen_frame_ = frame; | 243 pending_fullscreen_frame_ = frame; |
| 237 Send(new MediaPlayerHostMsg_EnterFullscreen(routing_id(), player_id)); | 244 Send(new MediaPlayerHostMsg_EnterFullscreen(routing_id(), player_id)); |
| 238 } | 245 } |
| 239 | 246 |
| 240 void RendererMediaPlayerManager::ExitFullscreen(int player_id) { | 247 void RendererMediaPlayerManager::ExitFullscreen(int player_id) { |
| 241 pending_fullscreen_frame_ = NULL; | 248 pending_fullscreen_frame_ = NULL; |
| 242 fullscreen_frame_ = NULL; | 249 fullscreen_frame_ = NULL; |
| 243 Send(new MediaPlayerHostMsg_ExitFullscreen(routing_id(), player_id)); | 250 Send(new MediaPlayerHostMsg_ExitFullscreen(routing_id(), player_id)); |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 437 | 444 |
| 438 if (player && player->hasVideo()) { | 445 if (player && player->hasVideo()) { |
| 439 if (player->UpdateBoundaryRectangle()) | 446 if (player->UpdateBoundaryRectangle()) |
| 440 (*changes)[player_it->first] = player->GetBoundaryRectangle(); | 447 (*changes)[player_it->first] = player->GetBoundaryRectangle(); |
| 441 } | 448 } |
| 442 } | 449 } |
| 443 } | 450 } |
| 444 | 451 |
| 445 bool | 452 bool |
| 446 RendererMediaPlayerManager::ShouldUseVideoOverlayForEmbeddedEncryptedVideo() { | 453 RendererMediaPlayerManager::ShouldUseVideoOverlayForEmbeddedEncryptedVideo() { |
| 447 const RendererPreferences& prefs = static_cast<RenderViewImpl*>( | 454 const RendererPreferences& prefs = static_cast<RenderFrameImpl*>( |
| 448 render_view())->renderer_preferences(); | 455 render_frame())->render_view()->renderer_preferences(); |
| 449 return prefs.use_video_overlay_for_embedded_encrypted_video; | 456 return prefs.use_video_overlay_for_embedded_encrypted_video; |
| 450 } | 457 } |
| 451 #endif // defined(VIDEO_HOLE) | 458 #endif // defined(VIDEO_HOLE) |
| 452 | 459 |
| 453 } // namespace content | 460 } // namespace content |
| OLD | NEW |