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

Issue 2185823005: Make RenderViewImpl::OnForceRedraw more robust (Closed)

Created:
4 years, 4 months ago by svartmetal
Modified:
4 years, 4 months ago
Reviewers:
danakj, nasko, piman
CC:
chromium-reviews, mlamouri+watch-content_chromium.org, creis+watch_chromium.org, nasko+codewatch_chromium.org, jam, darin-cc_chromium.org, devtools-reviews_chromium.org, cc-bugs_chromium.org, pfeldman
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Make RenderViewImpl::OnForceRedraw more robust Before this change, RenderWidgetHostImpl::GetSnapshotFromBrowser could spuriously fail (and callback might never be fired). The nature of unresponsiveness is in fact that scheduled draw and swap can be aborted by cc::Scheduler and, as a result, we have active tree deletion with all ui::LatencyInfo data sent by browser. BUG=637066 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel Committed: https://crrev.com/751af1f9be588e97d6c37628499c421322797e18 Cr-Commit-Position: refs/heads/master@{#411892}

Patch Set 1 #

Total comments: 4

Patch Set 2 : Reimplemented using ForcedRedrawSwapPromise #

Total comments: 4

Patch Set 3 : Fix comments and add tests #

Total comments: 17

Patch Set 4 : Rename ForcedRedrawSwapPromise #

Patch Set 5 : Move AlwaysDrawSwapPromise #

Total comments: 4

Patch Set 6 : Remove redundant CC_EXPORT #

Patch Set 7 : Rebased #

Patch Set 8 : Fix compilation #

Patch Set 9 : Fix compilation again #

Unified diffs Side-by-side diffs Delta from patch set Stats (+205 lines, -34 lines) Patch
M cc/layers/surface_layer.cc View 1 2 3 1 chunk +2 lines, -1 line 0 comments Download
M cc/output/latency_info_swap_promise.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M cc/output/latency_info_swap_promise.cc View 1 2 3 1 chunk +3 lines, -1 line 0 comments Download
M cc/output/swap_promise.h View 1 2 3 1 chunk +8 lines, -1 line 0 comments Download
M cc/trees/layer_tree_host_unittest.cc View 1 2 3 4 5 6 2 chunks +2 lines, -1 line 0 comments Download
M cc/trees/layer_tree_impl.cc View 1 2 3 4 5 6 2 chunks +32 lines, -8 lines 0 comments Download
M cc/trees/layer_tree_impl_unittest.cc View 1 2 3 4 5 6 7 8 2 chunks +107 lines, -0 lines 0 comments Download
M content/browser/devtools/protocol/page_handler.cc View 1 2 3 4 5 6 1 chunk +2 lines, -2 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_impl.cc View 1 2 3 4 5 6 1 chunk +4 lines, -1 line 0 comments Download
M content/common/view_messages.h View 1 2 3 4 5 6 1 chunk +4 lines, -4 lines 0 comments Download
M content/renderer/gpu/queue_message_swap_promise.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M content/renderer/gpu/queue_message_swap_promise.cc View 1 2 3 2 chunks +3 lines, -1 line 0 comments Download
M content/renderer/render_view_impl.h View 1 2 3 4 5 6 1 chunk +1 line, -1 line 0 comments Download
M content/renderer/render_view_impl.cc View 1 2 3 4 5 6 2 chunks +33 lines, -10 lines 0 comments Download
M content/test/layouttest_support.cc View 1 2 3 4 5 6 7 1 chunk +2 lines, -1 line 0 comments Download

Messages

