OOPIF: Propagate information about the child frame's background to the parent renderer so it can draw more efficiently |
||
Issue descriptionThe Surface layer in ChildFrameCompositingHelper has its opaqueness set to always false, since we can't make any assumptions about the child frame's background. As mentioned in https://codereview.chromium.org/2144353002/ , this leads to a much less efficient path. We should investigate if it's ok to propagate the information about the child frame's background into the parent renderer.
,
Jul 20 2016
@#1: correct - if the parent has an opaque occluder, it can avoid rasterizing that's underneath. Re: security issue, I think a concern is that if the child say "of course I'm opaque" but pushes a transparent frame, the parent could cull the quads that are underneath and so we could end up with garbage if nothing draws that area of the screen. That garbage could in theory be random GPU memory, and I'm not sure if information could leak that way. However the opaque rect should be propagated to the SurfaceDrawQuad, and so the surface aggregator could validate that the frame for that surface is indeed opaque, and mitigate otherwise.
,
Jul 20 2016
@#2: If information can leak in that way, then we might want a more general mitigation. We already need to verify that one renderer process can't read back pixels from textures created by another renderer process, even when they have the SurfaceId. I think we discussed at one point how the GPU process could do this with TextureMailboxes, I don't know if that still works.
,
Aug 25 2017
Surface draw occlusion should solve this. I'm assigning to Yi! |
||
►
Sign in to add a comment |
||
Comment 1 by kenrb@chromium.org
, Jul 20 2016