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

Issue 2927173002: Prevent CompositingHelper from prematurely Satisfying Surface reference (Closed)

Created:
3 years, 6 months ago by kenrb
Modified:
3 years, 6 months ago
Reviewers:
piman
CC:
chromium-reviews, jam, nasko+codewatch_chromium.org, darin-cc_chromium.org, creis+watch_chromium.org, mlamouri+watch-content_chromium.org, Fady Samuel, site-isolation-reviews_chromium.org
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

Prevent CompositingHelper from prematurely Satisfying Surface reference When ChildFrameCompositingHelper::OnSetSurface receives a reference to a new Surface, it creates a SurfaceLayer and then sends a FrameHostMsg_SatisfySequence message to the browser to release a temporary reference that was keeping the Surface alive in the meantime. The SurfaceLayer creates a new reference to the Surface by sending a FrameHostMsg_RequireSurface message, but this doesn't happen until the SurfaceLayer is attached to the layer tree, which is not until the next BeginMainFrame. Therefore the SurfaceManager was seeing the only reference to the Surface satisfied before receiving another Require on it, and this was causing OOPIF flickering during scrolling. This CL delays when ChildFrameCompositorFrame sends the Satisfy message, caching the SurfaceSequence until after the SurfaceLayer is attached to the layer tree. BUG=701175 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation Review-Url: https://codereview.chromium.org/2927173002 Cr-Commit-Position: refs/heads/master@{#478434} Committed: https://chromium.googlesource.com/chromium/src/+/6ef29daef4aa32b5c744c645891ac4595bc4d073

Patch Set 1 #

Patch Set 2 : Added a missing line of code #

Patch Set 3 : Remove temporary code I hadn't meant to upload. #

Patch Set 4 : Release a pending sequence if new one received #

Unified diffs Side-by-side diffs Delta from patch set Stats (+144 lines, -13 lines) Patch
M content/browser/frame_host/render_widget_host_view_child_frame_browsertest.cc View 2 chunks +91 lines, -0 lines 0 comments Download
M content/renderer/child_frame_compositing_helper.cc View 1 2 3 6 chunks +53 lines, -13 lines 0 comments Download

Messages

Total messages: 17 (13 generated)
kenrb
piman: PTAL?
3 years, 6 months ago (2017-06-08 20:58:48 UTC) #9
piman
LGTM. I would have a few suggestions to make it a bit more robust/rational, but ...
3 years, 6 months ago (2017-06-09 20:35:00 UTC) #12
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/2927173002/60001
3 years, 6 months ago (2017-06-09 20:39:01 UTC) #14
commit-bot: I haz the power
3 years, 6 months ago (2017-06-09 22:16:35 UTC) #17
Message was sent while issue was closed.
Committed patchset #4 (id:60001) as
https://chromium.googlesource.com/chromium/src/+/6ef29daef4aa32b5c744c645891a...

Powered by Google App Engine
This is Rietveld 408576698