Total messages: 57 (29 generated)
svartmetal
PTAL
4 years, 4 months ago (2016-07-28 15:59:48 UTC) #4
nasko
The IPC looks good. Will stamp once piman@ is happy with the CL and approves ...
4 years, 4 months ago (2016-07-28 16:11:58 UTC) #5
piman
+danakj for cc/ I'm not convinced that adding a completely separate path for "forced redraw" ...
4 years, 4 months ago (2016-07-28 20:54:09 UTC) #7
svartmetal
On 2016/07/28 20:54:09, piman - slow reviews until 8-8 wrote: > +danakj for cc/ > ...
4 years, 4 months ago (2016-08-02 16:46:33 UTC) #8
svartmetal
4 years, 4 months ago (2016-08-02 16:51:44 UTC) #9
piman
https://codereview.chromium.org/2185823005/diff/20001/cc/trees/layer_tree_impl.cc File cc/trees/layer_tree_impl.cc (right): https://codereview.chromium.org/2185823005/diff/20001/cc/trees/layer_tree_impl.cc#newcode1511 cc/trees/layer_tree_impl.cc:1511: if (swap_promise->DidNotSwap(SwapPromise::SWAP_FAILS)) { this should be |reason| instead of ...
4 years, 4 months ago (2016-08-03 16:38:55 UTC) #14
svartmetal
Thanks for response! Fixed your comments. Also, i've introduced enum DidNotSwapAction (instead of bool) and ...
4 years, 4 months ago (2016-08-04 14:58:49 UTC) #15
svartmetal
piman, danakj ping.
4 years, 4 months ago (2016-08-05 13:05:48 UTC) #20
piman
LGTM for content and overall approach (and thanks for the test!), but danakj should review ...
4 years, 4 months ago (2016-08-08 19:35:56 UTC) #21
danakj
> BUG= Can you file a bug and point this at it, if there isn't ...
4 years, 4 months ago (2016-08-09 22:40:02 UTC) #22
danakj
There's no BUG to look for more info, can you explain this? > scheduled draw ...
4 years, 4 months ago (2016-08-10 01:04:16 UTC) #23
svartmetal
Can't find existing bug. Also it's hard to reproduce the problem, because of spurious nature ...
4 years, 4 months ago (2016-08-10 17:38:22 UTC) #24
danakj
Oh, I thought this mechanism existed only for tests. I see it is used by ...
4 years, 4 months ago (2016-08-11 18:08:51 UTC) #25
svartmetal
Thanks for review! Moved AlwaysDrawSwapPromise to render_view_iml.cc. Also, i've created a bug: https://bugs.chromium.org/p/chromium/issues/detail?id=637066.
4 years, 4 months ago (2016-08-11 20:38:52 UTC) #26
danakj
Thanks! I added the bug number to the CL description for you. A few last ...
4 years, 4 months ago (2016-08-11 21:59:00 UTC) #28
svartmetal
Thanks a lot! nasko@, PTAL. https://codereview.chromium.org/2185823005/diff/80001/content/renderer/render_view_impl.cc File content/renderer/render_view_impl.cc (right): https://codereview.chromium.org/2185823005/diff/80001/content/renderer/render_view_impl.cc#newcode639 content/renderer/render_view_impl.cc:639: class CC_EXPORT AlwaysDrawSwapPromise : ...
4 years, 4 months ago (2016-08-12 10:07:33 UTC) #29
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/2185823005/100001
4 years, 4 months ago (2016-08-12 14:46:13 UTC) #32
commit-bot: I haz the power
Your CL was about to rely on recently removed CQ feature(s): * master.tryserver.blink builder linux_blink_rel ...
4 years, 4 months ago (2016-08-12 14:46:16 UTC) #34
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/2185823005/100001
4 years, 4 months ago (2016-08-12 16:38:53 UTC) #37
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/237074) mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, ...
4 years, 4 months ago (2016-08-12 16:41:32 UTC) #39
nasko
IPC LGTM
4 years, 4 months ago (2016-08-12 20:59:36 UTC) #41
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/2185823005/120001
4 years, 4 months ago (2016-08-12 21:11:39 UTC) #44
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_chromeos_ozone_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_ozone_rel_ng/builds/217820) mac_chromium_compile_dbg_ng on master.tryserver.chromium.mac (JOB_FAILED, ...
4 years, 4 months ago (2016-08-12 21:22:14 UTC) #46
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/2185823005/140001
4 years, 4 months ago (2016-08-13 09:03:47 UTC) #49
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_compile_dbg_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_compile_dbg_ng/builds/238706)
4 years, 4 months ago (2016-08-13 09:41:07 UTC) #51
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/2185823005/160001
4 years, 4 months ago (2016-08-13 10:40:39 UTC) #54
commit-bot: I haz the power
Committed patchset #9 (id:160001)
4 years, 4 months ago (2016-08-13 11:47:54 UTC) #55
commit-bot: I haz the power
4 years, 4 months ago (2016-08-13 11:49:37 UTC) #57
Message was sent while issue was closed.
Patchset 9 (id:??) landed as
https://crrev.com/751af1f9be588e97d6c37628499c421322797e18
Cr-Commit-Position: refs/heads/master@{#411892}

Powered by Google App Engine
This is Rietveld 408576698