Chromium Code Reviews| 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 04cde982cd114f242c619d739d6aad97dde11b4b..0c77a7b8c8e546ec4192fd592eb277feb81b8f39 100644 |
| --- a/content/browser/media/android/browser_media_player_manager.cc |
| +++ b/content/browser/media/android/browser_media_player_manager.cc |
| @@ -467,6 +467,13 @@ void BrowserMediaPlayerManager::DetachExternalVideoSurface(int player_id) { |
| player->SetVideoSurface(gfx::ScopedJavaSurface()); |
| } |
| +void BrowserMediaPlayerManager::ReleaseExternalVideoSurface(int player_id) { |
| + WebContentsViewAndroid* view = |
| + static_cast<WebContentsViewAndroid*>(web_contents_->GetView()); |
| + if (view) |
| + view->NotifyExternalSurface(player_id, false, gfx::RectF()); |
| +} |
| + |
| void BrowserMediaPlayerManager::OnNotifyExternalSurface( |
| int player_id, bool is_request, const gfx::RectF& rect) { |
| if (!web_contents_) |
| @@ -574,14 +581,15 @@ void BrowserMediaPlayerManager::OnReleaseResources(int player_id) { |
| player->Release(); |
| #if defined(VIDEO_HOLE) |
| - WebContentsViewAndroid* view = |
| - static_cast<WebContentsViewAndroid*>(web_contents_->GetView()); |
| - if (view) |
| - view->NotifyExternalSurface(player_id, false, gfx::RectF()); |
| + ReleaseExternalVideoSurface(player_id); |
| #endif // defined(VIDEO_HOLE) |
| } |
| void BrowserMediaPlayerManager::OnDestroyPlayer(int player_id) { |
| +#if defined(VIDEO_HOLE) |
| + ReleaseExternalVideoSurface(player_id); |
|
boliu
2014/01/24 21:56:32
Maybe question for the media owners.
Why is this
ycheo (away)
2014/01/28 13:08:53
OnDestoryPlayer doesn't call OnReleaseResources.
@
qinmin
2014/01/28 21:17:05
OnReleaseResources happens at tab switching, or ap
|
| +#endif // defined(VIDEO_HOLE) |
| + |
| RemovePlayer(player_id); |
| if (fullscreen_player_id_ == player_id) |
| fullscreen_player_id_ = -1; |