New issue
Advanced search Search tips

Issue 802274 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 2
Type: Bug

Blocking:
issue 800527



Sign in to add a comment

[root layer scrolls] DCHECK(IsAllowedToQueryCompositingState()) fails in interactive_ui_tests

Project Member Reported by skobes@chromium.org, Jan 16 2018

Issue description

These three tests fail in the interactive_ui_tests step on some trybots:

  SitePerProcessTextInputManagerTest.ImeCommitTextForAllFrames
  SitePerProcessTextInputManagerTest.TrackPageFocusEditableElement
  SitePerProcessTextInputManagerTest.TrackingFocusedElementForAllFrames

Affected bots:

  https://ci.chromium.org/buildbot/tryserver.chromium.linux/linux_chromium_rel_ng/620275
    (TrackPageFocusEditableElement)

  https://ci.chromium.org/buildbot/tryserver.chromium.mac/mac_chromium_rel_ng/623932
    (ImeCommitTextForAllFrames, TrackingFocusedElementForAllFrames)

  https://ci.chromium.org/buildbot/tryserver.chromium.win/win10_chromium_x64_rel_ng/58124
    (ImeCommitTextForAllFrames)

The output includes:

[1:1:0109/123351.409425:FATAL:PaintLayer.cpp(2585)] Check failed: IsAllowedToQueryCompositingState().
#0 0x000004e70f0c base::debug::StackTrace::StackTrace()
#1 0x000004e91aac logging::LogMessage::~LogMessage()
#2 0x0000083b5376 blink::PaintLayer::GetCompositedLayerMapping()
#3 0x0000083d40d3 blink::PaintLayerScrollableArea::LayerForScrolling()
#4 0x000007668a92 blink::ScrollableArea::LayerForContainer()
#5 0x000007c22a37 blink::WebViewImpl::RegisterViewportLayersWithCompositor()
#6 0x00000836f8a4 blink::TopDocumentRootScrollerController::DidUpdateCompositing()
#7 0x000007cd294d blink::LocalFrameView::UpdateLifecyclePhasesInternal()
#8 0x000007cd25d7 blink::LocalFrameView::UpdateAllLifecyclePhases()
#9 0x000008346c2e blink::PageAnimator::UpdateAllLifecyclePhases()
#10 0x000008ed4363 blink::WebFrameWidgetImpl::UpdateAllLifecyclePhases()
#11 0x000008ecd4c1 content::RenderWidget::UpdateVisualState()
#12 0x000005a1bf8d cc::ProxyMain::BeginMainFrame()
 

Comment 1 by skobes@chromium.org, Jan 16 2018

Let's combine SitePerProcessTextInputManagerTest and SitePerProcessInteractiveBrowserTest since it's the same DCHECK.  See  issue 802271  for details about the following tests:

  SitePerProcessInteractiveBrowserTest.FullscreenElementInABAAndExitViaJS
  SitePerProcessInteractiveBrowserTest.FullscreenElementInABAAndExitViaEscapeKey

Comment 2 by skobes@chromium.org, Jan 16 2018

 Issue 802271  has been merged into this issue.

Comment 3 by skobes@chromium.org, Jan 16 2018

Summary: [root layer scrolls] DCHECK(IsAllowedToQueryCompositingState()) fails in interactive_ui_tests (was: [root layer scrolls] SitePerProcessTextInputManagerTest fails)

Comment 4 by skobes@chromium.org, Jan 16 2018

Cc: bokan@chromium.org szager@chromium.org
Owner: skobes@chromium.org
Status: Assigned (was: Available)

Comment 5 by skobes@chromium.org, Jan 23 2018

After r531243, this DCHECK still occurs, but with a different stack:

[40909:775:0123/114345.327939:FATAL:PaintLayer.cpp(2582)] Check failed: IsAllowedToQueryCompositingState(). 
0   Chromium Framework                  0x00000001173899ac base::debug::StackTrace::StackTrace(unsigned long) + 28
1   Chromium Framework                  0x00000001173aebd0 logging::LogMessage::~LogMessage() + 224
2   Chromium Framework                  0x000000011c354809 blink::PaintLayer::GetCompositedLayerMapping() const + 121
3   Chromium Framework                  0x000000011c372b73 blink::PaintLayerScrollableArea::LayerForScrolling() const + 35
4   Chromium Framework                  0x000000011c2fe57d blink::ScrollingCoordinator::FrameScrollerIsDirty() const + 221
5   Chromium Framework                  0x000000011c2fdfb9 blink::ScrollingCoordinator::UpdateAfterCompositingChangeIfNeeded(blink::LocalFrameView*) + 233
6   Chromium Framework                  0x000000011bb8a57a blink::LocalFrameView::UpdateLifecyclePhasesInternal(blink::DocumentLifecycle::LifecycleState) + 1002
7   Chromium Framework                  0x000000011bb8a17a blink::LocalFrameView::UpdateAllLifecyclePhases() + 122
8   Chromium Framework                  0x000000011c2dc86e blink::PageAnimator::UpdateAllLifecyclePhases(blink::LocalFrame&) + 30
9   Chromium Framework                  0x000000011bbf2c02 blink::WebFrameWidgetImpl::UpdateLifecycle(blink::WebWidget::LifecycleUpdate) + 146
10  Chromium Framework                  0x000000011d0b3a64 non-virtual thunk to content::RenderWidget::UpdateVisualState(cc::LayerTreeHostClient::VisualStateUpdate) + 52
11  Chromium Framework                  0x00000001189dd76b cc::ProxyMain::BeginMainFrame(std::__1::unique_ptr<cc::BeginMainFrameAndCommitState, std::__1::default_delete<cc::BeginMainFrameAndCommitState> >) + 699

Comment 6 by skobes@chromium.org, Jan 23 2018

Status: Started (was: Assigned)
I think http://crrev.com/c/881581 will fix it.
Project Member

Comment 7 by bugdroid1@chromium.org, Jan 24 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6fd182f4f24b4d486e4f8ed67337691057c07ec7

commit 6fd182f4f24b4d486e4f8ed67337691057c07ec7
Author: Steve Kobes <skobes@chromium.org>
Date: Wed Jan 24 00:05:02 2018

Fix RLS OOPIF lifecycle DCHECK in ScrollingCoordinator.

ScrollingCoordinator::FrameScrollerIsDirty reads the main frame's
compositing state, so it isn't safe to call it after the compositing
update of a non-main local root.

TESTED=SitePerProcessTextInputManagerTest passes with RLS

Bug:  802274 
Change-Id: I04418c26d9ab33c60c99765434db5493138aaa3f
Reviewed-on: https://chromium-review.googlesource.com/881581
Reviewed-by: David Bokan <bokan@chromium.org>
Commit-Queue: Steve Kobes <skobes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531394}
[modify] https://crrev.com/6fd182f4f24b4d486e4f8ed67337691057c07ec7/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp

Comment 8 by skobes@chromium.org, Jan 24 2018

Status: Fixed (was: Started)

Sign in to add a comment