Spurious hangs while taking a screenshot with DevTools
Reported by
svartme...@yandex-team.ru,
Aug 11 2016
|
||||
Issue descriptionUserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/601.6.17 (KHTML, like Gecko) Version/9.1.1 Safari/601.6.17 Steps to reproduce the problem: This is really hard to reproduce by hand. Browser can hang while waiting for a renderer snapshot because scheduled drawing can be aborted and as a result completion callback never fires. What is the expected behavior? Browser doesn't hang. What went wrong? Browser hangs. Did this work before? No Chrome version: 52.0.2743.116 (394939) Channel: stable OS Version: 7 Flash Version: Shockwave Flash 22.0 r0 The bug was found analytically, and has never reproduced on practice. But the problem is tricky and may cause flakiness issues.
,
Aug 12 2016
,
Aug 13 2016
,
Aug 13 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/751af1f9be588e97d6c37628499c421322797e18 commit 751af1f9be588e97d6c37628499c421322797e18 Author: svartmetal <svartmetal@yandex-team.ru> Date: Sat Aug 13 11:47:33 2016 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 Review-Url: https://codereview.chromium.org/2185823005 Cr-Commit-Position: refs/heads/master@{#411892} [modify] https://crrev.com/751af1f9be588e97d6c37628499c421322797e18/cc/layers/surface_layer.cc [modify] https://crrev.com/751af1f9be588e97d6c37628499c421322797e18/cc/output/latency_info_swap_promise.cc [modify] https://crrev.com/751af1f9be588e97d6c37628499c421322797e18/cc/output/latency_info_swap_promise.h [modify] https://crrev.com/751af1f9be588e97d6c37628499c421322797e18/cc/output/swap_promise.h [modify] https://crrev.com/751af1f9be588e97d6c37628499c421322797e18/cc/trees/layer_tree_host_unittest.cc [modify] https://crrev.com/751af1f9be588e97d6c37628499c421322797e18/cc/trees/layer_tree_impl.cc [modify] https://crrev.com/751af1f9be588e97d6c37628499c421322797e18/cc/trees/layer_tree_impl_unittest.cc [modify] https://crrev.com/751af1f9be588e97d6c37628499c421322797e18/content/browser/devtools/protocol/page_handler.cc [modify] https://crrev.com/751af1f9be588e97d6c37628499c421322797e18/content/browser/renderer_host/render_widget_host_impl.cc [modify] https://crrev.com/751af1f9be588e97d6c37628499c421322797e18/content/common/view_messages.h [modify] https://crrev.com/751af1f9be588e97d6c37628499c421322797e18/content/renderer/gpu/queue_message_swap_promise.cc [modify] https://crrev.com/751af1f9be588e97d6c37628499c421322797e18/content/renderer/gpu/queue_message_swap_promise.h [modify] https://crrev.com/751af1f9be588e97d6c37628499c421322797e18/content/renderer/render_view_impl.cc [modify] https://crrev.com/751af1f9be588e97d6c37628499c421322797e18/content/renderer/render_view_impl.h [modify] https://crrev.com/751af1f9be588e97d6c37628499c421322797e18/content/test/layouttest_support.cc
,
Aug 25 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2c33a82ea31e68a16e936668c4a0f4db7b2ef20b commit 2c33a82ea31e68a16e936668c4a0f4db7b2ef20b Author: eseckler <eseckler@chromium.org> Date: Thu Aug 25 09:26:54 2016 Save latency info for skipped frames with the wrong size. We observed that if a screenshot is captured while simultaneously the frame is resized, it is possible that the screenshot is lost. This is because the latency info (which identifies a CompositorFrame as the screenshot's frame) is sent from the renderer within a wrongly sized CompositorFrame, which is then skipped by DelegatedFrameHost. For situations with an active resize lock, the latency info attached to dropped frames is saved by the DFH and re-attached to the first frame that is not dropped. However, this does not happen if the frame is dropped further down the line, because it is not of the desired size of the RWHV. This patch also saves the latency info for such wrongly sized frames in DFH, until a correctly sized frame is submitted. BUG= 637066 Review-Url: https://codereview.chromium.org/2248183003 Cr-Commit-Position: refs/heads/master@{#414372} [modify] https://crrev.com/2c33a82ea31e68a16e936668c4a0f4db7b2ef20b/content/browser/renderer_host/delegated_frame_host.cc
,
Dec 1 2016
|
||||
►
Sign in to add a comment |
||||
Comment 1 by danakj@chromium.org
, Aug 11 2016