DescriptionAura-Mus: Enable Surface Synchronization behind flag
This CL turns on surface synchronization in Aura-Mus behind a flag.
Iff surface synchronization is enabled, then we can embed a child client
if both the FrameSinkId and LocalSurfaceId are known to the parent.
The FrameSinkId is allocated by the window server and so the parent
is informed of it asynchronously.
Once both pieces of data are known, the parent manufactures a SurfaceInfo
with the desired size, and device scale factor and embeds the child.
The display compositor will block the parent's frame UNTIL the child
has submitted a CompositorFrame or a deadline has passed.
There are several known issues to be fixed in subsequent CLs:
1. Guttering should be done in the display compositor if the background
color of the CompositorFrame is opaque.
2. Auto-resizing where the child asks the parent for a size (Blink in
particular) does not yet work correctly.
3. Resize is currently propagated from the browser ot the renderer but
the LocalSurfaceId is coming from the window server. This results
in a race where the renderer may use the wrong SurfaceId to submit
a frame. This could result in more guttering than necessary.
4. We do not throttle input events or BeginFrames (AFAICT) on clients that
have blocked CompostiorFrames. This will further improve performance.
5. We do not yet scope deadlines to a single surface subtree.
BUG=672962
Review-Url: https://codereview.chromium.org/2790673003
Cr-Commit-Position: refs/heads/master@{#461170}
Committed: https://chromium.googlesource.com/chromium/src/+/5eda1f753751a5c38367cd4f3db8fbf38c180d40
Patch Set 1 #Patch Set 2 : Added comments #Patch Set 3 : Added unit test #
Total comments: 8
Patch Set 4 : Addressed Sadrul's comments #
Total comments: 4
Patch Set 5 : Addressed Sadrul's comments #
Messages
Total messages: 33 (23 generated)
|