100%-repro DCHECK in intersection_geometry.cc with overlay scrollbars |
||||
Issue descriptionRepro stolen from bug 880211. Test URL: https://www.google.com/intl/en-GB/gmail/about/# What steps will reproduce the problem? 1. Launch chrome, navigate to the above Test URL and open dev-tools. 2. Dock dev-tool window to bottom and navigate to Audit. 3. Click on 'Run Audits' and observe the emulated window while audit is running. See the video attached to that bug if you're unsure. When you follow these steps, you get a 100% reproducible renderer crash: [38957:775:0904/123206.337106:FATAL:intersection_geometry.cc(171)] Check failed: frame_view->ShouldThrottleRendering() || !layout_view || !(layout_view->NeedsPaintPropertyUpdate() || layout_view->DescendantNeedsPaintPropertyUpdate()). 0 libbase.dylib 0x00000001286d30de base::debug::StackTrace::StackTrace(unsigned long) + 174 1 libbase.dylib 0x00000001286d319d base::debug::StackTrace::StackTrace(unsigned long) + 29 2 libbase.dylib 0x00000001282bb81c base::debug::StackTrace::StackTrace() + 28 3 libbase.dylib 0x000000012832810c logging::LogMessage::~LogMessage() + 460 4 libbase.dylib 0x0000000128325d05 logging::LogMessage::~LogMessage() + 21 5 libblink_core.dylib 0x00000001599d5d6a blink::IntersectionGeometry::ClipToRoot() + 378 6 libblink_core.dylib 0x00000001599d6618 blink::IntersectionGeometry::ComputeGeometry() + 360 7 libblink_core.dylib 0x000000015991527b blink::IntersectionObservation::ComputeIntersectionObservations(double) + 635 8 libblink_core.dylib 0x0000000159918131 blink::IntersectionObserver::ComputeIntersectionObservations() + 449 9 libblink_core.dylib 0x000000015992317b blink::IntersectionObserverController::ComputeTrackedIntersectionObservations() + 427 10 libblink_core.dylib 0x000000015919a384 blink::LocalFrameView::UpdateViewportIntersectionsForSubtree() + 148 11 libblink_core.dylib 0x00000001591986c8 blink::LocalFrameView::UpdateLifecyclePhases(blink::DocumentLifecycle::LifecycleState) + 1400 12 libblink_core.dylib 0x0000000159198142 blink::LocalFrameView::UpdateAllLifecyclePhases() + 50 13 libblink_core.dylib 0x0000000159f71b85 blink::PageAnimator::UpdateAllLifecyclePhases(blink::LocalFrame&) + 85 14 libblink_core.dylib 0x0000000159f7ab90 blink::PageWidgetDelegate::UpdateLifecycle(blink::Page&, blink::LocalFrame&, blink::WebWidget::LifecycleUpdate) + 112 15 libblink_core.dylib 0x0000000158fd0252 blink::WebViewImpl::UpdateLifecycle(blink::WebWidget::LifecycleUpdate) + 386 16 libblink_core.dylib 0x0000000158f9806b blink::WebWidget::UpdateAllLifecyclePhases() + 27 17 libblink_core.dylib 0x0000000158fcf393 blink::WebViewImpl::ResizeViewWhileAnchored(float, float, bool) + 595 18 libblink_core.dylib 0x0000000158fcf856 blink::WebViewImpl::ResizeWithBrowserControls(blink::WebSize const&, float, float, bool) + 1174 19 libcontent.dylib 0x0000000132f79e83 content::RenderViewImpl::ResizeWebWidgetForWidget(gfx::Size const&, float, float, bool) + 115 20 libcontent.dylib 0x0000000132f9eba2 content::RenderWidget::ResizeWebWidget() + 130 21 libcontent.dylib 0x0000000132f9f4e0 content::RenderWidget::SynchronizeVisualProperties(content::VisualProperties const&) + 816 22 libcontent.dylib 0x0000000132f99e31 content::RenderWidget::OnSynchronizeVisualProperties(content::VisualProperties const&) + 1297 23 libcontent.dylib 0x0000000132fb474d void base::DispatchToMethodImpl<content::RenderWidget*, void (content::RenderWidget::*)(content::VisualProperties const&), std::__1::tuple<content::VisualProperties>, 0ul>(content::RenderWidget* const&, void (content::RenderWidget::*)(content::VisualProperties const&), std::__1::tuple<content::VisualProperties>&&, std::__1::integer_sequence<unsigned long, 0ul>) + 157 vmpstr: you added that DCHECK. PTAL. If this is indeed is the cause of bug 880211, please dup that bug in.
,
Sep 4
,
Sep 15
Ping; can you look at this 100% repro DCHECK?
,
Sep 19
I can't reproduce this at tip of tree. I will try building the version mentioned in the other bug, but in the mean time, can you let me know if you can still reproduce it at tip of tree?
,
Sep 24
This is still 100% reproable at ToT, 3e6c0cd82b03. Please let me know if you need help reproducing it. Please watch the video on bug 880211 to help make it clear what the issue is.
,
Sep 26
I can reproduce this assert by a html that contains a scrollable iframe. This case layout_view->DescendantNeedsPaintPropertyUpdate() returns true due to a SetNeedsPaintPropertyUpdate() call in PaintLayerScrollableArea::ScrollbarVisibilityChanged(). So, I assume this is a macOS specific issue due to the auto hiding scrollbar of the iframe. I tried this with the 69 version of the chromium and haven't tried ToT yet.
,
Sep 27
,
Sep 28
avi@, are you using a Mac laptop with a trackpad to reproduce this? If so, can I ask you to plug a mouse in and see if it still reproduces? Comment #6 suggests that the problem is related to overlay scrollbars. On Mac, overlay scrollbars are enabled when there's only a trackpad, bug disabled when a mouse is plugged in.
,
Sep 28
I repro this on my work Mac Pro which has both a trackpad *and* a mouse attached.
,
Sep 28
re comment #9, are overlay scrollbars enabled when you reproduce it?
,
Sep 28
I just checked. I have force-enabled overlay scrollbars, and you are right. If I switch to non-overlay scrollbars, the CHECK goes away.
,
Sep 28
This strikes even on just loading pages like chrome://settings/people .
,
Oct 3
,
Oct 3
Ping? Can you please take a look, as having a 100% repro DCHECK for default machine configurations makes life difficult for Mac Chromium devs.
,
Oct 3
I've been looking into this, but I'm still unable to reproduce this, even on a Macbook with trackpad.
,
Oct 3
I'm running 10.11. Dunno if that matters.
,
Oct 5
Avi, I am on MacOS 10.13.6 on an 15in Macbook Pro and am unable to reproduce this using your instructions. When you said "I have force-enabled overlay scrollbars", do you mean you have "System Preferences > General > Show scroll bars > "Automatically based on mouse or trackpad" selected? You said "this reproduces on your Mac Pro with "a trackpad *and* a mouse attached." Does this go away if you have only the mouse plugged in (or paired)? What about if you have only the trackpad plugged in (or paired)? Are you moving your cursor when this occurs (as in the repro video) or are you leaving it over the "run audits" button? Does this crash on a non-dcheck build or is it only DCHECK failure? Does this crash with default chrome settings? Aka, launch with --user-data-dir=/tmp/newdirectory
,
Oct 5
> When you said "I have force-enabled overlay scrollbars", do you mean you have "System Preferences > General > Show scroll bars > "Automatically based on mouse or trackpad" selected? No. There are two non-automatic settings, "When scrolling" which uses overlay scrollers, and "Always" which uses classic scrollers. I have "When scrolling" selected, so I always have overlay scrollers. > You said "this reproduces on your Mac Pro with "a trackpad *and* a mouse attached." Does this go away if you have only the mouse plugged in (or paired)? What about if you have only the trackpad plugged in (or paired)? I checked all four combinations of input devices (trackpad yes/no, mouse yes/no) and it makes no difference. > Are you moving your cursor when this occurs (as in the repro video) or are you leaving it over the "run audits" button? I am reproing with chrome://settings/people which DCHECKs in the same way. No mouse movement is needed. > Does this crash on a non-dcheck build or is it only DCHECK failure? This is a DCHECK failure only. > Does this crash with default chrome settings? Aka, launch with --user-data-dir=/tmp/newdirectory Yes.
,
Oct 5
avi@, can you try commenting out this line of code, and see if it makes any difference: https://www.google.com/url?q=https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/scroll/scrollbar_theme_mac.mm?rcl%3D77ae3479cef09e88672cf57f51f76cab2f71eea2%26l%3D92&sa=D&source=hangouts&ust=1538843141282000&usg=AFQjCNFjhuYQB1VKY6XjH4MxaTvZ_HzEyw
,
Oct 5
Yes. Commenting out that line makes the DCHECK not happen.
,
Oct 5
avi@, can you un-commment that line and then apply this patch: https://chromium-review.googlesource.com/c/chromium/src/+/1265831 ... and let me know if that fixes it for you?
,
Oct 5
I added comments to that CL; it doesn't compile for me.
,
Oct 5
Whoops! Forgot to upload latest patch. Please try again.
,
Oct 5
Confirmed that it fixes the DCHECK.
,
Oct 8
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b75f6ec6f8b552fb25c4aaa320c432a02f51925e commit b75f6ec6f8b552fb25c4aaa320c432a02f51925e Author: Stefan Zager <szager@chromium.org> Date: Mon Oct 08 16:30:17 2018 Speculative fix for mac DCHECK failure BUG= 880388 Change-Id: Ie1a1c4fcf3ee6dbf7a058fdfdf88c3e84417097c Reviewed-on: https://chromium-review.googlesource.com/c/1265831 Reviewed-by: Philip Rogers <pdr@chromium.org> Reviewed-by: Avi Drissman <avi@chromium.org> Commit-Queue: Stefan Zager <szager@chromium.org> Cr-Commit-Position: refs/heads/master@{#597582} [modify] https://crrev.com/b75f6ec6f8b552fb25c4aaa320c432a02f51925e/third_party/blink/renderer/core/scroll/scrollbar_theme_mac.mm
,
Dec 3
|
||||
►
Sign in to add a comment |
||||
Comment 1 by vmp...@chromium.org
, Sep 4Components: Blink>Paint