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, |