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