New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 732903 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Sep 17
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug

Blocked on:
issue 732896

Blocking:
issue 657959



Sign in to add a comment

Convert FrameSinkProviderImpl to use FrameSinkManagerHost

Project Member Reported by kylec...@chromium.org, Jun 13 2017

Issue description

Convert (behind a flag at first) FrameSinkProviderImpl to use FrameSinkManagerHost. This will involve hooking up MojoCompositorFrameSink that directly connects the renderer to viz. 

RenderWidgetHostImpl will not longer receive CompositorFrames. Instead, RenderWidgetHostImpl will have to observer FrameSinkManagerHost to find out when the renderer SurfaceId changes.

Other contents of the CompositorFrame that RenderWidgetHostImpl extracts now will need to be forwarded from viz back to FrameSinkManagerHost and then to the correct FrameSinkObserver for a complete implementation of this. FrameSinkManagerHost/FrameSinkObserver doesn't handle any of this yet.
 
Yep, it would be similar to that.

FrameSinkProviderImpl would get a request from the renderer over IPC. This has the MojoCompositorFrameSinkRequest and MojoCompositorFrameSinkClientPtr to hook up. FrameSinkProviderImpl would be changed to call FrameSinkManagerHost::CreateCompositorFrameSink() with that.

The renderer would then submit CompositorFrames directly to viz and RenderWidgetHostImpl wouldn't sit in the middle. Instead, RenderWidgetHostImpl should implement FrameSinkObserver. RenderWidgetHostImpl will get OnSurfaceCreated() messages when the renderer submits a CompositorFrame with a new LocalSurfaceId and can update the SurfaceLayer using that info.

The other things that RenderWidgetHostImpl does with data in the CompositorFrame need to be reworked similarly.

Comment 3 by danakj@chromium.org, Jun 14 2017

Owner: danakj@chromium.org
Status: Started (was: Available)
Owner: ----
Status: Available (was: Started)
Project Member

Comment 5 by bugdroid1@chromium.org, Oct 19 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/883e99d9896c0dbcaf1ce4da26a1a3aa2fe2cdbe

commit 883e99d9896c0dbcaf1ce4da26a1a3aa2fe2cdbe
Author: kylechar <kylechar@chromium.org>
Date: Thu Oct 19 15:07:36 2017

Update content/browser/renderer_host for --enable-viz.

With --enable-viz the host portion of the renderer cannot access
FrameSinkManagerImpl or create CompositorFrameSinkSupports. Update so
that viz doesn't immediately crash.

The --enable-viz flag should work for basic websites on Linux desktop
Chrome now. OOPIF and PDF Viewer are not implemented however.

Bug:  770833 ,  732903 
Change-Id: I373e02a221361b362f0eb35cc91d7d1a6b7c73a5
Reviewed-on: https://chromium-review.googlesource.com/724222
Commit-Queue: kylechar <kylechar@chromium.org>
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510087}
[modify] https://crrev.com/883e99d9896c0dbcaf1ce4da26a1a3aa2fe2cdbe/content/browser/renderer_host/browser_compositor_view_mac.mm
[modify] https://crrev.com/883e99d9896c0dbcaf1ce4da26a1a3aa2fe2cdbe/content/browser/renderer_host/delegated_frame_host.cc
[modify] https://crrev.com/883e99d9896c0dbcaf1ce4da26a1a3aa2fe2cdbe/content/browser/renderer_host/delegated_frame_host.h
[modify] https://crrev.com/883e99d9896c0dbcaf1ce4da26a1a3aa2fe2cdbe/content/browser/renderer_host/render_widget_host_impl.cc
[modify] https://crrev.com/883e99d9896c0dbcaf1ce4da26a1a3aa2fe2cdbe/content/browser/renderer_host/render_widget_host_impl.h
[modify] https://crrev.com/883e99d9896c0dbcaf1ce4da26a1a3aa2fe2cdbe/content/browser/renderer_host/render_widget_host_view_aura.cc

Owner: kylec...@chromium.org
Status: Fixed (was: Available)
This was finished a long time ago.

Sign in to add a comment