Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(398)

Issue 845193005: Tear down ContentVideoView from content-layer (Closed)

Created:
5 years, 11 months ago by Hugo Holgersson
Modified:
5 years, 10 months ago
CC:
chromium-reviews, android-webview-reviews_chromium.org, william.xie1, Torne
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Tear down ContentVideoView from content-layer Background: ContentVideoView displays fullscreen video in a VideoViewSurface. Currently, each Android content embedder (WebView, ContentShell, and ChromeShell) is responsible for releasing this surface when exiting fullscreen. Problem: Releasing ContentVideoView from each embedder leads to code duplication. Worse, this was never done for the WebView: when it exits fullscreen video playback, AwContents's exitFullScreen removes the VideoViewSurface which triggers ContentVideoView's surfaceDestroyed(). surfaceDestroyed() releases the MediaPlayerAndroid. Releasing the MediaPlayerAndroid during playback gives a frozen video (see bug). Solution: For all content embedders on Android, tear down ContentVideoView, from content-layer (before the embedder specific "exit fullscreen"-work). BUG=449152 TEST=For unencrypted video, manually verify that video playback continues inline when exiting fullscreen (tested in com.android.browser, ContentShell and ChromeShell). Added automatic test for VIDEO_HOLE-playback in WebView. Committed: https://crrev.com/61288e6cf8a84fb0f11556231deb29b25e24e180 Cr-Commit-Position: refs/heads/master@{#313531}

Patch Set 1 #

Total comments: 2

Patch Set 2 : Do not call destroyContentVideoView twice #

Patch Set 3 : Move fix to AwWebContentsDelegateAdapter #

Total comments: 2

Patch Set 4 : Tear down from WebContentsDelegateAndroid #

Patch Set 5 : Tear down ContentVideoView from content-layer #

Total comments: 2

Patch Set 6 : Remove duplicated code from Android Chrome #

Patch Set 7 : Remove unneeded include #

Total comments: 4

Patch Set 8 : Only include content_video_view.h on Android #

Messages

