Index: content/browser/media/android/browser_media_player_manager.cc |
diff --git a/content/browser/media/android/browser_media_player_manager.cc b/content/browser/media/android/browser_media_player_manager.cc |
index d37366ce7ee3d0978acc2b3d6569bae435f19b07..096b68657af6a1a39d5a1906f690137c2b6add85 100644 |
--- a/content/browser/media/android/browser_media_player_manager.cc |
+++ b/content/browser/media/android/browser_media_player_manager.cc |
@@ -92,6 +92,7 @@ BrowserMediaPlayerManager::BrowserMediaPlayerManager( |
: WebContentsObserver(WebContents::FromRenderViewHost(render_view_host)), |
fullscreen_player_id_(-1), |
pending_fullscreen_player_id_(-1), |
+ fullscreen_player_is_released_(false), |
web_contents_(WebContents::FromRenderViewHost(render_view_host)), |
weak_ptr_factory_(this) { |
} |
@@ -131,6 +132,10 @@ bool BrowserMediaPlayerManager::OnMessageReceived(const IPC::Message& msg) { |
void BrowserMediaPlayerManager::FullscreenPlayerPlay() { |
MediaPlayerAndroid* player = GetFullscreenPlayer(); |
if (player) { |
+ if (fullscreen_player_is_released_) { |
+ video_view_->OpenVideo(); |
+ fullscreen_player_is_released_ = false; |
+ } |
player->Start(); |
Send(new MediaPlayerMsg_DidMediaPlayerPlay( |
routing_id(), fullscreen_player_id_)); |
@@ -149,6 +154,9 @@ void BrowserMediaPlayerManager::FullscreenPlayerPause() { |
void BrowserMediaPlayerManager::FullscreenPlayerSeek(int msec) { |
MediaPlayerAndroid* player = GetFullscreenPlayer(); |
if (player) { |
+ // TODO(kbalazs): if fullscreen_player_is_released_ is true |
wolenetz
2013/11/25 20:59:38
nit: Add |...| around fullscreen_player_is_release
|
+ // at this point, player->GetCurrentTime() be wrong until |
+ // FullscreenPlayerPlay (crbug.com/322798). |
wolenetz
2013/11/25 20:59:38
nit: include http:// prefix in links
|
OnSeekRequest(fullscreen_player_id_, |
base::TimeDelta::FromMilliseconds(msec)); |
} |
@@ -499,11 +507,10 @@ void BrowserMediaPlayerManager::OnSetVolume(int player_id, double volume) { |
void BrowserMediaPlayerManager::OnReleaseResources(int player_id) { |
MediaPlayerAndroid* player = GetPlayer(player_id); |
- // Don't release the fullscreen player when tab visibility changes, |
- // it will be released when user hit the back/home button or when |
- // OnDestroyPlayer is called. |
- if (player && player_id != fullscreen_player_id_) |
+ if (player) |
player->Release(); |
+ if (player_id == fullscreen_player_id_) |
+ fullscreen_player_is_released_ = true; |
#if defined(GOOGLE_TV) |
WebContentsViewAndroid* view = |