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

Issue 2369643002: Fix OOPIFs on Android (Closed)

Created:
4 years, 3 months ago by enne (OOO)
Modified:
4 years, 2 months ago
CC:
chromium-reviews, darin-cc_chromium.org, jam, lfg, nona+watch_chromium.org, shuchen+watch_chromium.org, James Su, yusukes+watch_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Fix OOPIFs on Android RenderWidgetHostViewAndroid / DelegatedFrameHostAndroid don't participate correctly in unified begin frame. They listen to vsync messages from the window android themselves and then send begin frames to the renderer. This patch hooks up RWHVA into the surface client namespace hierarchy in surface manager by registering its client id and its association with the CompositorImpl's client id. Because RenderWidgetHostViewChildFrame attaches itself to the RWHVAndroid's client id, this allows child frames to get the begin frame sources that they need to drive themselves. In the future, RWHVAs will no longer be WindowAndroidObservers and will instead get their begin frame source via the surface manager. However, thorny issues around begin frame source pausing need to be addressed first before this can be removed. So, this patch is only a halfway step to make sure that begin frames flow from CompositorImpl -> RWHVAndroid -> RWHVChildFrame even if RWHVAndroid ignores it and uses its own. OOPIFs were broken when begin frame scheduling was turned on in https://codereview.chromium.org/1939253002. Because the child frames weren't hooked up to the surface hierarchy, they never got a begin frame source, never ticked, and thus never rendered at all. BUG=621835 Committed: https://crrev.com/a487a27cc88695723d102e43592b14a5958ad4e3 Cr-Commit-Position: refs/heads/master@{#422193}

Patch Set 1 #

Total comments: 2

Patch Set 2 : sievers review #

Patch Set 3 : Always unregister hierarchy #

Patch Set 4 : Rebase #

Patch Set 5 : Add conditional for WebView shutdown #

Unified diffs Side-by-side diffs Delta from patch set Stats (+53 lines, -1 line) Patch
M content/browser/renderer_host/compositor_impl_android.h View 1 chunk +2 lines, -0 lines 0 comments Download
M content/browser/renderer_host/compositor_impl_android.cc View 1 2 3 1 chunk +4 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_android.cc View 1 2 3 4 4 chunks +16 lines, -0 lines 0 comments Download
M ui/android/delegated_frame_host_android.h View 2 chunks +6 lines, -0 lines 0 comments Download
M ui/android/delegated_frame_host_android.cc View 1 2 3 chunks +24 lines, -1 line 0 comments Download
M ui/android/window_android_compositor.h View 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 36 (22 generated)
enne (OOO)
https://codereview.chromium.org/2369643002/diff/1/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/2369643002/diff/1/content/browser/renderer_host/render_widget_host_view_android.cc#newcode1308 content/browser/renderer_host/render_widget_host_view_android.cc:1308: content_view_core_->GetWindowAndroid()->GetCompositor(); Can I assume that there's always a compositor ...
4 years, 3 months ago (2016-09-23 22:58:09 UTC) #2
no sievers
https://codereview.chromium.org/2369643002/diff/1/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/2369643002/diff/1/content/browser/renderer_host/render_widget_host_view_android.cc#newcode1308 content/browser/renderer_host/render_widget_host_view_android.cc:1308: content_view_core_->GetWindowAndroid()->GetCompositor(); On 2016/09/23 22:58:09, enne wrote: > Can I ...
4 years, 3 months ago (2016-09-23 23:16:09 UTC) #6
enne (OOO)
On 2016/09/23 at 23:16:09, sievers wrote: > I don't trust the logic here with 'observing' ...
4 years, 3 months ago (2016-09-24 00:44:14 UTC) #7
no sievers
On 2016/09/24 00:44:14, enne wrote: > On 2016/09/23 at 23:16:09, sievers wrote: > > > ...
4 years, 2 months ago (2016-09-26 19:43:19 UTC) #10
Ted C
On 2016/09/26 19:43:19, sievers wrote: > On 2016/09/24 00:44:14, enne wrote: > > On 2016/09/23 ...
4 years, 2 months ago (2016-09-26 23:27:05 UTC) #11
enne (OOO)
Ok. I see OnAttachCompositor and OnAttachedToWindow calls happening in RenderWidgetHostViewAndroid. I don't see any OnDetachCompositor ...
4 years, 2 months ago (2016-09-29 20:34:54 UTC) #12
enne (OOO)
Ok, nevermind. I see some now. I think this looks like it works just fine ...
4 years, 2 months ago (2016-09-29 20:42:07 UTC) #13
enne (OOO)
+aelias for content/browser/renderer_host OWNERS
4 years, 2 months ago (2016-09-29 22:29:56 UTC) #16
aelias_OOO_until_Jul13
lgtm
4 years, 2 months ago (2016-09-29 22:35:22 UTC) #19
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2369643002/60001
4 years, 2 months ago (2016-09-29 22:44:46 UTC) #23
commit-bot: I haz the power
Try jobs failed on following builders: linux_android_rel_ng on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/linux_android_rel_ng/builds/151031)
4 years, 2 months ago (2016-09-29 23:41:47 UTC) #25
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2369643002/80001
4 years, 2 months ago (2016-09-30 19:50:12 UTC) #32
commit-bot: I haz the power
Committed patchset #5 (id:80001)
4 years, 2 months ago (2016-09-30 19:56:41 UTC) #34
commit-bot: I haz the power
4 years, 2 months ago (2016-09-30 19:59:19 UTC) #36
Message was sent while issue was closed.
Patchset 5 (id:??) landed as
https://crrev.com/a487a27cc88695723d102e43592b14a5958ad4e3
Cr-Commit-Position: refs/heads/master@{#422193}

Powered by Google App Engine
This is Rietveld 408576698