Total messages: 44 (9 generated)
Hugo Holgersson
@igsolla Can you give me some feedback on this attempt?
5 years, 11 months ago (2015-01-15 14:59:42 UTC) #2
Ignacio Solla
Thanks for fixing this! https://codereview.chromium.org/845193005/diff/1/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java File android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java (right): https://codereview.chromium.org/845193005/diff/1/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java#newcode127 android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java:127: videoView.exitFullscreen(false); This seems ok, but ...
5 years, 11 months ago (2015-01-16 11:25:00 UTC) #3
Hugo Holgersson
@qinmin, PTAL. https://codereview.chromium.org/845193005/diff/1/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java File android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java (right): https://codereview.chromium.org/845193005/diff/1/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java#newcode127 android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java:127: videoView.exitFullscreen(false); On 2015/01/16 11:25:00, Ignacio Solla wrote: ...
5 years, 11 months ago (2015-01-16 16:13:25 UTC) #5
Ignacio Solla
lgtm
5 years, 11 months ago (2015-01-16 16:20:35 UTC) #6
qinmin
I don't quite understand the bug. Chrome never release MediaPlayerAndroid upon surface destruction. So is ...
5 years, 11 months ago (2015-01-16 18:08:18 UTC) #7
Hugo Holgersson
On 2015/01/16 18:08:18, qinmin wrote: > I don't quite understand the bug. Chrome never release ...
5 years, 11 months ago (2015-01-16 19:37:51 UTC) #9
Ignacio Solla
https://codereview.chromium.org/845193005/diff/60001/android_webview/java/src/org/chromium/android_webview/AwWebContentsDelegateAdapter.java File android_webview/java/src/org/chromium/android_webview/AwWebContentsDelegateAdapter.java (right): https://codereview.chromium.org/845193005/diff/60001/android_webview/java/src/org/chromium/android_webview/AwWebContentsDelegateAdapter.java#newcode221 android_webview/java/src/org/chromium/android_webview/AwWebContentsDelegateAdapter.java:221: ContentVideoView videoView = ContentVideoView.getContentVideoView(); Thinking more about it this ...
5 years, 11 months ago (2015-01-19 11:58:17 UTC) #10
Ignacio Solla
On 2015/01/19 11:58:17, Ignacio Solla wrote: > https://codereview.chromium.org/845193005/diff/60001/android_webview/java/src/org/chromium/android_webview/AwWebContentsDelegateAdapter.java > File > android_webview/java/src/org/chromium/android_webview/AwWebContentsDelegateAdapter.java > (right): > ...
5 years, 11 months ago (2015-01-19 12:04:12 UTC) #11
Hugo Holgersson
> > When exiting fullscreen the content layer should tear down the ContentVideoView by > ...
5 years, 11 months ago (2015-01-19 17:10:14 UTC) #12
Hugo Holgersson
https://codereview.chromium.org/845193005/diff/60001/android_webview/java/src/org/chromium/android_webview/AwWebContentsDelegateAdapter.java File android_webview/java/src/org/chromium/android_webview/AwWebContentsDelegateAdapter.java (right): https://codereview.chromium.org/845193005/diff/60001/android_webview/java/src/org/chromium/android_webview/AwWebContentsDelegateAdapter.java#newcode221 android_webview/java/src/org/chromium/android_webview/AwWebContentsDelegateAdapter.java:221: ContentVideoView videoView = ContentVideoView.getContentVideoView(); On 2015/01/19 11:58:17, Ignacio Solla ...
5 years, 11 months ago (2015-01-20 12:15:29 UTC) #13
qinmin
lgtm
5 years, 11 months ago (2015-01-20 21:45:54 UTC) #14
Ignacio Solla
On 2015/01/20 12:15:29, Hugo Holgersson wrote: > https://codereview.chromium.org/845193005/diff/60001/android_webview/java/src/org/chromium/android_webview/AwWebContentsDelegateAdapter.java > File > android_webview/java/src/org/chromium/android_webview/AwWebContentsDelegateAdapter.java > (right): > ...
5 years, 11 months ago (2015-01-21 11:17:05 UTC) #15
Ignacio Solla
On 2015/01/21 11:17:05, Ignacio Solla wrote: > On 2015/01/20 12:15:29, Hugo Holgersson wrote: > > ...
5 years, 11 months ago (2015-01-21 11:33:03 UTC) #16
Hugo Holgersson
On 2015/01/21 11:33:03, Ignacio Solla wrote: > On 2015/01/21 11:17:05, Ignacio Solla wrote: > > ...
5 years, 11 months ago (2015-01-21 13:57:25 UTC) #17
Hugo Holgersson
On 2015/01/21 13:57:25, Hugo Holgersson wrote: > On 2015/01/21 11:33:03, Ignacio Solla wrote: > > ...
5 years, 11 months ago (2015-01-23 15:02:52 UTC) #18
Ignacio Solla
On 2015/01/23 15:02:52, Hugo Holgersson wrote: > On 2015/01/21 13:57:25, Hugo Holgersson wrote: > > ...
5 years, 11 months ago (2015-01-23 16:26:12 UTC) #19
Ignacio Solla
https://codereview.chromium.org/845193005/diff/100001/content/shell/android/java/src/org/chromium/content_shell/Shell.java File content/shell/android/java/src/org/chromium/content_shell/Shell.java (left): https://codereview.chromium.org/845193005/diff/100001/content/shell/android/java/src/org/chromium/content_shell/Shell.java#oldcode264 content/shell/android/java/src/org/chromium/content_shell/Shell.java:264: if (!mIsFullscreen) { I think that org/chromium/chrome/browser/fullscreen/FullscreenManager.java also needs ...
5 years, 11 months ago (2015-01-26 10:02:07 UTC) #20
Hugo Holgersson
https://codereview.chromium.org/845193005/diff/100001/content/shell/android/java/src/org/chromium/content_shell/Shell.java File content/shell/android/java/src/org/chromium/content_shell/Shell.java (left): https://codereview.chromium.org/845193005/diff/100001/content/shell/android/java/src/org/chromium/content_shell/Shell.java#oldcode264 content/shell/android/java/src/org/chromium/content_shell/Shell.java:264: if (!mIsFullscreen) { On 2015/01/26 10:02:07, Ignacio Solla wrote: ...
5 years, 11 months ago (2015-01-26 10:28:58 UTC) #21
Ignacio Solla
https://codereview.chromium.org/845193005/diff/140001/content/browser/media/android/browser_media_player_manager.cc File content/browser/media/android/browser_media_player_manager.cc (left): https://codereview.chromium.org/845193005/diff/140001/content/browser/media/android/browser_media_player_manager.cc#oldcode139 content/browser/media/android/browser_media_player_manager.cc:139: if (WebContentsDelegate* delegate = web_contents_->GetDelegate()) is this intentional? Don't ...
5 years, 11 months ago (2015-01-26 10:55:57 UTC) #22
Hugo Holgersson
https://codereview.chromium.org/845193005/diff/140001/content/browser/media/android/browser_media_player_manager.cc File content/browser/media/android/browser_media_player_manager.cc (left): https://codereview.chromium.org/845193005/diff/140001/content/browser/media/android/browser_media_player_manager.cc#oldcode139 content/browser/media/android/browser_media_player_manager.cc:139: if (WebContentsDelegate* delegate = web_contents_->GetDelegate()) On 2015/01/26 10:55:57, Ignacio ...
5 years, 11 months ago (2015-01-26 11:02:33 UTC) #23
Ignacio Solla
lgtm Thanks Hugo for fixing this and making the codebase better!
5 years, 11 months ago (2015-01-26 11:10:01 UTC) #24
Hugo Holgersson
On 2015/01/26 11:10:01, Ignacio Solla wrote: > lgtm > > Thanks Hugo for fixing this ...
5 years, 11 months ago (2015-01-26 11:23:25 UTC) #26
mkosiba (inactive)
lgtm https://codereview.chromium.org/845193005/diff/140001/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientFullScreenTest.java File android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientFullScreenTest.java (right): https://codereview.chromium.org/845193005/diff/140001/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientFullScreenTest.java#newcode486 android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientFullScreenTest.java:486: // TODO: Test that inline video is actually ...
5 years, 11 months ago (2015-01-26 12:03:05 UTC) #27
Hugo Holgersson
https://codereview.chromium.org/845193005/diff/140001/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientFullScreenTest.java File android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientFullScreenTest.java (right): https://codereview.chromium.org/845193005/diff/140001/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientFullScreenTest.java#newcode486 android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientFullScreenTest.java:486: // TODO: Test that inline video is actually displayed. ...
5 years, 11 months ago (2015-01-26 14:37:36 UTC) #28
Ted C
On 2015/01/26 11:23:25, Hugo Holgersson wrote: > On 2015/01/26 11:10:01, Ignacio Solla wrote: > > ...
5 years, 11 months ago (2015-01-26 18:23:14 UTC) #29
Ted C
On 2015/01/26 18:23:14, Ted C wrote: > On 2015/01/26 11:23:25, Hugo Holgersson wrote: > > ...
5 years, 11 months ago (2015-01-26 18:25:11 UTC) #30
Hugo Holgersson
On 2015/01/26 18:25:11, Ted C wrote: > On 2015/01/26 18:23:14, Ted C wrote: > > ...
5 years, 11 months ago (2015-01-27 10:22:40 UTC) #32
Ignacio Solla
Torne: for android_webview's OWNER rubberstamp
5 years, 11 months ago (2015-01-27 13:46:16 UTC) #33
Torne
lgtm
5 years, 11 months ago (2015-01-27 14:18:18 UTC) #35
no sievers
lgtm
5 years, 11 months ago (2015-01-27 19:35:08 UTC) #36
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/845193005/140001
5 years, 10 months ago (2015-01-28 15:26:23 UTC) #38
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_gn_chromeos_rel on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_gn_chromeos_rel/builds/2662)
5 years, 10 months ago (2015-01-28 15:35:04 UTC) #40
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/845193005/160001
5 years, 10 months ago (2015-01-28 15:55:40 UTC) #42
commit-bot: I haz the power
Committed patchset #8 (id:160001)
5 years, 10 months ago (2015-01-28 17:05:17 UTC) #43
commit-bot: I haz the power
5 years, 10 months ago (2015-01-28 17:05:55 UTC) #44
Message was sent while issue was closed.
Patchset 8 (id:??) landed as
https://crrev.com/61288e6cf8a84fb0f11556231deb29b25e24e180
Cr-Commit-Position: refs/heads/master@{#313531}

Powered by Google App Engine
This is Rietveld 408576698