Chromium Code Reviews| Index: content/renderer/media/android/renderer_media_player_manager.cc |
| diff --git a/content/renderer/media/android/renderer_media_player_manager.cc b/content/renderer/media/android/renderer_media_player_manager.cc |
| index 6969511946544753df6229b653dbd617b63b2766..fbfc380d3ac56d13418d276deeeea88f6476694f 100644 |
| --- a/content/renderer/media/android/renderer_media_player_manager.cc |
| +++ b/content/renderer/media/android/renderer_media_player_manager.cc |
| @@ -24,7 +24,8 @@ namespace content { |
| RendererMediaPlayerManager::RendererMediaPlayerManager(RenderView* render_view) |
| : RenderViewObserver(render_view), |
| next_media_player_id_(0), |
| - fullscreen_frame_(NULL) {} |
| + fullscreen_frame_(NULL), |
| + pending_fullscreen_frame_(NULL) {} |
| RendererMediaPlayerManager::~RendererMediaPlayerManager() { |
| std::map<int, WebMediaPlayerAndroid*>::iterator player_it; |
| @@ -223,7 +224,9 @@ void RendererMediaPlayerManager::OnRequestFullscreen(int player_id) { |
| player->OnRequestFullscreen(); |
| } |
| -void RendererMediaPlayerManager::EnterFullscreen(int player_id) { |
| +void RendererMediaPlayerManager::EnterFullscreen(int player_id, |
| + blink::WebFrame* frame) { |
| + pending_fullscreen_frame_ = frame; |
| Send(new MediaPlayerHostMsg_EnterFullscreen(routing_id(), player_id)); |
| } |
| @@ -385,6 +388,7 @@ bool RendererMediaPlayerManager::CanEnterFullscreen(blink::WebFrame* frame) { |
| } |
| void RendererMediaPlayerManager::DidEnterFullscreen(blink::WebFrame* frame) { |
| + pending_fullscreen_frame_ = NULL; |
|
qinmin
2014/01/28 17:41:34
what if ExitFullscreen() is called before this cal
|
| fullscreen_frame_ = frame; |
| } |
| @@ -396,6 +400,10 @@ bool RendererMediaPlayerManager::IsInFullscreen(blink::WebFrame* frame) { |
| return fullscreen_frame_ == frame; |
| } |
| +bool RendererMediaPlayerManager::ShouldEnterFullscreen(blink::WebFrame* frame) { |
|
qinmin
2014/01/28 17:41:34
This logic is also needed for CanEnterFullscreen()
|
| + return fullscreen_frame_ == frame || pending_fullscreen_frame_ == frame; |
| +} |
| + |
| #if defined(VIDEO_HOLE) |
| void RendererMediaPlayerManager::RequestExternalSurface( |
| int player_id, |